@netlify/build-info 6.7.2 → 7.0.0-pre-20230418.0
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/build-systems/build-system.d.ts +8 -10
- package/lib/build-systems/build-system.js +4 -0
- package/lib/build-systems/build-system.js.map +1 -1
- package/lib/build-systems/nrwl.d.ts +2 -1
- package/lib/build-systems/nrwl.js +14 -4
- package/lib/build-systems/nrwl.js.map +1 -1
- package/lib/build-systems/turbo.d.ts +3 -1
- package/lib/build-systems/turbo.js +20 -0
- package/lib/build-systems/turbo.js.map +1 -1
- package/lib/events.d.ts +8 -0
- package/lib/events.js +19 -0
- package/lib/events.js.map +1 -0
- package/lib/frameworks/framework.d.ts +1 -0
- package/lib/frameworks/framework.js.map +1 -1
- package/lib/frameworks/index.d.ts +2 -2
- package/lib/frameworks/index.js +1 -2
- package/lib/frameworks/index.js.map +1 -1
- package/lib/frameworks/next.d.ts +0 -22
- package/lib/frameworks/next.js +0 -29
- package/lib/frameworks/next.js.map +1 -1
- package/lib/index.d.ts +4 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/metrics.d.ts +2 -1
- package/lib/metrics.js +2 -1
- package/lib/metrics.js.map +1 -1
- package/lib/node/bin.js +3 -3
- package/lib/node/bin.js.map +1 -1
- package/lib/node/get-build-info.d.ts +2 -0
- package/lib/node/get-build-info.js +4 -1
- package/lib/node/get-build-info.js.map +1 -1
- package/lib/node/metrics.d.ts +2 -1
- package/lib/node/metrics.js +9 -2
- package/lib/node/metrics.js.map +1 -1
- package/lib/project.d.ts +19 -1
- package/lib/project.js +47 -37
- package/lib/project.js.map +1 -1
- package/lib/settings/get-build-settings.d.ts +21 -0
- package/lib/settings/get-build-settings.js +59 -0
- package/lib/settings/get-build-settings.js.map +1 -0
- package/lib/settings/get-toml-settings.js.map +1 -1
- package/lib/settings/netlify-toml.d.ts +385 -0
- package/lib/settings/netlify-toml.js +2 -0
- package/lib/settings/netlify-toml.js.map +1 -0
- package/lib/workspaces/detect-workspace.js +2 -2
- package/lib/workspaces/detect-workspace.js.map +1 -1
- package/package.json +2 -3
package/lib/project.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { coerce, parse } from 'semver';
|
|
2
2
|
import { buildSystems } from './build-systems/index.js';
|
|
3
|
+
import { EventEmitter } from './events.js';
|
|
3
4
|
import { filterByRelevance } from './frameworks/framework.js';
|
|
4
5
|
import { frameworks } from './frameworks/index.js';
|
|
5
6
|
import { report } from './metrics.js';
|
|
6
7
|
import { AVAILABLE_PACKAGE_MANAGERS, detectPackageManager, } from './package-managers/detect-package-manager.js';
|
|
8
|
+
import { getBuildSettings } from './settings/get-build-settings.js';
|
|
7
9
|
import { detectWorkspaces } from './workspaces/detect-workspace.js';
|
|
8
10
|
/**
|
|
9
11
|
* The Project represents a Site in Netlify
|
|
@@ -23,10 +25,15 @@ export class Project {
|
|
|
23
25
|
workspace;
|
|
24
26
|
/** The detected build-systems */
|
|
25
27
|
buildSystems;
|
|
28
|
+
/** The combined build settings for a project, in a workspace there can be multiple settings per package */
|
|
29
|
+
settings;
|
|
26
30
|
/** The detected frameworks for each path in a project */
|
|
27
31
|
frameworks;
|
|
28
32
|
/** a representation of the current environment */
|
|
29
33
|
#environment = {};
|
|
34
|
+
/** A bugsnag session */
|
|
35
|
+
bugsnag;
|
|
36
|
+
events = new EventEmitter();
|
|
30
37
|
/** The current nodeVersion (can be set by node.js environments) */
|
|
31
38
|
_nodeVersion = null;
|
|
32
39
|
setNodeVersion(version) {
|
|
@@ -67,12 +74,20 @@ export class Project {
|
|
|
67
74
|
this.#environment = env;
|
|
68
75
|
return this;
|
|
69
76
|
}
|
|
77
|
+
/** Set's a bugsnag client for the current session */
|
|
78
|
+
setBugsnag(client) {
|
|
79
|
+
if (client) {
|
|
80
|
+
this.bugsnag = client;
|
|
81
|
+
}
|
|
82
|
+
return this;
|
|
83
|
+
}
|
|
70
84
|
/** retrieves an environment variable */
|
|
71
85
|
getEnv(key) {
|
|
72
86
|
return this.#environment[key];
|
|
73
87
|
}
|
|
74
88
|
/** Reports an error with additional metadata */
|
|
75
89
|
report(error) {
|
|
90
|
+
this.fs.logger.error(error);
|
|
76
91
|
report(error, {
|
|
77
92
|
metadata: {
|
|
78
93
|
build: {
|
|
@@ -80,6 +95,7 @@ export class Project {
|
|
|
80
95
|
root: this.root,
|
|
81
96
|
},
|
|
82
97
|
},
|
|
98
|
+
client: this.bugsnag,
|
|
83
99
|
});
|
|
84
100
|
}
|
|
85
101
|
/** Retrieve the run command for an npm script */
|
|
@@ -121,6 +137,7 @@ export class Project {
|
|
|
121
137
|
}
|
|
122
138
|
try {
|
|
123
139
|
this.packageManager = await detectPackageManager(this);
|
|
140
|
+
this.events.emit('detectPackageManager', this.packageManager);
|
|
124
141
|
return this.packageManager;
|
|
125
142
|
}
|
|
126
143
|
catch {
|
|
@@ -138,6 +155,7 @@ export class Project {
|
|
|
138
155
|
await this.detectPackageManager();
|
|
139
156
|
try {
|
|
140
157
|
this.workspace = await detectWorkspaces(this);
|
|
158
|
+
this.events.emit('detectWorkspaces', this.workspace);
|
|
141
159
|
return this.workspace;
|
|
142
160
|
}
|
|
143
161
|
catch (error) {
|
|
@@ -154,24 +172,8 @@ export class Project {
|
|
|
154
172
|
// build systems depends on workspaces detection
|
|
155
173
|
await this.detectWorkspaces();
|
|
156
174
|
try {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
const detected = (await Promise.all(buildSystems.map((BuildSystem) => new BuildSystem(this).detect()))).filter(Boolean);
|
|
160
|
-
this.buildSystems = detected;
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
// In the browser perform the detection in series to avoid having the same HTTP request in parallel.
|
|
164
|
-
// It's faster to perform one detection, do all the needed HTTP requests and reuse the results
|
|
165
|
-
// on consecutive runs.
|
|
166
|
-
const detected = [];
|
|
167
|
-
for (const BuildSystem of buildSystems) {
|
|
168
|
-
const res = await new BuildSystem(this).detect();
|
|
169
|
-
if (res) {
|
|
170
|
-
detected.push(res);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
this.buildSystems = detected;
|
|
174
|
-
}
|
|
175
|
+
this.buildSystems = (await Promise.all(buildSystems.map((BuildSystem) => new BuildSystem(this).detect()))).filter(Boolean);
|
|
176
|
+
this.events.emit('detectBuildsystems', this.buildSystems);
|
|
175
177
|
return this.buildSystems;
|
|
176
178
|
}
|
|
177
179
|
catch (error) {
|
|
@@ -190,9 +192,13 @@ export class Project {
|
|
|
190
192
|
await this.detectBuildSystem();
|
|
191
193
|
this.frameworks = new Map();
|
|
192
194
|
if (this.workspace?.isRoot) {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
195
|
+
// parallelize in all workspaces
|
|
196
|
+
await Promise.all(this.workspace.packages.map(async (pkg) => {
|
|
197
|
+
if (this.workspace) {
|
|
198
|
+
const result = await this.detectFrameworksInPath(this.fs.join(this.workspace.rootDir, pkg));
|
|
199
|
+
this.frameworks.set(pkg, result);
|
|
200
|
+
}
|
|
201
|
+
}));
|
|
196
202
|
}
|
|
197
203
|
else {
|
|
198
204
|
// per default set on ''
|
|
@@ -207,6 +213,7 @@ export class Project {
|
|
|
207
213
|
}
|
|
208
214
|
this.frameworks.set(root, await this.detectFrameworksInPath());
|
|
209
215
|
}
|
|
216
|
+
this.events.emit('detectFrameworks', this.frameworks);
|
|
210
217
|
return [...this.frameworks.values()].flat();
|
|
211
218
|
}
|
|
212
219
|
catch (error) {
|
|
@@ -216,22 +223,7 @@ export class Project {
|
|
|
216
223
|
}
|
|
217
224
|
async detectFrameworksInPath(path) {
|
|
218
225
|
try {
|
|
219
|
-
|
|
220
|
-
// on node we can parallelize more
|
|
221
|
-
if (this.fs.getEnvironment() === "node" /* Environment.Node */) {
|
|
222
|
-
detected = (await Promise.all(frameworks.map((Framework) => new Framework(this, path).detect()))).filter(Boolean);
|
|
223
|
-
}
|
|
224
|
-
else {
|
|
225
|
-
// In the browser perform the detection in series to avoid having the same HTTP request in parallel.
|
|
226
|
-
// It's faster to perform one detection, do all the needed HTTP requests and reuse the results
|
|
227
|
-
// on consecutive runs.
|
|
228
|
-
for (const Framework of frameworks) {
|
|
229
|
-
const res = await new Framework(this, path).detect();
|
|
230
|
-
if (res) {
|
|
231
|
-
detected.push(res);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
226
|
+
const detected = (await Promise.all(frameworks.map((Framework) => new Framework(this, path).detect()))).filter(Boolean);
|
|
235
227
|
// sort based on the accuracy and drop un accurate results if something more accurate was found
|
|
236
228
|
// from most accurate to least accurate
|
|
237
229
|
// 1. a npm dependency was specified and matched
|
|
@@ -244,5 +236,23 @@ export class Project {
|
|
|
244
236
|
return [];
|
|
245
237
|
}
|
|
246
238
|
}
|
|
239
|
+
async getBuildSettings() {
|
|
240
|
+
// if the settings is undefined, the detection was not run.
|
|
241
|
+
// if it is an array it has already run
|
|
242
|
+
if (this.settings !== undefined) {
|
|
243
|
+
return this.settings;
|
|
244
|
+
}
|
|
245
|
+
this.settings = [];
|
|
246
|
+
try {
|
|
247
|
+
// This needs to be run first
|
|
248
|
+
await this.detectFrameworks();
|
|
249
|
+
this.settings = await getBuildSettings(this);
|
|
250
|
+
this.events.emit('detectSettings', this.settings);
|
|
251
|
+
}
|
|
252
|
+
catch (error) {
|
|
253
|
+
this.report(error);
|
|
254
|
+
}
|
|
255
|
+
return this.settings;
|
|
256
|
+
}
|
|
247
257
|
}
|
|
248
258
|
//# sourceMappingURL=project.js.map
|
package/lib/project.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type Project } from '../project.js';
|
|
2
|
+
export type Settings = {
|
|
3
|
+
/** A name that visualizes the settings */
|
|
4
|
+
name: string;
|
|
5
|
+
/** The build command that should be used to execute a build */
|
|
6
|
+
buildCommand?: string;
|
|
7
|
+
/** The dev command to serve the dev server */
|
|
8
|
+
devCommand?: string;
|
|
9
|
+
/** The port that needs to be listened on the dev server */
|
|
10
|
+
frameworkPort?: number;
|
|
11
|
+
/** The name of the detected framework */
|
|
12
|
+
framework: string;
|
|
13
|
+
/** The dist directory that contains the build output */
|
|
14
|
+
dist: string;
|
|
15
|
+
env: Record<string, string | undefined>;
|
|
16
|
+
plugins: string[];
|
|
17
|
+
pollingStrategies: string[];
|
|
18
|
+
baseDirectory?: string;
|
|
19
|
+
tomlModifications?: string;
|
|
20
|
+
};
|
|
21
|
+
export declare function getBuildSettings(project: Project): Promise<Settings[]>;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
async function applyBuildSystemOverrides(settings, project, baseDirectory) {
|
|
2
|
+
const buildSystem = project.buildSystems[0];
|
|
3
|
+
const updatedSettings = { ...settings };
|
|
4
|
+
if (baseDirectory && buildSystem) {
|
|
5
|
+
const cmds = (await buildSystem.getCommands?.(baseDirectory)) || [];
|
|
6
|
+
const build = cmds.find((cmd) => cmd.type === 'build');
|
|
7
|
+
const dev = cmds.find((cmd) => cmd.type === 'dev');
|
|
8
|
+
const dist = await buildSystem.getDist?.(baseDirectory);
|
|
9
|
+
updatedSettings.name = `${buildSystem.name} + ${settings.name} ${baseDirectory}`;
|
|
10
|
+
if (build) {
|
|
11
|
+
updatedSettings.buildCommand = build.command;
|
|
12
|
+
}
|
|
13
|
+
if (dev) {
|
|
14
|
+
updatedSettings.devCommand = dev.command;
|
|
15
|
+
}
|
|
16
|
+
if (dist) {
|
|
17
|
+
updatedSettings.dist = dist;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return updatedSettings;
|
|
21
|
+
}
|
|
22
|
+
async function getSettings(framework, project, baseDirectory) {
|
|
23
|
+
const frameworkDist = framework.staticAssetsDirectory || framework.build.directory;
|
|
24
|
+
const devCommands = framework.getDevCommands();
|
|
25
|
+
const settings = {
|
|
26
|
+
name: framework.name,
|
|
27
|
+
buildCommand: framework.build.command,
|
|
28
|
+
devCommand: devCommands[0],
|
|
29
|
+
frameworkPort: framework.dev?.port,
|
|
30
|
+
dist: frameworkDist,
|
|
31
|
+
env: framework.env || {},
|
|
32
|
+
plugins: framework.plugins || [],
|
|
33
|
+
framework: framework.name,
|
|
34
|
+
baseDirectory,
|
|
35
|
+
pollingStrategies: framework.dev?.pollingStrategies?.map(({ name }) => name) || [],
|
|
36
|
+
};
|
|
37
|
+
if (baseDirectory?.length && project.workspace?.isRoot) {
|
|
38
|
+
settings.dist = project.fs.join(baseDirectory, frameworkDist);
|
|
39
|
+
}
|
|
40
|
+
return applyBuildSystemOverrides(settings, project, baseDirectory);
|
|
41
|
+
}
|
|
42
|
+
export async function getBuildSettings(project) {
|
|
43
|
+
if (project.frameworks === undefined) {
|
|
44
|
+
throw new Error('Please run the framework detection before calling the build settings!');
|
|
45
|
+
}
|
|
46
|
+
if (!project.workspace?.packages.length) {
|
|
47
|
+
const frameworks = project.frameworks.get('') || []; // get the frameworks for non workspace settings
|
|
48
|
+
const settings = await Promise.all(frameworks.map((framework) => getSettings(framework, project)));
|
|
49
|
+
return settings.filter(Boolean);
|
|
50
|
+
}
|
|
51
|
+
const settings = await Promise.all(project.workspace.packages.map(async (baseDirectory) => {
|
|
52
|
+
const framework = project.frameworks.get(baseDirectory);
|
|
53
|
+
if (framework?.length) {
|
|
54
|
+
return getSettings(framework[0], project, baseDirectory);
|
|
55
|
+
}
|
|
56
|
+
}));
|
|
57
|
+
return settings.filter(Boolean);
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=get-build-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-build-settings.js","sourceRoot":"","sources":["../../src/settings/get-build-settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-toml-settings.js","sourceRoot":"","sources":["../../src/settings/get-toml-settings.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"get-toml-settings.js","sourceRoot":"","sources":["../../src/settings/get-toml-settings.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AAM5B,MAAM,EACJ,OAAO,EAAE,EAAE,MAAM,EAAE,GACpB,GAAG,OAAO,CAAA;AAcX,kEAAkE;AAClE,SAAS,iBAAiB,CAAI,OAAe;IAC3C,IAAI;QACF,OAAO,KAAK,CAAC,OAAO,CAAC,CAAA;KACtB;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACtB,KAAK,CAAC,OAAO,GAAG,0DAA0D,CAAA;YAC1E,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAA;QACzB,CAAC,CAAC,CAAA;QACF,OAAO,EAAO,CAAA;KACf;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAAc,EAAE,SAAiB;IAC5E,MAAM,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;IAEvD,IAAI;QACF,MAAM,QAAQ,GAA2B,EAAE,CAAA;QAC3C,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAc,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAA;QAEtG,IAAI,KAAK,EAAE;YACT,QAAQ,CAAC,GAAG,GAAG,KAAK,EAAE,OAAO,CAAA;YAC7B,QAAQ,CAAC,GAAG,GAAG,KAAK,CAAC,OAAO,CAAA;SAC7B;QAED,QAAQ,CAAC,aAAa,GAAG,KAAK,EAAE,SAAS,IAAI,SAAS,EAAE,SAAS,CAAA;QACjE,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAA;KAC7B;IAAC,MAAM;QACN,gBAAgB;QAChB,OAAO,EAAE,CAAA;KACV;AACH,CAAC"}
|