View exactExposedMethodReturnTypeRule.ts
import * as Lint from 'tslint'; | |
import * as ts from 'typescript'; | |
import { inspect } from 'util'; | |
/** | |
* This rule will ensure that methods marked with the "@expose" decorator must be declared in at | |
* least one interface implemented by the class. It will also ensure that the return type of this | |
* method has no excess properties compared to those specified in the interface | |
*/ |
View class-example-ideal-react.js
const friendList = [ | |
{ id: 1, name: 'Phoebe' }, | |
{ id: 2, name: 'Rachel' }, | |
{ id: 3, name: 'Ross' }, | |
]; | |
function useFriendStatus(component, friendID) { | |
const onlineStatus = component.useState(null); | |
const handleStatusChange = (status) => onlineStatus.set(status.isOnline); |
View dayton.json
[[20, -3, 3], [20, -4, 0.6], [134, 5, 0.35], [618, 5, 0.53], [8000, 3.5, 1.3], [20000, -8, 0.4]] |
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) { |