Skip to content

Instantly share code, notes, and snippets.

View zakhenry's full-sized avatar

Zak Henry zakhenry

View GitHub Profile
@zakhenry
zakhenry / some.component.html
Last active October 19, 2017 16:03
Display duration Angular Zone has been stable for
<pre>NgZone has been stable for {{stableSinceSecondsAgo | async | number:'.3-3'}} seconds</pre>
@zakhenry
zakhenry / example-usage.ts
Created December 11, 2017 21:23
RxJS typescript lettable retry exponential backoff function
import { Observable } from 'rxjs/Observable';
import { retryExponentialBackoff } from './exponential-backoff';
let attemptCount = 0;
Observable.create(function (observer) {
console.log('observable tried', attemptCount++);
observer.error(new Error('fail'));
})
.let(retryExponentialBackoff({
maxRetries: 3,
import { EntityAdapter, EntityState } from '@ngrx/entity';
import { ActionReducer } from '@ngrx/store';
import { CommandReducer, ReducerCommand } from 'ngrx-command-reducer';
import { BaseAction, StaticAction } from './base.actions';
type PayloadActionFunction<S, P> = (p: P, s: S) => S;
type PayloadlessActionFunction<S> = (s: S) => S;
export type EntityFunction<S, P> = PayloadActionFunction<S, P> | PayloadlessActionFunction<S>;
export class EntityCommandReducer<Entity, State extends EntityState<Entity>, Action extends BaseAction> {
@zakhenry
zakhenry / index.ts
Created September 11, 2018 09:42
Typescript member property reflection
class Foo {
baz: number;
}
export interface StaticClass<InstanceType = any> {
new (...args: any[]): InstanceType;
}
@zakhenry
zakhenry / codegen-enums.ts
Created April 19, 2020 18:02
Typescript enum codegen
import * as ts from 'typescript';
function makeEnum() {
return ts.createEnumDeclaration(
undefined,
[ts.createToken(ts.SyntaxKind.ExportKeyword), ts.createToken(ts.SyntaxKind.DeclareKeyword)],
'Direction',
[
ts.createEnumMember('UNKNOWN', ts.createLiteral(0)),
ts.createEnumMember('NORTH'),