1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.flagEnabled = flagEnabled;
|
7 | exports.issueFlagNotices = issueFlagNotices;
|
8 | exports.default = void 0;
|
9 |
|
10 | var _lodash = _interopRequireDefault(require("lodash"));
|
11 |
|
12 | var _chalk = _interopRequireDefault(require("chalk"));
|
13 |
|
14 | var _log = _interopRequireDefault(require("./util/log"));
|
15 |
|
16 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
17 |
|
18 | const featureFlags = {
|
19 | future: [],
|
20 | experimental: ['optimizeUniversalDefaults']
|
21 | };
|
22 |
|
23 | function flagEnabled(config, flag) {
|
24 | if (featureFlags.future.includes(flag)) {
|
25 | return config.future === 'all' || _lodash.default.get(config, ['future', flag], false);
|
26 | }
|
27 |
|
28 | if (featureFlags.experimental.includes(flag)) {
|
29 | return config.experimental === 'all' || _lodash.default.get(config, ['experimental', flag], false);
|
30 | }
|
31 |
|
32 | return false;
|
33 | }
|
34 |
|
35 | function experimentalFlagsEnabled(config) {
|
36 | if (config.experimental === 'all') {
|
37 | return featureFlags.experimental;
|
38 | }
|
39 |
|
40 | return Object.keys(_lodash.default.get(config, 'experimental', {})).filter(flag => featureFlags.experimental.includes(flag) && config.experimental[flag]);
|
41 | }
|
42 |
|
43 | function issueFlagNotices(config) {
|
44 | if (process.env.JEST_WORKER_ID !== undefined) {
|
45 | return;
|
46 | }
|
47 |
|
48 | if (experimentalFlagsEnabled(config).length > 0) {
|
49 | const changes = experimentalFlagsEnabled(config).map(s => _chalk.default.yellow(s)).join(', ');
|
50 |
|
51 | _log.default.warn([`You have enabled experimental features: ${changes}`, 'Experimental features are not covered by semver, may introduce breaking changes, and can change at any time.']);
|
52 | }
|
53 | }
|
54 |
|
55 | var _default = featureFlags;
|
56 | exports.default = _default; |
\ | No newline at end of file |