@redwoodjs-stripe/api
Version:
API-side code for RedwoodJS-Stripe projects
18 lines (17 loc) • 994 B
TypeScript
type ResponsePrimitive = number | string | boolean | null;
interface StripeResponseList<Value extends StripeResponseValue = StripeResponseValue> {
object: "list";
data: Value[];
}
type StripeResponseObject = {
[K in keyof object]: StripeResponseValue;
};
type StripeResponseValue = ResponsePrimitive | StripeResponseList | StripeResponseObject;
export type ParsedStripeResponse<Input> = Input extends null ? null : Input extends string ? string : Input extends number ? number : Input extends boolean ? boolean : Input extends StripeResponseList<infer Value> ? ParsedStripeResponse<Value>[] : Input extends {
[K in keyof Input]: Input[K];
} ? {
[K in keyof Input]: ParsedStripeResponse<Input[K]>;
} : never;
export declare const parseStripeResponse: <Input extends StripeResponseValue>(input: Input) => ParsedStripeResponse<Input>;
export declare const mapValues: <K extends string | number | symbol, A, B>(inputs: Record<K, A>, fn: (a: A) => B) => Record<K, B>;
export {};