UNPKG

ra-core

Version:

Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React

35 lines 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.addRefreshAuthToDataProvider = void 0; /** * A higher-order function which wraps a dataProvider to handle refreshing authentication. * This is useful when the authentication service supports a refresh token mechanism. * The wrapped provider will call the refreshAuth function before calling any dataProvider methods. * * The refreshAuth function should return a Promise that resolves when the authentication token has been refreshed. * It might throw an error if the refresh failed. In this case, react-admin will handle the error as usual. * * @param provider A dataProvider * @param refreshAuth A function that refreshes the authentication token if needed and returns a Promise. * @returns A wrapped dataProvider. * * @example * import { addRefreshAuthToDataProvider } from 'react-admin'; * import { jsonServerProvider } from 'ra-data-json-server'; * import { refreshAuth } from './refreshAuth'; * * const dataProvider = addRefreshAuthToDataProvider(jsonServerProvider('http://localhost:3000'), refreshAuth); */ const addRefreshAuthToDataProvider = (provider, refreshAuth) => { const proxy = new Proxy(provider, { get(_, name) { return async (...args) => { await refreshAuth(); return provider[name.toString()](...args); }; }, }); return proxy; }; exports.addRefreshAuthToDataProvider = addRefreshAuthToDataProvider; //# sourceMappingURL=addRefreshAuthToDataProvider.js.map