UNPKG

react-runtime-config

Version:

Provide a typesafe runtime configuration inside a react app

47 lines 3.96 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createUseAdminConfig = void 0; var react_1 = require("react"); var utils_1 = require("./utils"); function createUseAdminConfig(props) { return function () { var localStorageDependency = utils_1.useWatchLocalStorageEvents(props.storage, props.localOverride); var configKeys = react_1.useMemo(function () { return Object.keys(props.schema); }, [props.schema]); var fields = react_1.useMemo(function () { return configKeys.map(function (key) { return (__assign(__assign({ key: key, path: props.namespace + "." + key }, props.schema[key]), { windowValue: props.getWindowValue(key), storageValue: props.getStorageValue(key), isFromStorage: props.getStorageValue(key) !== null, value: props.getConfig(key), set: function (value) { return props.setConfig(key, value); } })); }); }, [localStorageDependency, configKeys]); var reset = react_1.useCallback(function () { configKeys.forEach(function (path) { props.storage.removeItem(props.namespace + "." + path); }); window.dispatchEvent(new Event("storage")); }, [configKeys, props.namespace]); return { /** * List of all config values */ fields: fields, /** * Reset the store */ reset: reset, /** * Namespace */ namespace: props.namespace, }; }; } exports.createUseAdminConfig = createUseAdminConfig; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlVXNlQWRtaW5Db25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY3JlYXRlVXNlQWRtaW5Db25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFDQSwrQkFBNkM7QUFDN0MsaUNBQXFEO0FBRXJELFNBQWdCLG9CQUFvQixDQUNsQyxLQUF5QztJQUV6QyxPQUFPO1FBQ0wsSUFBTSxzQkFBc0IsR0FBRyxrQ0FBMEIsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUU5RixJQUFNLFVBQVUsR0FBc0IsZUFBTyxDQUFDLGNBQU0sT0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBekIsQ0FBeUIsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRS9GLElBQU0sTUFBTSxHQUFHLGVBQU8sQ0FBQztZQUNyQixPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxxQkFDM0IsR0FBRyxLQUFBLEVBQ0gsSUFBSSxFQUFLLEtBQUssQ0FBQyxTQUFTLFNBQUksR0FBSyxJQUM5QixLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUNwQixXQUFXLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFDdEMsWUFBWSxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQ3hDLGFBQWEsRUFBRSxLQUFLLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFDbEQsS0FBSyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQzNCLEdBQUcsRUFBRSxVQUFDLEtBQStDLElBQUssT0FBQSxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBM0IsQ0FBMkIsSUFDckYsRUFUMkIsQ0FTM0IsQ0FBeUIsQ0FBQztRQUM5QixDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBRXpDLElBQU0sS0FBSyxHQUFHLG1CQUFXLENBQUM7WUFDeEIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFBLElBQUk7Z0JBQ3JCLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFJLEtBQUssQ0FBQyxTQUFTLFNBQUksSUFBTSxDQUFDLENBQUM7WUFDekQsQ0FBQyxDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBRWxDLE9BQU87WUFDTDs7ZUFFRztZQUNILE1BQU0sUUFBQTtZQUVOOztlQUVHO1lBQ0gsS0FBSyxPQUFBO1lBRUw7O2VBRUc7WUFDSCxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7U0FDM0IsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUM7QUE3Q0Qsb0RBNkNDIn0=