UNPKG

@remcostoeten/fync

Version:

Unified TypeScript library for 9 popular APIs with consistent functional architecture

32 lines 1.15 kB
import { createFyncApi } from "./api-factory"; import { createFyncResource } from "./resource-factory"; export function createFyncModule(config) { const apiClient = createFyncApi(config.apiConfig); const module = { api: apiClient }; Object.entries(config.resources).forEach(function ([resourceName, resourceConfig,]) { module[resourceName] = createFyncResource(resourceConfig, apiClient); }); if (config.helpers) { Object.entries(config.helpers).forEach(function ([helperName, helperFn]) { module[helperName] = helperFn; }); } return module; } export function createApiBuilder(defaultConfig) { return function buildApi(userConfig, resources) { const finalConfig = { ...defaultConfig, ...userConfig, }; if (userConfig.token && finalConfig.auth?.type === "bearer") { finalConfig.auth.token = userConfig.token; } return createFyncModule({ name: defaultConfig.baseUrl || "api", apiConfig: finalConfig, resources, }); }; } //# sourceMappingURL=module-factory.js.map