@remcostoeten/fync
Version:
Unified TypeScript library for 9 popular APIs with consistent functional architecture
20 lines • 1.02 kB
TypeScript
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