UNPKG

@remcostoeten/fync

Version:

Unified TypeScript library for 9 popular APIs with consistent functional architecture

20 lines 1.02 kB
import type { TApiClient, TApiConfig } from "./api-factory"; import type { TResource, TResourceConfig } from "./resource-factory"; type TModuleResources = Record<string, TResourceConfig<any>>; type TModuleConfig<TResources extends TModuleResources> = { name: string; apiConfig: TApiConfig; resources: TResources; helpers?: Record<string, Function>; }; type TModule<TResources extends TModuleResources> = { [K in keyof TResources]: TResources[K] extends TResourceConfig<infer TMethods> ? TResource<TMethods> : never; } & { api: TApiClient; }; export declare function createFyncModule<TResources extends TModuleResources>(config: TModuleConfig<TResources>): TModule<TResources>; export declare function createApiBuilder<TResources extends TModuleResources>(defaultConfig: Partial<TApiConfig>): (userConfig: Partial<TApiConfig> & { token?: string; }, resources: TResources) => TModule<TResources>; export type { TModule, TModuleConfig, TModuleResources }; //# sourceMappingURL=module-factory.d.ts.map