react-runtime-config
Version:
Provide a typesafe runtime configuration inside a react app
47 lines • 3.96 kB
JavaScript
;
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=