UNPKG

unbag

Version:

一个专门用来开发npm工具的包

39 lines (38 loc) 1.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useConfigHelper = void 0; var _lodash = _interopRequireDefault(require("lodash")); var _deepFreezeStrict = _interopRequireDefault(require("deep-freeze-strict")); var _common = require("./common.cjs"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const mergeConfig = (defaults, overrides) => { const customize = (objValue, srcValue) => { if (_lodash.default.isArray(objValue) || _lodash.default.isArray(srcValue)) { return (0, _common.filterNullable)([...(0, _common.arraify)(objValue), ...(0, _common.arraify)(srcValue)]); } }; return _lodash.default.mergeWith({}, defaults, overrides, customize); }; const useConfigHelper = params => { const { defaultConfig, disabledFreeze, merge } = params; const defineConfig = config => config; const fillConfig = config => { const finalConfig = merge ? merge(defaultConfig, config) : mergeConfig(defaultConfig, config); if (disabledFreeze) { return finalConfig; } return (0, _deepFreezeStrict.default)(finalConfig); }; return { defineConfig, fillConfig, defaultConfig }; }; exports.useConfigHelper = useConfigHelper;