Sha256: 2bc6dc0f297a4af4fb622854a82feae5746b634499d44e2232166083e57c6f8d

Contents?: true

Size: 683 Bytes

Versions: 33

Compression:

Stored size: 683 Bytes

Contents

type Func = (...args: any[]) => any;

export interface Cache<K, V> {
  create: CacheCreateFunc<K, V>
}

interface CacheCreateFunc<K, V> {
  (): {
    get(key: K): V;
    set(key: K, value: V): void;
    has(key: K): boolean;
   }
}

export type Serializer = (args: any[]) => string;

export interface Options<F extends Func> {
  cache?: Cache<string, ReturnType<F>>;
  serializer?: Serializer;
  strategy?: MemoizeFunc;
}

export interface MemoizeFunc {
  <F extends Func>(fn: F, options?: Options<F>): F;
}

interface Memoize extends MemoizeFunc {
  strategies: {
    variadic: MemoizeFunc;
    monadic: MemoizeFunc;
  };
}

declare const memoize: Memoize;

export default memoize;

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
immosquare-cleaner-0.1.40 node_modules/fast-memoize/typings/fast-memoize.d.ts
immosquare-cleaner-0.1.39 node_modules/fast-memoize/typings/fast-memoize.d.ts
immosquare-cleaner-0.1.38 node_modules/fast-memoize/typings/fast-memoize.d.ts
immosquare-cleaner-0.1.32 node_modules/fast-memoize/typings/fast-memoize.d.ts
immosquare-cleaner-0.1.31 node_modules/fast-memoize/typings/fast-memoize.d.ts
immosquare-cleaner-0.1.30 node_modules/fast-memoize/typings/fast-memoize.d.ts
immosquare-cleaner-0.1.29 node_modules/fast-memoize/typings/fast-memoize.d.ts
immosquare-cleaner-0.1.28 node_modules/fast-memoize/typings/fast-memoize.d.ts
immosquare-cleaner-0.1.27 node_modules/fast-memoize/typings/fast-memoize.d.ts
immosquare-cleaner-0.1.26 node_modules/fast-memoize/typings/fast-memoize.d.ts
immosquare-cleaner-0.1.25 node_modules/fast-memoize/typings/fast-memoize.d.ts
immosquare-cleaner-0.1.24 node_modules/fast-memoize/typings/fast-memoize.d.ts
immosquare-cleaner-0.1.23 node_modules/fast-memoize/typings/fast-memoize.d.ts