diff --git a/types/remotedev-serialize/index.d.ts b/types/remotedev-serialize/index.d.ts new file mode 100644 index 0000000000..86a5e206f9 --- /dev/null +++ b/types/remotedev-serialize/index.d.ts @@ -0,0 +1,44 @@ +// Type definitions for remotedev-serialize 1.0 +// Project: https://github.com/zalmoxisus/remotedev-serialize/ +// Definitions by: Julian Hundeloh +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +// TypeScript Version: 2.1 + +import * as Immutable from 'immutable'; + +export type Options = Record; + +export type Refs = Record; + +export type DefaultReplacer = (key: string, value: any) => any; + +export type Replacer = ( + key: string, + value: any, + replacer: DefaultReplacer +) => any; + +export type DefaultReviver = (key: string, value: any) => any; + +export type Reviver = (key: string, value: any, reviver: DefaultReviver) => any; + +export function immutable( + immutable: typeof Immutable, + refs?: Refs, + customReplacer?: Replacer, + customReviver?: Reviver +): { + stringify: (input: any) => string; + parse: (input: string) => any; + serialize: ( + immutable: typeof Immutable, + refs?: Refs, + customReplacer?: Replacer, + customReviver?: Reviver + ) => { + replacer: Replacer; + reviver: Reviver; + options: Options; + }; +}; diff --git a/types/remotedev-serialize/package.json b/types/remotedev-serialize/package.json new file mode 100644 index 0000000000..9b1e26b353 --- /dev/null +++ b/types/remotedev-serialize/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "immutable": "^3.8.1" + } +} \ No newline at end of file diff --git a/types/remotedev-serialize/remotedev-serialize-tests.ts b/types/remotedev-serialize/remotedev-serialize-tests.ts new file mode 100644 index 0000000000..bca43ccd33 --- /dev/null +++ b/types/remotedev-serialize/remotedev-serialize-tests.ts @@ -0,0 +1,8 @@ +import * as Immutable from 'immutable'; +import * as Serialize from 'remotedev-serialize'; + +const { stringify, parse } = Serialize.immutable(Immutable); + +const data = Immutable.fromJS({foo: 'bar', baz: {qux: 42}}); +const serialized = stringify(data); +const parsed = parse(serialized); diff --git a/types/remotedev-serialize/tsconfig.json b/types/remotedev-serialize/tsconfig.json new file mode 100644 index 0000000000..ff53419fed --- /dev/null +++ b/types/remotedev-serialize/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "remotedev-serialize-tests.ts" + ] +} diff --git a/types/remotedev-serialize/tslint.json b/types/remotedev-serialize/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/remotedev-serialize/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }