@netlify/build 27.20.4 → 27.20.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/core/bin.js +42 -59
- package/lib/core/build.js +333 -536
- package/lib/core/config.js +94 -159
- package/lib/core/constants.js +95 -135
- package/lib/core/dev.js +26 -30
- package/lib/core/dry.js +18 -36
- package/lib/core/feature_flags.js +13 -16
- package/lib/core/flags.js +168 -169
- package/lib/core/lingering.js +44 -61
- package/lib/core/main.js +94 -136
- package/lib/core/missing_side_file.js +12 -24
- package/lib/core/normalize_flags.js +52 -63
- package/lib/core/severity.js +13 -15
- package/lib/core/user_node_version.js +26 -35
- package/lib/env/changes.js +29 -37
- package/lib/env/main.js +10 -15
- package/lib/env/metadata.js +63 -76
- package/lib/error/api.js +31 -40
- package/lib/error/build.js +27 -38
- package/lib/error/cancel.js +5 -6
- package/lib/error/colors.js +7 -9
- package/lib/error/handle.js +38 -49
- package/lib/error/info.js +26 -35
- package/lib/error/monitor/location.js +12 -17
- package/lib/error/monitor/normalize.js +75 -85
- package/lib/error/monitor/print.js +19 -41
- package/lib/error/monitor/report.js +102 -121
- package/lib/error/monitor/start.js +43 -56
- package/lib/error/parse/clean_stack.js +52 -69
- package/lib/error/parse/location.js +40 -52
- package/lib/error/parse/normalize.js +18 -23
- package/lib/error/parse/parse.js +59 -93
- package/lib/error/parse/plugin.js +42 -57
- package/lib/error/parse/properties.js +13 -20
- package/lib/error/parse/serialize_log.js +29 -37
- package/lib/error/parse/serialize_status.js +15 -23
- package/lib/error/parse/stack.js +29 -38
- package/lib/error/type.js +132 -150
- package/lib/install/functions.js +16 -24
- package/lib/install/local.js +31 -48
- package/lib/install/main.js +52 -66
- package/lib/install/missing.js +40 -53
- package/lib/log/colors.js +15 -22
- package/lib/log/description.js +16 -21
- package/lib/log/header.js +11 -13
- package/lib/log/header_func.js +11 -15
- package/lib/log/logger.js +88 -119
- package/lib/log/messages/compatibility.js +100 -158
- package/lib/log/messages/config.js +76 -92
- package/lib/log/messages/core.js +40 -60
- package/lib/log/messages/core_steps.js +63 -92
- package/lib/log/messages/dry.js +31 -53
- package/lib/log/messages/install.js +21 -28
- package/lib/log/messages/ipc.js +21 -30
- package/lib/log/messages/mutations.js +51 -71
- package/lib/log/messages/plugins.js +18 -31
- package/lib/log/messages/status.js +12 -14
- package/lib/log/messages/steps.js +14 -18
- package/lib/log/old_version.js +23 -32
- package/lib/log/serialize.js +7 -10
- package/lib/log/stream.js +48 -65
- package/lib/log/theme.js +22 -23
- package/lib/plugins/child/diff.js +31 -40
- package/lib/plugins/child/error.js +20 -26
- package/lib/plugins/child/lazy.js +11 -14
- package/lib/plugins/child/load.js +15 -22
- package/lib/plugins/child/logic.js +51 -58
- package/lib/plugins/child/main.js +32 -46
- package/lib/plugins/child/run.js +18 -27
- package/lib/plugins/child/status.js +52 -63
- package/lib/plugins/child/typescript.js +19 -36
- package/lib/plugins/child/utils.js +36 -49
- package/lib/plugins/child/validate.js +25 -28
- package/lib/plugins/compatibility.js +64 -92
- package/lib/plugins/error.js +29 -35
- package/lib/plugins/events.js +7 -12
- package/lib/plugins/expected_version.js +61 -99
- package/lib/plugins/ipc.js +79 -102
- package/lib/plugins/list.js +49 -62
- package/lib/plugins/load.js +44 -64
- package/lib/plugins/manifest/check.js +64 -85
- package/lib/plugins/manifest/load.js +34 -37
- package/lib/plugins/manifest/main.js +16 -21
- package/lib/plugins/manifest/path.js +18 -25
- package/lib/plugins/manifest/validate.js +77 -94
- package/lib/plugins/node_version.js +22 -42
- package/lib/plugins/options.js +45 -78
- package/lib/plugins/pinned_version.js +58 -106
- package/lib/plugins/resolve.js +91 -133
- package/lib/plugins/spawn.js +43 -61
- package/lib/plugins_core/add.js +26 -40
- package/lib/plugins_core/build_command.js +47 -72
- package/lib/plugins_core/deploy/buildbot_client.js +61 -87
- package/lib/plugins_core/deploy/index.js +47 -71
- package/lib/plugins_core/edge_functions/index.js +73 -116
- package/lib/plugins_core/edge_functions/lib/error.js +13 -17
- package/lib/plugins_core/edge_functions/lib/internal_manifest.js +45 -55
- package/lib/plugins_core/edge_functions/validate_manifest/validate_edge_functions_manifest.js +65 -80
- package/lib/plugins_core/functions/error.js +88 -128
- package/lib/plugins_core/functions/feature_flags.js +5 -5
- package/lib/plugins_core/functions/index.js +98 -145
- package/lib/plugins_core/functions/utils.js +36 -57
- package/lib/plugins_core/functions/zisi.js +35 -52
- package/lib/plugins_core/functions_install/index.js +8 -11
- package/lib/plugins_core/list.js +15 -22
- package/lib/status/add.js +26 -32
- package/lib/status/colors.js +14 -19
- package/lib/status/load_error.js +8 -9
- package/lib/status/report.js +72 -126
- package/lib/status/success.js +10 -14
- package/lib/steps/core_step.js +54 -89
- package/lib/steps/error.js +50 -87
- package/lib/steps/get.js +33 -41
- package/lib/steps/plugin.js +53 -83
- package/lib/steps/return.js +24 -51
- package/lib/steps/run_core_steps.js +119 -171
- package/lib/steps/run_step.js +154 -270
- package/lib/steps/run_steps.js +91 -174
- package/lib/steps/update_config.js +45 -72
- package/lib/telemetry/main.js +89 -128
- package/lib/time/aggregate.js +84 -110
- package/lib/time/main.js +23 -34
- package/lib/time/measure.js +11 -15
- package/lib/time/report.js +32 -44
- package/lib/utils/errors.js +10 -9
- package/lib/utils/json.js +11 -15
- package/lib/utils/omit.js +3 -4
- package/lib/utils/package.js +19 -22
- package/lib/utils/remove_falsy.js +5 -7
- package/lib/utils/resolve.js +30 -34
- package/lib/utils/runtime.js +4 -4
- package/lib/utils/semver.js +19 -25
- package/package.json +14 -7
package/lib/core/bin.js
CHANGED
|
@@ -1,83 +1,66 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
import {
|
|
10
|
-
import { FLAGS } from './flags.js'
|
|
11
|
-
import build from './main.js'
|
|
12
|
-
import { FALLBACK_SEVERITY_ENTRY } from './severity.js'
|
|
13
|
-
|
|
2
|
+
import process from 'process';
|
|
3
|
+
import filterObj from 'filter-obj';
|
|
4
|
+
import yargs from 'yargs';
|
|
5
|
+
import { hideBin } from 'yargs/helpers';
|
|
6
|
+
import { normalizeCliFeatureFlags } from './feature_flags.js';
|
|
7
|
+
import { FLAGS } from './flags.js';
|
|
8
|
+
import build from './main.js';
|
|
9
|
+
import { FALLBACK_SEVERITY_ENTRY } from './severity.js';
|
|
14
10
|
// CLI entry point.
|
|
15
11
|
// Before adding logic to this file, please consider adding it to the main
|
|
16
12
|
// programmatic command instead, so that the new logic is available when run
|
|
17
13
|
// programmatically as well. This file should only contain logic that makes
|
|
18
14
|
// sense only in CLI, such as CLI flags parsing and exit code.
|
|
19
15
|
const runCli = async function () {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
state.done = true
|
|
31
|
-
}
|
|
32
|
-
|
|
16
|
+
const flags = parseFlags();
|
|
17
|
+
const flagsA = filterObj(flags, isUserFlag);
|
|
18
|
+
const state = { done: false };
|
|
19
|
+
process.on('exit', onExit.bind(undefined, state));
|
|
20
|
+
const { severityCode, logs } = await build(flagsA);
|
|
21
|
+
printLogs(logs);
|
|
22
|
+
process.exitCode = severityCode;
|
|
23
|
+
state.done = true;
|
|
24
|
+
};
|
|
33
25
|
const parseFlags = function () {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
|
|
26
|
+
const { featureFlags: cliFeatureFlags = '', ...flags } = yargs(hideBin(process.argv))
|
|
27
|
+
.options(FLAGS)
|
|
28
|
+
.usage(USAGE)
|
|
29
|
+
.parse();
|
|
30
|
+
const featureFlags = normalizeCliFeatureFlags(cliFeatureFlags);
|
|
31
|
+
return { ...flags, featureFlags };
|
|
32
|
+
};
|
|
42
33
|
const USAGE = `netlify-build [OPTIONS...]
|
|
43
34
|
|
|
44
35
|
Run Netlify Build system locally.
|
|
45
36
|
|
|
46
37
|
Options can also be specified as environment variables prefixed with
|
|
47
38
|
NETLIFY_BUILD_. For example the environment variable NETLIFY_BUILD_DRY=true can
|
|
48
|
-
be used instead of the CLI flag --dry
|
|
49
|
-
|
|
39
|
+
be used instead of the CLI flag --dry.`;
|
|
50
40
|
// Remove `yargs`-specific options, shortcuts, dash-cased and aliases
|
|
51
41
|
const isUserFlag = function (key, value) {
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
const INTERNAL_KEYS = new Set(['help', 'version', '_', '$0', 'dryRun'])
|
|
56
|
-
|
|
42
|
+
return value !== undefined && !INTERNAL_KEYS.has(key) && key.length !== 1 && !key.includes('-');
|
|
43
|
+
};
|
|
44
|
+
const INTERNAL_KEYS = new Set(['help', 'version', '_', '$0', 'dryRun']);
|
|
57
45
|
// Used mostly for testing
|
|
58
46
|
const printLogs = function (logs) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
|
|
47
|
+
if (logs === undefined) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const allLogs = [logs.stdout.join('\n'), logs.stderr.join('\n')].filter(Boolean).join('\n\n');
|
|
51
|
+
console.log(allLogs);
|
|
52
|
+
};
|
|
67
53
|
// In theory, the main process should not exit until the main `build()` function
|
|
68
54
|
// has completed. In practice, this might happen due to bugs.
|
|
69
55
|
// Making the exit code not 0 in that case ensures the caller knows that the
|
|
70
56
|
// build has completed when the exit code is 0. This `exit` event handlers
|
|
71
57
|
// guarantees this.
|
|
72
58
|
const onExit = function ({ done }, exitCode) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
runCli()
|
|
59
|
+
if (done || exitCode !== 0) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const [, processName] = process.argv;
|
|
63
|
+
console.log(`${processName} exited with exit code ${exitCode} without finishing the build.`);
|
|
64
|
+
process.exitCode = FALLBACK_SEVERITY_ENTRY.severityCode;
|
|
65
|
+
};
|
|
66
|
+
runCli();
|