@awsless/json
Version:
The `@awsless/json` package adds support for more JavaScript native types to JSON.
37 lines (30 loc) • 1.56 kB
TypeScript
type Serializable<I, O> = {
is: (value: unknown) => boolean;
parse: (value: O) => I;
stringify: (value: I) => O;
};
type SerializableTypes = Record<string, Serializable<any, any>>;
declare const patch: (value: unknown, types?: SerializableTypes) => any;
declare const unpatch: (value: unknown, types?: SerializableTypes) => any;
declare const parse: (json: string, types?: SerializableTypes) => any;
type Reviver$1 = (this: any, key: string, value: any) => any;
declare const createReviver: (types?: SerializableTypes) => Reviver$1;
declare const stringify: (value: unknown, types?: SerializableTypes) => string;
type Replacer$1 = (this: any, key: string, value: any) => any;
declare const createReplacer: (types?: SerializableTypes) => Replacer$1;
type Props$1 = {
parse: (value: string) => unknown;
};
declare const safeNumberParse: (json: string, props: Props$1) => any;
type Reviver = (this: any, key: string, value: any, context: {
source: string;
}) => any;
declare const createSafeNumberReviver: (props: Props$1) => Reviver;
type Props<T> = {
is: (value: unknown) => value is T;
stringify: (value: T) => string;
};
declare const safeNumberStringify: <T>(value: unknown, props: Props<T>) => string;
type Replacer = (this: any, key: string, value: any) => any;
declare const createSafeNumberReplacer: <T>(props: Props<T>) => Replacer;
export { type Serializable, createReplacer, createReviver, createSafeNumberReplacer, createSafeNumberReviver, parse, patch, safeNumberParse, safeNumberStringify, stringify, unpatch };