Instantly share code, notes, and snippets.

View make-or-call.js
function make(classOrFn, ...args) {
if (classOrFn.toString().startsWith('class ')) {
// "real" non-compiled ES6+ only
return new classOrFn(...args);
}
let thisArg = Object.create(classOrFn.prototype);
let retVal = classOrFn.apply(thisArg, args)
if (retVal != null) return retVal;
return thisArg; //
}
View 01-validation.purs
module Main where
import Prim
import Control.Alt ((<|>))
import Control.Apply ((<*>))
import Data.Either (Either(..))
import Data.Foldable (intercalate)
import Data.Functor ((<$>), map)
import Data.String.CodePoints (contains)
View gist:4b31ec396c4cbfebede55558f6238891
```
R__________
/ \
a___ b1__
/ \ / \
a2 b3 a3 b2__
/ \ / \ / \ / \ \
e1 e2 e3 e4 e5 e6 e7 e8 e9
```
View 01-mobx-canvas.tsx
export interface MobxCanvasProps {
width?: number;
height?: number;
style?: any;
render(ctx: CanvasRenderingContext2D): void;
}
@observer
export class MobxCanvas extends React.Component<CanvasProps> {
private canvasRef = React.createRef();
View 01-command.sh
script -qfc 'yarn repro' /dev/null > raw.log
cat -vet raw.log
View experiment.spec.ts
import { validator, validate } from './experiment';
class U {
@validator() name!: string;
}
class C {
@validator() id!: string;
@validator() u!: U;
}
View debounce-example.js
const {observable, computed, action, extendObservable} = mobx;
const {observer} = mobxReact;
const {Component} = React;
let debounce = delay => (object, key, descriptor) => {
let getter = descriptor.get
let state = new WeakMap();
function initializeState(self) {
View cancel-via-race.js
function delay(n) { return new Promise(r => setTimeout(r, n)) }
function debounced(ms, action) {
let cancelPrevious;
let cancellation = () => new Promise((resolve, reject) => cancelPrevious = reject)
return function (...args) {
if (cancelPrevious != null) cancelPrevious()
return Promise.race([cancellation(), delay(ms)])
.then(() => action.apply(this, args))
View composable-type-guards.ts
type Checker<T> = (x: any) => x is T;
function tArray<T>(f: Checker<T>) {
return function (a:any): a is Array<T> {
if (!Array.isArray(a)) return false;
for (var k = 0; k < a.length; ++k)
if (!f(a[k])) return false;
return true;
}
}
View dbus-run.sh
#!/bin/sh
export "$(grep -az '^DBUS_SESSION_BUS_ADDRESS=' /proc/`ps -e | grep 'i3$' | awk '{print $1}'`/environ)"
/bin/bash -c "$*"
exit 0