mutoid
Version:
Reactive library for data fetching, caching, state management
42 lines (41 loc) • 2 kB
TypeScript
/// <reference types="node" />
import * as O from 'fp-ts/Option';
type UrlItem = string | number | boolean;
type FormItem = string | number | boolean | Blob | Buffer;
export type Item<A> = A | ItemArray<A> | ItemRecord<A>;
export type ItemArray<A> = Array<A | OptionItem<A>>;
export interface ItemRecord<A> {
[key: string]: Item<A> | OptionItem<A>;
}
export type OptionItem<A> = O.Option<A | OptionItemArray<A> | OptionItemRecord<A> | A> | Item<A>;
export type OptionItemArray<A> = Array<OptionItem<A> | Item<A>>;
export interface OptionItemRecord<A> {
[key: string]: OptionItem<A> | Item<A>;
}
export type NullableItem<A> = undefined | null | A | NullableItemArray<A> | NullableItemRecord<A>;
export type NullableItemArray<A> = Array<NullableItem<A>>;
export interface NullableItemRecord<A> {
[key: string]: NullableItem<A>;
}
export declare const serializeNullable: <C extends {
append: (k: string, value: any) => void;
}, A>(collector: C, noNeedRecursion: (a: unknown) => a is A, data: NullableItemRecord<A> | undefined) => C;
export declare const serialize: <C extends {
append: (k: string, value: any) => void;
}, A>(collector: C, noNeedRecursion: (a: unknown) => a is A, data: OptionItemRecord<A>) => C;
export declare const serializeNullableForm: <C extends {
append: (k: string, value: any) => void;
}>(collector: C) => (data: NullableItemRecord<FormItem> | undefined) => C;
export declare const serializeForm: <C extends {
append: (k: string, value: any) => void;
}>(collector: C) => (data: OptionItemRecord<FormItem>) => C;
export declare const serializeNullableUrl: <C extends {
append: (k: string, value: any) => void;
}>(collector: C) => (data: NullableItemRecord<UrlItem> | undefined) => C;
export declare const serializeUrl: <C extends {
append: (k: string, value: any) => void;
}>(collector: C) => (data: OptionItemRecord<UrlItem>) => C;
export declare const toQueryString: <C extends {
toString: () => string;
}>(c: C) => string;
export {};