webpack/test/helpers/prepareOptions.js

29 lines
648 B
JavaScript
Raw Normal View History

"use strict";
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) => {
argv = argv || {};
options = handleExport(options);
2024-08-02 02:36:27 +08:00
options = Array.isArray(options)
? options.map((_options) => handleFunction(_options, argv))
2024-08-02 02:36:27 +08:00
: handleFunction(options, argv);
return options;
};