UNPKG

unbag

Version:

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

102 lines (101 loc) 3.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.defineUserConfig = exports.deepFreezeConfig = void 0; exports.loadUserConfigFromFile = loadUserConfigFromFile; exports.useDefaultConfig = exports.resolveUserConfig = exports.mergeDefaultConfig = exports.mergeConfig = void 0; var _index = require("../commands/parallel/index.cjs"); var _index2 = require("../commands/transform/index.cjs"); var _fs = require("./fs.cjs"); var _path = require("../utils/path.cjs"); var _bundleRequire = require("bundle-require"); var _index3 = require("../commands/release/index.cjs"); var _common = require("./common.cjs"); var _index4 = require("./message/index.cjs"); var _log = require("./log.cjs"); var _deepFreezeStrict = _interopRequireDefault(require("deep-freeze-strict")); var _lodash = _interopRequireDefault(require("lodash")); var _config = require("./../commands/commit/config.cjs"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const useDefaultConfig = () => { const defaultConfig = { root: process.cwd(), locale: _common.Locale.zh_cn, tempDir: "./node_modules/.unbag", log: _log.LogConfigDefault, transform: _index2.TransformConfigDefault, parallel: _index.ParallelDefaultConfig, release: _index3.releaseDefaultConfig, commit: _config.CommitConfigDefault, catch: () => {} }; return defaultConfig; }; exports.useDefaultConfig = useDefaultConfig; const defineUserConfig = config => config; exports.defineUserConfig = defineUserConfig; const resolveUserConfig = async options => { const { filePath, root, locale } = options; const fs = (0, _fs.useFs)(); const path = (0, _path.usePath)(); const message = (0, _index4.useMessage)({ locale }); if (filePath) { const absoluteFilePath = path.resolve(root.content, filePath); const isExit = await fs.pathExists(absoluteFilePath); if (!isExit) { throw new Error(message.config.file.notFound(absoluteFilePath)); } return await loadUserConfigFromFile(new _path.AbsolutePath({ content: absoluteFilePath })); } else { const configFileDefaultList = ["unbag.config.ts", "unbag.config.js", "unbag.config.cjs", "unbag.config.mjs"]; for (const filePath2 of configFileDefaultList) { const absoluteFilePath = path.resolve(root.content, filePath2); const isExit = await fs.pathExists(absoluteFilePath); if (!isExit) { break; } return await loadUserConfigFromFile(new _path.AbsolutePath({ content: absoluteFilePath })); } } }; exports.resolveUserConfig = resolveUserConfig; async function loadUserConfigFromFile(absoluteFilePath) { const { mod } = await (0, _bundleRequire.bundleRequire)({ filepath: absoluteFilePath.content, format: "esm" }); const config = mod.default || mod; config.configFileResolvedPath = absoluteFilePath; return config; } const mergeDefaultConfig = userConfig => { const defaultConfig = useDefaultConfig(); return mergeConfig(defaultConfig, userConfig || {}); }; exports.mergeDefaultConfig = mergeDefaultConfig; 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); }; exports.mergeConfig = mergeConfig; const deepFreezeConfig = userConfig => { return (0, _deepFreezeStrict.default)(userConfig); }; exports.deepFreezeConfig = deepFreezeConfig;