UNPKG

@fox-hound-tools/refine-library

Version:

Refine sdk library

65 lines 2.57 kB
/** * Create a provider that communicates with the wrapper. */ export const createBffDataProvider = (supabase, sdk, supabaseProvider, sdkProvider, settings, options = {}) => { /** * Get the provider for the resource. */ async function executeProvider(type, params) { const onbeforeParams = settings[params.resource]?.onBeforeParams ?? ((params) => params); const resource = params.resource; // Check if the resource has a override. if (settings[resource] && settings[resource][type] && typeof settings[resource][type] === 'function') { // eslint-disable-next-line @typescript-eslint/no-explicit-any const method = settings[resource][type]; return await method({ supabase, sdk, params }); } let provider = options.defaultProvider === 'sdk' ? sdkProvider : supabaseProvider; if (settings[resource] && settings[resource][type]) { if (settings[resource][type] === 'sdk') { provider = sdkProvider; } else { provider = supabaseProvider; } } // eslint-disable-next-line @typescript-eslint/no-explicit-any return await provider[type](onbeforeParams(params)); } return { getList: async (params) => { return await executeProvider('getList', params); }, getMany: async (params) => { return await executeProvider('getMany', params); }, getOne: async (params) => { return await executeProvider('getOne', params); }, create: async (params) => { return await executeProvider('create', params); }, createMany: async (params) => { return await executeProvider('createMany', params); }, update: async (params) => { return await executeProvider('update', params); }, updateMany: async (params) => { return await executeProvider('updateMany', params); }, deleteOne: async (params) => { return await executeProvider('deleteOne', params); }, deleteMany: async (params) => { return await executeProvider('deleteMany', params); }, getApiUrl: () => { throw Error('Not implemented on refine-supabase data provider.'); }, custom: () => { throw Error('Not implemented on refine-supabase data provider.'); }, }; }; //# sourceMappingURL=bff-data-provider.js.map