@nekofar/warpcast
Version:
TypeScript client for interacting with Warpcast APIs
35 lines (33 loc) • 1.65 kB
text/typescript
interface SerializeOptions<T> extends SerializePrimitiveOptions, SerializerOptions<T> {
}
interface SerializePrimitiveOptions {
allowReserved?: boolean;
name: string;
}
interface SerializerOptions<T> {
/**
* @default true
*/
explode: boolean;
style: T;
}
type ArrayStyle = "form" | "spaceDelimited" | "pipeDelimited";
type ArraySeparatorStyle = ArrayStyle | MatrixStyle;
type MatrixStyle = "label" | "matrix" | "simple";
type ObjectStyle = "form" | "deepObject";
type ObjectSeparatorStyle = ObjectStyle | MatrixStyle;
interface SerializePrimitiveParam extends SerializePrimitiveOptions {
value: string;
}
declare const separatorArrayExplode: (style: ArraySeparatorStyle) => "." | ";" | "," | "&";
declare const separatorArrayNoExplode: (style: ArraySeparatorStyle) => "," | "|" | "%20";
declare const separatorObjectExplode: (style: ObjectSeparatorStyle) => "." | ";" | "," | "&";
declare const serializeArrayParam: ({ allowReserved, explode, name, style, value, }: SerializeOptions<ArraySeparatorStyle> & {
value: unknown[];
}) => string;
declare const serializePrimitiveParam: ({ allowReserved, name, value, }: SerializePrimitiveParam) => string;
declare const serializeObjectParam: ({ allowReserved, explode, name, style, value, valueOnly, }: SerializeOptions<ObjectSeparatorStyle> & {
value: Record<string, unknown> | Date;
valueOnly?: boolean;
}) => string;
export { type ArraySeparatorStyle, type ArrayStyle, type ObjectStyle, type SerializerOptions, separatorArrayExplode, separatorArrayNoExplode, separatorObjectExplode, serializeArrayParam, serializeObjectParam, serializePrimitiveParam };