UNPKG

6.04 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = resolveOptions;
7
8var _utils = require("@parcel/utils");
9
10var _loadDotEnv = _interopRequireDefault(require("./loadDotEnv"));
11
12var _path = _interopRequireDefault(require("path"));
13
14var _fs = require("@parcel/fs");
15
16var _cache = _interopRequireDefault(require("@parcel/cache"));
17
18var _packageManager = require("@parcel/package-manager");
19
20function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
22function 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
24function _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
26function _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// Default cache directory name
29const DEFAULT_CACHE_DIRNAME = '.parcel-cache';
30const LOCK_FILE_NAMES = ['yarn.lock', 'package-lock.json', 'pnpm-lock.yaml'];
31
32async 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'); // ? Should this just be rootDir
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 = // If a cacheDir is provided, resolve it relative to cwd. Otherwise,
65 // use a default directory resolved relative to the project root.
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