aboutsummaryrefslogtreecommitdiff
path: root/node_modules/jest-cli/build/init/generateConfigFile.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/jest-cli/build/init/generateConfigFile.js')
-rw-r--r--node_modules/jest-cli/build/init/generateConfigFile.js104
1 files changed, 104 insertions, 0 deletions
diff --git a/node_modules/jest-cli/build/init/generateConfigFile.js b/node_modules/jest-cli/build/init/generateConfigFile.js
new file mode 100644
index 0000000..773e692
--- /dev/null
+++ b/node_modules/jest-cli/build/init/generateConfigFile.js
@@ -0,0 +1,104 @@
+'use strict';
+
+Object.defineProperty(exports, '__esModule', {
+ value: true
+});
+exports.default = void 0;
+
+function _jestConfig() {
+ const data = require('jest-config');
+
+ _jestConfig = function () {
+ return data;
+ };
+
+ return data;
+}
+
+/**
+ * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+const stringifyOption = (option, map, linePrefix = '') => {
+ const optionDescription = ` // ${_jestConfig().descriptions[option]}`;
+ const stringifiedObject = `${option}: ${JSON.stringify(
+ map[option],
+ null,
+ 2
+ )}`;
+ return (
+ optionDescription +
+ '\n' +
+ stringifiedObject
+ .split('\n')
+ .map(line => ' ' + linePrefix + line)
+ .join('\n') +
+ ',\n'
+ );
+};
+
+const generateConfigFile = (results, generateEsm = false) => {
+ const {useTypescript, coverage, coverageProvider, clearMocks, environment} =
+ results;
+ const overrides = {};
+
+ if (coverage) {
+ Object.assign(overrides, {
+ collectCoverage: true,
+ coverageDirectory: 'coverage'
+ });
+ }
+
+ if (coverageProvider === 'v8') {
+ Object.assign(overrides, {
+ coverageProvider: 'v8'
+ });
+ }
+
+ if (environment === 'jsdom') {
+ Object.assign(overrides, {
+ testEnvironment: 'jsdom'
+ });
+ }
+
+ if (clearMocks) {
+ Object.assign(overrides, {
+ clearMocks: true
+ });
+ }
+
+ const overrideKeys = Object.keys(overrides);
+ const properties = [];
+
+ for (const option in _jestConfig().descriptions) {
+ const opt = option;
+
+ if (overrideKeys.includes(opt)) {
+ properties.push(stringifyOption(opt, overrides));
+ } else {
+ properties.push(stringifyOption(opt, _jestConfig().defaults, '// '));
+ }
+ }
+
+ const configHeaderMessage = `/*
+ * For a detailed explanation regarding each configuration property${
+ useTypescript ? ' and type check' : ''
+ }, visit:
+ * https://jestjs.io/docs/configuration
+ */
+
+`;
+ return (
+ configHeaderMessage +
+ (useTypescript || generateEsm
+ ? 'export default {\n'
+ : 'module.exports = {\n') +
+ properties.join('\n') +
+ '};\n'
+ );
+};
+
+var _default = generateConfigFile;
+exports.default = _default;