ra-core
Version:
Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React
37 lines • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.combineDataProviders = void 0;
const defaultDataProvider_1 = require("./defaultDataProvider.cjs");
/**
* Combine multiple data providers into one.
*
* @param dataProviderMatcher A function that returns a data provider for a given resource.
*
* @example
* const dataProvider = combineDataProviders(resource => {
* switch(resource) {
* case 'posts':
* case 'comments':
* return dataProvider1;
* case 'users':
* return dataProvider2;
* default:
* throw new Error('Unknown resource');
* }
* });
*/
const combineDataProviders = (dataProviderMatcher) => new Proxy(defaultDataProvider_1.defaultDataProvider, {
get: (target, name) => {
if (name === 'then') {
return null;
}
return (resource, ...params) => {
if (typeof name === 'symbol') {
return;
}
return dataProviderMatcher(resource)[name](resource, ...params);
};
},
});
exports.combineDataProviders = combineDataProviders;
//# sourceMappingURL=combineDataProviders.js.map