aboutsummaryrefslogtreecommitdiff
path: root/node_modules/@webpack-contrib/config-loader/lib/resolve.js
blob: 2ed5cf1a95fba354d02f5e593315a3dae8652109 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const minimist = require('minimist');

const fromFunction = (config, argv) => {
  const result = config(argv);

  return Promise.resolve(result);
};

const fromObject = (config) => Promise.resolve(config);

const handlers = {
  function: fromFunction,
  object: fromObject,
};

module.exports = (configSet, argv) => {
  const { config, configPath } = configSet;
  const type = typeof (config.default || config);
  const handler = handlers[type];

  // eslint-disable-next-line no-param-reassign
  argv = argv || minimist(process.argv.slice(2));

  return handler(config.default || config, argv).then((configResult) => {
    return {
      config: configResult,
      configPath,
    };
  });
};