2017-07-01 07:37:16 +08:00
|
|
|
"use strict";
|
|
|
|
|
2025-07-17 00:13:14 +08:00
|
|
|
const handleExport = (options) => {
|
2018-02-25 09:00:20 +08:00
|
|
|
const isES6DefaultExported =
|
|
|
|
typeof options === "object" &&
|
|
|
|
options !== null &&
|
|
|
|
typeof options.default !== "undefined";
|
2017-11-08 18:32:05 +08:00
|
|
|
options = isES6DefaultExported ? options.default : options;
|
|
|
|
return options;
|
|
|
|
};
|
|
|
|
|
|
|
|
const handleFunction = (options, argv) => {
|
2018-02-25 09:00:20 +08:00
|
|
|
if (typeof options === "function") {
|
2017-11-08 18:32:05 +08:00
|
|
|
options = options(argv.env, argv);
|
|
|
|
}
|
|
|
|
return options;
|
|
|
|
};
|
|
|
|
|
|
|
|
module.exports = (options, argv) => {
|
2017-07-01 07:37:16 +08:00
|
|
|
argv = argv || {};
|
|
|
|
|
|
|
|
options = handleExport(options);
|
|
|
|
|
2024-08-02 02:36:27 +08:00
|
|
|
options = Array.isArray(options)
|
2025-07-17 00:13:14 +08:00
|
|
|
? options.map((_options) => handleFunction(_options, argv))
|
2024-08-02 02:36:27 +08:00
|
|
|
: handleFunction(options, argv);
|
2017-07-01 07:37:16 +08:00
|
|
|
return options;
|
|
|
|
};
|