UNPKG

unbag

Version:

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

32 lines 910 B
import _ from "lodash"; import deepFreezeStrict from "deep-freeze-strict"; import { arraify, filterNullable } from "./common.mjs"; const mergeConfig = (defaults, overrides) => { const customize = (objValue, srcValue) => { if (_.isArray(objValue) || _.isArray(srcValue)) { return filterNullable([...arraify(objValue), ...arraify(srcValue)]); } }; return _.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 deepFreezeStrict(finalConfig); }; return { defineConfig, fillConfig, defaultConfig }; }; export { useConfigHelper };