1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = resolveOptions;
|
7 |
|
8 | var _utils = require("@parcel/utils");
|
9 |
|
10 | var _loadDotEnv = _interopRequireDefault(require("./loadDotEnv"));
|
11 |
|
12 | var _path = _interopRequireDefault(require("path"));
|
13 |
|
14 | var _fs = require("@parcel/fs");
|
15 |
|
16 | var _cache = _interopRequireDefault(require("@parcel/cache"));
|
17 |
|
18 | var _packageManager = require("@parcel/package-manager");
|
19 |
|
20 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
21 |
|
22 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
23 |
|
24 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
25 |
|
26 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
27 |
|
28 |
|
29 | const DEFAULT_CACHE_DIRNAME = '.parcel-cache';
|
30 | const LOCK_FILE_NAMES = ['yarn.lock', 'package-lock.json', 'pnpm-lock.yaml'];
|
31 |
|
32 | async function resolveOptions(initialOptions) {
|
33 | var _initialOptions$mode, _initialOptions$minif, _initialOptions$patch, _initialOptions$env, _initialOptions$autoi, _initialOptions$hot, _initialOptions$serve, _initialOptions$disab, _initialOptions$killW, _initialOptions$profi, _initialOptions$sourc, _initialOptions$scope, _initialOptions$logLe;
|
34 |
|
35 | let entries;
|
36 |
|
37 | if (initialOptions.entries == null || initialOptions.entries === '') {
|
38 | entries = [];
|
39 | } else if (Array.isArray(initialOptions.entries)) {
|
40 | entries = initialOptions.entries.map(entry => _path.default.resolve(entry));
|
41 | } else {
|
42 | entries = [_path.default.resolve(initialOptions.entries)];
|
43 | }
|
44 |
|
45 | let inputFS = initialOptions.inputFS || new _fs.NodeFS();
|
46 | let outputFS = initialOptions.outputFS || new _fs.NodeFS();
|
47 | let packageManager = initialOptions.packageManager || new _packageManager.NodePackageManager(inputFS);
|
48 | let rootDir = initialOptions.rootDir != null ? _path.default.resolve(initialOptions.rootDir) : (0, _utils.getRootDir)(entries);
|
49 |
|
50 | let projectRootFile = (await (0, _utils.resolveConfig)(inputFS, _path.default.join(rootDir, 'index'), [...LOCK_FILE_NAMES, '.git', '.hg'])) || _path.default.join(inputFS.cwd(), 'index');
|
51 |
|
52 |
|
53 | let lockFile = null;
|
54 |
|
55 | let rootFileName = _path.default.basename(projectRootFile);
|
56 |
|
57 | if (LOCK_FILE_NAMES.includes(rootFileName)) {
|
58 | lockFile = projectRootFile;
|
59 | }
|
60 |
|
61 | let projectRoot = _path.default.dirname(projectRootFile);
|
62 |
|
63 | let outputCwd = outputFS.cwd();
|
64 | let cacheDir =
|
65 |
|
66 | initialOptions.cacheDir != null ? _path.default.resolve(outputCwd, initialOptions.cacheDir) : _path.default.resolve(projectRoot, DEFAULT_CACHE_DIRNAME);
|
67 | let cache = new _cache.default(outputFS, cacheDir);
|
68 | let mode = (_initialOptions$mode = initialOptions.mode) !== null && _initialOptions$mode !== void 0 ? _initialOptions$mode : 'development';
|
69 | let minify = (_initialOptions$minif = initialOptions.minify) !== null && _initialOptions$minif !== void 0 ? _initialOptions$minif : mode === 'production';
|
70 | return {
|
71 | config: initialOptions.config,
|
72 | defaultConfig: initialOptions.defaultConfig,
|
73 | patchConsole: (_initialOptions$patch = initialOptions.patchConsole) !== null && _initialOptions$patch !== void 0 ? _initialOptions$patch : process.env.NODE_ENV !== 'test',
|
74 | env: _objectSpread({}, initialOptions.env, {}, (await (0, _loadDotEnv.default)((_initialOptions$env = initialOptions.env) !== null && _initialOptions$env !== void 0 ? _initialOptions$env : {}, inputFS, _path.default.join(projectRoot, 'index')))),
|
75 | mode,
|
76 | minify,
|
77 | autoinstall: (_initialOptions$autoi = initialOptions.autoinstall) !== null && _initialOptions$autoi !== void 0 ? _initialOptions$autoi : true,
|
78 | hot: (_initialOptions$hot = initialOptions.hot) !== null && _initialOptions$hot !== void 0 ? _initialOptions$hot : false,
|
79 | serve: (_initialOptions$serve = initialOptions.serve) !== null && _initialOptions$serve !== void 0 ? _initialOptions$serve : false,
|
80 | disableCache: (_initialOptions$disab = initialOptions.disableCache) !== null && _initialOptions$disab !== void 0 ? _initialOptions$disab : false,
|
81 | killWorkers: (_initialOptions$killW = initialOptions.killWorkers) !== null && _initialOptions$killW !== void 0 ? _initialOptions$killW : true,
|
82 | profile: (_initialOptions$profi = initialOptions.profile) !== null && _initialOptions$profi !== void 0 ? _initialOptions$profi : false,
|
83 | cacheDir,
|
84 | entries,
|
85 | rootDir,
|
86 | defaultEngines: initialOptions.defaultEngines,
|
87 | targets: initialOptions.targets,
|
88 | sourceMaps: (_initialOptions$sourc = initialOptions.sourceMaps) !== null && _initialOptions$sourc !== void 0 ? _initialOptions$sourc : true,
|
89 | scopeHoist: (_initialOptions$scope = initialOptions.scopeHoist) !== null && _initialOptions$scope !== void 0 ? _initialOptions$scope : initialOptions.mode === 'production',
|
90 | logLevel: (_initialOptions$logLe = initialOptions.logLevel) !== null && _initialOptions$logLe !== void 0 ? _initialOptions$logLe : 'info',
|
91 | projectRoot,
|
92 | lockFile,
|
93 | inputFS,
|
94 | outputFS,
|
95 | cache,
|
96 | packageManager
|
97 | };
|
98 | } |
\ | No newline at end of file |