monorepo-next 9.4.1 → 9.4.3
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/package.json +1 -1
- package/src/build-dag.js +2 -2
- package/src/build-dep-graph.js +2 -2
- package/src/build-release-graph.js +8 -7
- package/src/detach.js +1 -1
- package/src/get-workspaces-paths.js +2 -2
- package/src/log.js +41 -9
- package/src/release.js +5 -5
package/package.json
CHANGED
package/src/build-dag.js
CHANGED
@@ -32,7 +32,7 @@ function thirdPass({
|
|
32
32
|
let {
|
33
33
|
dependencyType,
|
34
34
|
dependencyRange,
|
35
|
-
} = doesDependOnPackage(_package, currentPackageName)
|
35
|
+
} = doesDependOnPackage(_package, currentPackageName) ?? {};
|
36
36
|
|
37
37
|
if (dependencyType) {
|
38
38
|
let parent = group;
|
@@ -87,7 +87,7 @@ function createPackageNode({
|
|
87
87
|
parent,
|
88
88
|
branch,
|
89
89
|
}) {
|
90
|
-
let _package = workspaceMeta.packages[packageName]
|
90
|
+
let _package = workspaceMeta.packages[packageName] ?? workspaceMeta;
|
91
91
|
|
92
92
|
let node = {
|
93
93
|
isPackage: !_package.isPrivate,
|
package/src/build-dep-graph.js
CHANGED
@@ -13,7 +13,7 @@ function copyDeps(left, right) {
|
|
13
13
|
}
|
14
14
|
|
15
15
|
function firstPass(workspaceMeta, workspacePackageJson, workspacesPackageJsons) {
|
16
|
-
workspaceMeta.packageName = workspacePackageJson.name
|
16
|
+
workspaceMeta.packageName = workspacePackageJson.name ?? 'Workspace Root';
|
17
17
|
workspaceMeta.version = workspacePackageJson.version;
|
18
18
|
workspaceMeta.isPrivate = true;
|
19
19
|
workspaceMeta.packages = {};
|
@@ -24,7 +24,7 @@ function firstPass(workspaceMeta, workspacePackageJson, workspacesPackageJsons)
|
|
24
24
|
cwd: path.join(workspaceMeta.cwd, workspace),
|
25
25
|
packageName,
|
26
26
|
version: packageJson.version,
|
27
|
-
isPrivate: packageJson.private
|
27
|
+
isPrivate: packageJson.private ?? false,
|
28
28
|
};
|
29
29
|
copyDeps(workspaceMeta.packages[packageName], packageJson);
|
30
30
|
}
|
@@ -11,7 +11,7 @@ const semver = require('semver');
|
|
11
11
|
const dependencyTypes = require('./dependency-types');
|
12
12
|
const { loadPackageConfig } = require('./config');
|
13
13
|
const debug = require('./debug');
|
14
|
-
const {
|
14
|
+
const { createSyncLogger, createAsyncLogger } = require('./log');
|
15
15
|
|
16
16
|
const defaultReleaseType = 'patch';
|
17
17
|
|
@@ -207,7 +207,7 @@ function thirdPass({
|
|
207
207
|
|
208
208
|
let isDevDep = dag.dependencyType === 'devDependencies';
|
209
209
|
let currentReleaseType = current.releaseType;
|
210
|
-
let incomingReleaseType = parent
|
210
|
+
let incomingReleaseType = parent?.releaseType ?? currentReleaseType;
|
211
211
|
|
212
212
|
if (shouldInheritGreaterReleaseType && !isDevDep && isReleaseTypeLessThan(currentReleaseType, incomingReleaseType)) {
|
213
213
|
currentReleaseType = incomingReleaseType;
|
@@ -306,18 +306,19 @@ async function buildReleaseGraph({
|
|
306
306
|
shouldInheritGreaterReleaseType,
|
307
307
|
shouldExcludeDevChanges,
|
308
308
|
}) {
|
309
|
-
let
|
309
|
+
let logSync = createSyncLogger(_debug);
|
310
|
+
let logAsync = createAsyncLogger(_debug);
|
310
311
|
|
311
312
|
let releaseTrees = {};
|
312
313
|
|
313
|
-
await
|
314
|
+
await logAsync(firstPass, {
|
314
315
|
releaseTrees,
|
315
316
|
packagesWithChanges,
|
316
317
|
});
|
317
318
|
|
318
319
|
// only packages with changes have been analyzed
|
319
320
|
|
320
|
-
await
|
321
|
+
await logAsync(secondPass, {
|
321
322
|
releaseTrees,
|
322
323
|
packagesWithChanges,
|
323
324
|
shouldBumpInRangeDependencies,
|
@@ -327,7 +328,7 @@ async function buildReleaseGraph({
|
|
327
328
|
|
328
329
|
// packages without changes, but need to be analyzed because of options
|
329
330
|
|
330
|
-
|
331
|
+
logSync(thirdPass, {
|
331
332
|
releaseTrees,
|
332
333
|
packagesWithChanges,
|
333
334
|
shouldInheritGreaterReleaseType,
|
@@ -336,7 +337,7 @@ async function buildReleaseGraph({
|
|
336
337
|
|
337
338
|
// dependents have now inherited release type
|
338
339
|
|
339
|
-
|
340
|
+
logSync(fourthPass, {
|
340
341
|
releaseTrees,
|
341
342
|
packagesWithChanges,
|
342
343
|
shouldBumpInRangeDependencies,
|
package/src/detach.js
CHANGED
@@ -58,7 +58,7 @@ async function detach({
|
|
58
58
|
let workspaceKey = 'Workspace Root';
|
59
59
|
|
60
60
|
let choices = dag.node.dependents.map(dependent => {
|
61
|
-
return dependent.node.packageName
|
61
|
+
return dependent.node.packageName ?? path.basename(dependent.node.cwd);
|
62
62
|
});
|
63
63
|
|
64
64
|
let { answers } = await inquirer.prompt([{
|
@@ -109,7 +109,7 @@ async function getWorkspacesPaths({
|
|
109
109
|
await fs.readFile(path.join(cwd, 'pnpm-workspace.yaml')),
|
110
110
|
);
|
111
111
|
} else {
|
112
|
-
packagesGlobs = workspaces.packages
|
112
|
+
packagesGlobs = workspaces.packages ?? workspaces;
|
113
113
|
}
|
114
114
|
|
115
115
|
let _2dFilesArray = await Promise.all(packagesGlobs.map(packagesGlob => {
|
@@ -157,7 +157,7 @@ function getWorkspacesPathsSync({
|
|
157
157
|
fs.readFileSync(path.join(cwd, 'pnpm-workspace.yaml')),
|
158
158
|
);
|
159
159
|
} else {
|
160
|
-
packagesGlobs = workspaces.packages
|
160
|
+
packagesGlobs = workspaces.packages ?? workspaces;
|
161
161
|
}
|
162
162
|
|
163
163
|
let _2dFilesArray = packagesGlobs.map(packagesGlob => {
|
package/src/log.js
CHANGED
@@ -2,24 +2,56 @@
|
|
2
2
|
|
3
3
|
const _debug = require('./debug');
|
4
4
|
|
5
|
-
function
|
6
|
-
|
7
|
-
|
5
|
+
function prepare(callback, debug = _debug) {
|
6
|
+
let _debug = debug.extend(callback.name);
|
7
|
+
|
8
|
+
_debug('begin');
|
9
|
+
|
10
|
+
let before = new Date();
|
11
|
+
|
12
|
+
return {
|
13
|
+
debug: _debug,
|
14
|
+
before,
|
15
|
+
};
|
16
|
+
}
|
8
17
|
|
9
|
-
|
18
|
+
function finish(debug, before) {
|
19
|
+
let elapsed = new Date() - before;
|
20
|
+
|
21
|
+
debug(`end in ${elapsed}ms`);
|
22
|
+
}
|
10
23
|
|
11
|
-
|
24
|
+
function createSyncLogger(debug) {
|
25
|
+
return function log(callback, ...args) {
|
26
|
+
let {
|
27
|
+
debug: _debug,
|
28
|
+
before,
|
29
|
+
} = prepare(callback, debug);
|
12
30
|
|
13
31
|
try {
|
14
|
-
return
|
32
|
+
return callback.apply(this, args);
|
15
33
|
} finally {
|
16
|
-
|
34
|
+
finish(_debug, before);
|
35
|
+
}
|
36
|
+
};
|
37
|
+
}
|
17
38
|
|
18
|
-
|
39
|
+
function createAsyncLogger(debug) {
|
40
|
+
return async function log(callback, ...args) {
|
41
|
+
let {
|
42
|
+
debug: _debug,
|
43
|
+
before,
|
44
|
+
} = prepare(callback, debug);
|
45
|
+
|
46
|
+
try {
|
47
|
+
return await callback.apply(this, args);
|
48
|
+
} finally {
|
49
|
+
finish(_debug, before);
|
19
50
|
}
|
20
51
|
};
|
21
52
|
}
|
22
53
|
|
23
54
|
module.exports = {
|
24
|
-
|
55
|
+
createSyncLogger,
|
56
|
+
createAsyncLogger,
|
25
57
|
};
|
package/src/release.js
CHANGED
@@ -18,7 +18,7 @@ const {
|
|
18
18
|
const semver = require('semver');
|
19
19
|
const { builder } = require('../bin/commands/release');
|
20
20
|
const debug = require('./debug');
|
21
|
-
const {
|
21
|
+
const { createAsyncLogger } = require('./log');
|
22
22
|
|
23
23
|
async function release({
|
24
24
|
cwd = process.cwd(),
|
@@ -43,7 +43,7 @@ async function release({
|
|
43
43
|
cached,
|
44
44
|
} = {}) {
|
45
45
|
let _debug = debug.extend(release.name);
|
46
|
-
let
|
46
|
+
let logAsync = createAsyncLogger(_debug);
|
47
47
|
|
48
48
|
let currentBranch = await getCurrentBranch(cwd);
|
49
49
|
if (currentBranch !== defaultBranch) {
|
@@ -52,9 +52,9 @@ async function release({
|
|
52
52
|
|
53
53
|
let workspaceCwd = await getWorkspaceCwd(cwd);
|
54
54
|
|
55
|
-
let workspaceMeta = await
|
55
|
+
let workspaceMeta = await logAsync(buildDepGraph, { workspaceCwd });
|
56
56
|
|
57
|
-
let packagesWithChanges = await
|
57
|
+
let packagesWithChanges = await logAsync(buildChangeGraph, {
|
58
58
|
workspaceMeta,
|
59
59
|
shouldExcludeDevChanges,
|
60
60
|
cached,
|
@@ -69,7 +69,7 @@ async function release({
|
|
69
69
|
return;
|
70
70
|
}
|
71
71
|
|
72
|
-
let releaseTrees = await
|
72
|
+
let releaseTrees = await logAsync(buildReleaseGraph, {
|
73
73
|
debug: _debug,
|
74
74
|
packagesWithChanges,
|
75
75
|
shouldBumpInRangeDependencies,
|