Skip to content

Instantly share code, notes, and snippets.

@jakubbarczyk
jakubbarczyk / get-own-property-types.js
Created December 23, 2017 13:05
Utility function that maps object's own property types.
function getOwnPropertyTypes(val) {
'use strict';
if (val && typeof val === 'object') {
return Object.getOwnPropertyNames(val)
.reduce((obj, key) => Object.defineProperty(obj, key, { value: typeof val[key] }), {})
}
return {};
}
@jakubbarczyk
jakubbarczyk / fetch-all-dominaria-cards.js
Created July 8, 2018 14:45
Fetch all Dominaria cards from Magic: the Gathering API
'use-strict'
const api = 'https://api.magicthegathering.io/v1'
const dominariaPage1 = fetch(new Request(Resource(Page(1))))
const dominariaPage2 = fetch(new Request(Resource(Page(2))))
const dominariaPage3 = fetch(new Request(Resource(Page(3))))
Promise
.all([dominariaPage1, dominariaPage2, dominariaPage3])
function Freeze(constructor: Function) {
Object.freeze(constructor);
Object.freeze(constructor.prototype);
}
function Seal(constructor: Function) {
Object.seal(constructor);
Object.seal(constructor.prototype);
}
const cities = new Map([
['MG', 'Belzante'],
['SP', 'Sampa']
]);
const getCity = city => cities.get(city) ?? 'Not found';
@jakubbarczyk
jakubbarczyk / buffer-max-count.js
Last active March 31, 2022 10:30
Buffer max count operator for RxJS.
import { defer } from 'rxjs';
import { map } from 'rxjs/operators';
export const bufferMaxCount = (count = 0) => source => defer(() => {
let buffer = [];
return source.pipe(
map(next => buffer = [next, ...buffer.slice(0, count - 1)])
);
});
if (!Object.prototype[Symbol.iterator]) {
Object.prototype[Symbol.iterator] = function* () {
for (let key in this) {
yield this[key];
}
};
}
export enum MouseButton {
None = 0,
Primary = 1,
Secondary = 2,
Auxiliary = 4,
BrowserBack = 8,
BrowserForward = 16
}
.neon-text {
color: #fff;
text-shadow:
0 0 7px #fff,
0 0 10px #fff,
0 0 21px #fff,
0 0 42px #0fa,
0 0 82px #0fa,
0 0 92px #0fa,
0 0 102px #0fa,
export const delay = milliseconds => new Promise(resolve => setTimeout(resolve, milliseconds));