@proteinjs/build 1.5.8 → 1.5.9
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/CHANGELOG.md +11 -0
- package/LICENSE +21 -0
- package/dist/src/Github.d.ts.map +1 -1
- package/dist/src/Github.js +5 -3
- package/dist/src/Github.js.map +1 -1
- package/dist/src/buildWorkspace.d.ts.map +1 -1
- package/dist/src/buildWorkspace.js +16 -10
- package/dist/src/buildWorkspace.js.map +1 -1
- package/dist/src/cleanWorkspace.js +8 -4
- package/dist/src/cleanWorkspace.js.map +1 -1
- package/dist/src/lintWorkspace.d.ts.map +1 -1
- package/dist/src/lintWorkspace.js +11 -7
- package/dist/src/lintWorkspace.js.map +1 -1
- package/dist/src/symlinkWorkspace.js +10 -6
- package/dist/src/symlinkWorkspace.js.map +1 -1
- package/dist/src/testWorkspace.js +8 -4
- package/dist/src/testWorkspace.js.map +1 -1
- package/dist/src/versionWorkspace.d.ts.map +1 -1
- package/dist/src/versionWorkspace.js +61 -43
- package/dist/src/versionWorkspace.js.map +1 -1
- package/dist/src/watchWorkspace.js +5 -3
- package/dist/src/watchWorkspace.js.map +1 -1
- package/dist/src/workspaceCommand.js +9 -5
- package/dist/src/workspaceCommand.js.map +1 -1
- package/dist/src/workspacePackageCommand.js +9 -7
- package/dist/src/workspacePackageCommand.js.map +1 -1
- package/package.json +5 -4
- package/src/Github.ts +5 -3
- package/src/buildWorkspace.ts +16 -14
- package/src/cleanWorkspace.ts +8 -8
- package/src/lintWorkspace.ts +12 -12
- package/src/symlinkWorkspace.ts +10 -10
- package/src/testWorkspace.ts +8 -8
- package/src/versionWorkspace.ts +61 -49
- package/src/watchWorkspace.ts +5 -5
- package/src/workspaceCommand.ts +9 -9
- package/src/workspacePackageCommand.ts +9 -9
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proteinjs/build",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.9",
|
|
4
4
|
"description": "Workspace build tools",
|
|
5
5
|
"main": "./dist/generated/index.js",
|
|
6
6
|
"types": "./dist/generated/index.d.ts",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@octokit/core": "6.1.2",
|
|
39
|
-
"@proteinjs/
|
|
39
|
+
"@proteinjs/logger": "1.0.4",
|
|
40
40
|
"@proteinjs/util-node": "1.4.0",
|
|
41
41
|
"semver": "7.6.0"
|
|
42
42
|
},
|
|
@@ -57,5 +57,6 @@
|
|
|
57
57
|
"typescript": "5.2.2",
|
|
58
58
|
"webpack": "5.90.0",
|
|
59
59
|
"webpack-cli": "5.1.4"
|
|
60
|
-
}
|
|
61
|
-
|
|
60
|
+
},
|
|
61
|
+
"gitHead": "f78e21cd3173b436deec8e7293c6b2f7a30b47dc"
|
|
62
|
+
}
|
package/src/Github.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Octokit } from '@octokit/core';
|
|
2
|
-
import { Logger } from '@proteinjs/
|
|
2
|
+
import { Logger } from '@proteinjs/logger';
|
|
3
3
|
import { LocalPackage } from '@proteinjs/util-node';
|
|
4
4
|
|
|
5
5
|
export type WorkflowRun = {
|
|
@@ -17,7 +17,7 @@ export type Commit = {
|
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
export class Github {
|
|
20
|
-
private logger = new Logger(this.constructor.name);
|
|
20
|
+
private logger = new Logger({ name: this.constructor.name });
|
|
21
21
|
private authToken: string;
|
|
22
22
|
|
|
23
23
|
constructor(authToken?: string) {
|
|
@@ -48,7 +48,9 @@ export class Github {
|
|
|
48
48
|
const workflowRun = await this.getWorkflowRun(workflowName, commit);
|
|
49
49
|
if (workflowRun && workflowRun.status === 'completed') {
|
|
50
50
|
if (workflowRun.conclusion === 'success') {
|
|
51
|
-
this.logger.info(
|
|
51
|
+
this.logger.info({
|
|
52
|
+
message: `(${localPackage.name}) ci passed for latest version (${localPackage.packageJson.version})`,
|
|
53
|
+
});
|
|
52
54
|
return true;
|
|
53
55
|
}
|
|
54
56
|
|
package/src/buildWorkspace.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as path from 'path';
|
|
2
2
|
import { LogColorWrapper, PackageUtil, cmd, parseArgsMap } from '@proteinjs/util-node';
|
|
3
|
-
import { Logger } from '@proteinjs/
|
|
3
|
+
import { Logger } from '@proteinjs/logger';
|
|
4
4
|
import { primaryLogColor, secondaryLogColor } from './logColors';
|
|
5
5
|
import { hasLintConfig } from './lintWorkspace';
|
|
6
6
|
|
|
@@ -16,7 +16,9 @@ import { hasLintConfig } from './lintWorkspace';
|
|
|
16
16
|
*/
|
|
17
17
|
export async function buildWorkspace() {
|
|
18
18
|
const cw = new LogColorWrapper();
|
|
19
|
-
const logger = new Logger(
|
|
19
|
+
const logger = new Logger({
|
|
20
|
+
name: cw.color('workspace:', primaryLogColor) + cw.color('build', secondaryLogColor),
|
|
21
|
+
});
|
|
20
22
|
const args = getArgs();
|
|
21
23
|
const workspacePath = process.cwd();
|
|
22
24
|
const { packageMap, sortedPackageNames } = await PackageUtil.getWorkspaceMetadata(workspacePath);
|
|
@@ -29,36 +31,36 @@ export async function buildWorkspace() {
|
|
|
29
31
|
);
|
|
30
32
|
});
|
|
31
33
|
|
|
32
|
-
logger.info(
|
|
33
|
-
`> Installing, building, and linting ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})
|
|
34
|
-
);
|
|
35
|
-
logger.debug(`packageMap
|
|
36
|
-
logger.debug(`filteredPackageNames
|
|
34
|
+
logger.info({
|
|
35
|
+
message: `> Installing, building, and linting ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`,
|
|
36
|
+
});
|
|
37
|
+
logger.debug({ message: `packageMap:`, obj: packageMap });
|
|
38
|
+
logger.debug({ message: `filteredPackageNames:`, obj: filteredPackageNames });
|
|
37
39
|
for (const packageName of filteredPackageNames) {
|
|
38
40
|
const localPackage = packageMap[packageName];
|
|
39
41
|
const packageDir = path.dirname(localPackage.filePath);
|
|
40
42
|
|
|
41
43
|
if (!args.noInstall || !args.noInstall.includes(packageName)) {
|
|
42
44
|
await cmd('npm', ['install'], { cwd: packageDir }, { logPrefix: `[${cw.color(packageName)}] ` });
|
|
43
|
-
await PackageUtil.symlinkDependencies(localPackage, packageMap
|
|
44
|
-
logger.info(`Installed ${cw.color(packageName)} (${packageDir})`);
|
|
45
|
+
await PackageUtil.symlinkDependencies(localPackage, packageMap);
|
|
46
|
+
logger.info({ message: `Installed ${cw.color(packageName)} (${packageDir})` });
|
|
45
47
|
}
|
|
46
48
|
|
|
47
49
|
if (!args.noBuild || !args.noBuild.includes(packageName)) {
|
|
48
50
|
await cmd('npm', ['run', 'build'], { cwd: packageDir }, { logPrefix: `[${cw.color(packageName)}] ` });
|
|
49
|
-
logger.info(`Built ${cw.color(packageName)} (${packageDir})`);
|
|
51
|
+
logger.info({ message: `Built ${cw.color(packageName)} (${packageDir})` });
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
if (hasLintConfig(packageMap[packageName]) && (!args.noLint || !args.noLint.includes(packageName))) {
|
|
53
55
|
await cmd('npx', ['prettier', '.', '--write'], { cwd: packageDir }, { logPrefix: `[${cw.color(packageName)}] ` });
|
|
54
56
|
await cmd('npx', ['eslint', '.', '--fix'], { cwd: packageDir }, { logPrefix: `[${cw.color(packageName)}] ` });
|
|
55
|
-
logger.info(`Linted ${cw.color(packageName)} (${packageDir})`);
|
|
57
|
+
logger.info({ message: `Linted ${cw.color(packageName)} (${packageDir})` });
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
60
|
|
|
59
|
-
logger.info(
|
|
60
|
-
`> Installed, built, and linted ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})
|
|
61
|
-
);
|
|
61
|
+
logger.info({
|
|
62
|
+
message: `> Installed, built, and linted ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`,
|
|
63
|
+
});
|
|
62
64
|
}
|
|
63
65
|
|
|
64
66
|
type Args = {
|
package/src/cleanWorkspace.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as path from 'path';
|
|
2
2
|
import { PackageUtil, cmd, WorkspaceMetadata } from '@proteinjs/util-node';
|
|
3
|
-
import { Logger } from '@proteinjs/
|
|
3
|
+
import { Logger } from '@proteinjs/logger';
|
|
4
4
|
|
|
5
5
|
export const cleanWorkspace = async (workspaceMetadata?: WorkspaceMetadata) => {
|
|
6
|
-
const logger = new Logger('workspace:clean');
|
|
6
|
+
const logger = new Logger({ name: 'workspace:clean' });
|
|
7
7
|
const workspacePath = process.cwd();
|
|
8
8
|
const { packageMap, sortedPackageNames } = workspaceMetadata
|
|
9
9
|
? workspaceMetadata
|
|
@@ -13,15 +13,15 @@ export const cleanWorkspace = async (workspaceMetadata?: WorkspaceMetadata) => {
|
|
|
13
13
|
(packageName) => !!packageMap[packageName].packageJson.scripts?.clean && !skippedPackages.includes(packageName)
|
|
14
14
|
);
|
|
15
15
|
|
|
16
|
-
logger.info(
|
|
17
|
-
`> Cleaning ${filteredPackageNames.length} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})
|
|
18
|
-
);
|
|
16
|
+
logger.info({
|
|
17
|
+
message: `> Cleaning ${filteredPackageNames.length} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`,
|
|
18
|
+
});
|
|
19
19
|
for (const packageName of filteredPackageNames) {
|
|
20
20
|
const localPackage = packageMap[packageName];
|
|
21
21
|
const packageDir = path.dirname(localPackage.filePath);
|
|
22
22
|
await cmd('npm', ['run', 'clean'], { cwd: packageDir });
|
|
23
23
|
}
|
|
24
|
-
logger.info(
|
|
25
|
-
`> Finished cleaning ${filteredPackageNames.length} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})
|
|
26
|
-
);
|
|
24
|
+
logger.info({
|
|
25
|
+
message: `> Finished cleaning ${filteredPackageNames.length} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`,
|
|
26
|
+
});
|
|
27
27
|
};
|
package/src/lintWorkspace.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as path from 'path';
|
|
2
2
|
import * as fs from 'fs';
|
|
3
|
-
import { LocalPackage,
|
|
4
|
-
import { Logger } from '@proteinjs/
|
|
3
|
+
import { LocalPackage, LogColorWrapper, PackageUtil, cmd, parseArgsMap } from '@proteinjs/util-node';
|
|
4
|
+
import { Logger } from '@proteinjs/logger';
|
|
5
5
|
import { primaryLogColor, secondaryLogColor } from './logColors';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -13,7 +13,7 @@ import { primaryLogColor, secondaryLogColor } from './logColors';
|
|
|
13
13
|
*/
|
|
14
14
|
export async function lintWorkspace() {
|
|
15
15
|
const cw = new LogColorWrapper();
|
|
16
|
-
const logger = new Logger(cw.color('workspace:', primaryLogColor) + cw.color('lint', secondaryLogColor));
|
|
16
|
+
const logger = new Logger({ name: cw.color('workspace:', primaryLogColor) + cw.color('lint', secondaryLogColor) });
|
|
17
17
|
const args = getArgs();
|
|
18
18
|
const workspacePath = process.cwd();
|
|
19
19
|
const { packageMap, sortedPackageNames } = await PackageUtil.getWorkspaceMetadata(workspacePath);
|
|
@@ -26,23 +26,23 @@ export async function lintWorkspace() {
|
|
|
26
26
|
);
|
|
27
27
|
});
|
|
28
28
|
|
|
29
|
-
logger.info(
|
|
30
|
-
`> Linting ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})
|
|
31
|
-
);
|
|
32
|
-
logger.debug(`packageMap
|
|
33
|
-
logger.debug(`filteredPackageNames
|
|
29
|
+
logger.info({
|
|
30
|
+
message: `> Linting ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`,
|
|
31
|
+
});
|
|
32
|
+
logger.debug({ message: `packageMap:`, obj: packageMap });
|
|
33
|
+
logger.debug({ message: `filteredPackageNames:`, obj: filteredPackageNames });
|
|
34
34
|
for (const packageName of filteredPackageNames) {
|
|
35
35
|
const localPackage = packageMap[packageName];
|
|
36
36
|
const packageDir = path.dirname(localPackage.filePath);
|
|
37
37
|
|
|
38
38
|
await cmd('npx', ['prettier', '.', '--write'], { cwd: packageDir }, { logPrefix: `[${cw.color(packageName)}] ` });
|
|
39
39
|
await cmd('npx', ['eslint', '.', '--fix'], { cwd: packageDir }, { logPrefix: `[${cw.color(packageName)}] ` });
|
|
40
|
-
logger.info(`Linted ${cw.color(packageName)} (${packageDir})`);
|
|
40
|
+
logger.info({ message: `Linted ${cw.color(packageName)} (${packageDir})` });
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
logger.info(
|
|
44
|
-
`> Linted ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})
|
|
45
|
-
);
|
|
43
|
+
logger.info({
|
|
44
|
+
message: `> Linted ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`,
|
|
45
|
+
});
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
type Args = {
|
package/src/symlinkWorkspace.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LogColorWrapper, PackageUtil, parseArgsMap } from '@proteinjs/util-node';
|
|
2
|
-
import { Logger } from '@proteinjs/
|
|
2
|
+
import { Logger } from '@proteinjs/logger';
|
|
3
3
|
import { primaryLogColor, secondaryLogColor } from './logColors';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -13,7 +13,7 @@ import { primaryLogColor, secondaryLogColor } from './logColors';
|
|
|
13
13
|
*/
|
|
14
14
|
export const symlinkWorkspace = async () => {
|
|
15
15
|
const cw = new LogColorWrapper();
|
|
16
|
-
const logger = new Logger(cw.color('workspace:', primaryLogColor) + cw.color('symlink', secondaryLogColor));
|
|
16
|
+
const logger = new Logger({ name: cw.color('workspace:', primaryLogColor) + cw.color('symlink', secondaryLogColor) });
|
|
17
17
|
const args = getArgs();
|
|
18
18
|
const workspacePath = process.cwd();
|
|
19
19
|
const { packageMap, sortedPackageNames } = await PackageUtil.getWorkspaceMetadata(workspacePath);
|
|
@@ -22,20 +22,20 @@ export const symlinkWorkspace = async () => {
|
|
|
22
22
|
(packageName) => !(args.skip && args.skip.includes(packageName)) && !skippedPackages.includes(packageName)
|
|
23
23
|
);
|
|
24
24
|
if (filteredPackageNames.length == 0) {
|
|
25
|
-
logger.info(`> There are no packages to symlink in workspace (${workspacePath})`);
|
|
25
|
+
logger.info({ message: `> There are no packages to symlink in workspace (${workspacePath})` });
|
|
26
26
|
return;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
logger.info(
|
|
30
|
-
`> Symlinking ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})
|
|
31
|
-
);
|
|
29
|
+
logger.info({
|
|
30
|
+
message: `> Symlinking ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`,
|
|
31
|
+
});
|
|
32
32
|
for (const packageName of filteredPackageNames) {
|
|
33
33
|
const localPackage = packageMap[packageName];
|
|
34
|
-
await PackageUtil.symlinkDependencies(localPackage, packageMap
|
|
34
|
+
await PackageUtil.symlinkDependencies(localPackage, packageMap);
|
|
35
35
|
}
|
|
36
|
-
logger.info(
|
|
37
|
-
`> Symlinked ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})
|
|
38
|
-
);
|
|
36
|
+
logger.info({
|
|
37
|
+
message: `> Symlinked ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`,
|
|
38
|
+
});
|
|
39
39
|
};
|
|
40
40
|
|
|
41
41
|
type Args = {
|
package/src/testWorkspace.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as path from 'path';
|
|
2
2
|
import { PackageUtil, cmd, WorkspaceMetadata } from '@proteinjs/util-node';
|
|
3
|
-
import { Logger } from '@proteinjs/
|
|
3
|
+
import { Logger } from '@proteinjs/logger';
|
|
4
4
|
|
|
5
5
|
export const testWorkspace = async (workspaceMetadata?: WorkspaceMetadata) => {
|
|
6
|
-
const logger = new Logger('workspace:test');
|
|
6
|
+
const logger = new Logger({ name: 'workspace:test' });
|
|
7
7
|
const workspacePath = process.cwd();
|
|
8
8
|
const { packageMap, sortedPackageNames } = workspaceMetadata
|
|
9
9
|
? workspaceMetadata
|
|
@@ -13,9 +13,9 @@ export const testWorkspace = async (workspaceMetadata?: WorkspaceMetadata) => {
|
|
|
13
13
|
(packageName) => !!packageMap[packageName].packageJson.scripts?.test && !skippedPackages.includes(packageName)
|
|
14
14
|
);
|
|
15
15
|
|
|
16
|
-
logger.info(
|
|
17
|
-
`> Testing ${filteredPackageNames.length} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})
|
|
18
|
-
);
|
|
16
|
+
logger.info({
|
|
17
|
+
message: `> Testing ${filteredPackageNames.length} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`,
|
|
18
|
+
});
|
|
19
19
|
for (const packageName of filteredPackageNames) {
|
|
20
20
|
const localPackage = packageMap[packageName];
|
|
21
21
|
const packageDir = path.dirname(localPackage.filePath);
|
|
@@ -25,7 +25,7 @@ export const testWorkspace = async (workspaceMetadata?: WorkspaceMetadata) => {
|
|
|
25
25
|
|
|
26
26
|
await cmd('npm', ['run', 'test'], { cwd: packageDir });
|
|
27
27
|
}
|
|
28
|
-
logger.info(
|
|
29
|
-
`> Finished testing ${filteredPackageNames.length} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})
|
|
30
|
-
);
|
|
28
|
+
logger.info({
|
|
29
|
+
message: `> Finished testing ${filteredPackageNames.length} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`,
|
|
30
|
+
});
|
|
31
31
|
};
|
package/src/versionWorkspace.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import * as path from 'path';
|
|
2
2
|
import { exec } from 'child_process';
|
|
3
3
|
import { LocalPackage, LocalPackageMap, PackageUtil, cmd, Fs, LogColorWrapper } from '@proteinjs/util-node';
|
|
4
|
-
import { Logger } from '@proteinjs/
|
|
4
|
+
import { Logger } from '@proteinjs/logger';
|
|
5
5
|
import semver from 'semver';
|
|
6
6
|
import { Commit } from './Github';
|
|
7
7
|
import { primaryLogColor, secondaryLogColor } from './logColors';
|
|
8
8
|
import { hasLintConfig } from './lintWorkspace';
|
|
9
9
|
|
|
10
10
|
const cw = new LogColorWrapper();
|
|
11
|
-
const logger = new Logger(cw.color('workspace:', primaryLogColor) + cw.color('version', secondaryLogColor));
|
|
11
|
+
const logger = new Logger({ name: cw.color('workspace:', primaryLogColor) + cw.color('version', secondaryLogColor) });
|
|
12
12
|
const fixedVersionWorkspacesToVersion: { [workspacePath: string]: boolean } = {};
|
|
13
13
|
|
|
14
14
|
export async function versionWorkspace() {
|
|
@@ -29,7 +29,7 @@ export async function versionWorkspace() {
|
|
|
29
29
|
);
|
|
30
30
|
});
|
|
31
31
|
|
|
32
|
-
logger.info(`> Versioning workspace (${workspacePath})`);
|
|
32
|
+
logger.info({ message: `> Versioning workspace (${workspacePath})` });
|
|
33
33
|
for (const packageName of filteredPackageNames) {
|
|
34
34
|
const localPackage = packageMap[packageName];
|
|
35
35
|
const skipBumpingPackageVersion = isInFixedVersionWorkspace(localPackage);
|
|
@@ -46,7 +46,9 @@ export async function versionWorkspace() {
|
|
|
46
46
|
await buildAndTest(localPackage);
|
|
47
47
|
if (isInFixedVersionWorkspace(localPackage) && localPackage.workspace) {
|
|
48
48
|
fixedVersionWorkspacesToVersion[localPackage.workspace.path] = true;
|
|
49
|
-
logger.info(
|
|
49
|
+
logger.info({
|
|
50
|
+
message: `(${cw.color(packageName)}) skipping version push for package in a fixed-version workspace`,
|
|
51
|
+
});
|
|
50
52
|
continue;
|
|
51
53
|
}
|
|
52
54
|
|
|
@@ -66,7 +68,7 @@ export async function versionWorkspace() {
|
|
|
66
68
|
);
|
|
67
69
|
await pushMetarepos(workspacePath);
|
|
68
70
|
await symlinkWorkspace(workspacePath, filteredPackageNames, packageMap);
|
|
69
|
-
logger.info(`> Finished versioning workspace (${workspacePath})`);
|
|
71
|
+
logger.info({ message: `> Finished versioning workspace (${workspacePath})` });
|
|
70
72
|
}
|
|
71
73
|
|
|
72
74
|
function isInFixedVersionWorkspace(localPackage: LocalPackage) {
|
|
@@ -88,13 +90,13 @@ async function pullWorkspace(workspacePath: string) {
|
|
|
88
90
|
);
|
|
89
91
|
});
|
|
90
92
|
|
|
91
|
-
logger.info(`> Pulling workspace (${workspacePath})`);
|
|
93
|
+
logger.info({ message: `> Pulling workspace (${workspacePath})` });
|
|
92
94
|
for (const packageName of filteredPackageNames) {
|
|
93
95
|
const localPackage = packageMap[packageName];
|
|
94
96
|
await pull(localPackage);
|
|
95
97
|
}
|
|
96
98
|
|
|
97
|
-
logger.info(`> Finished pulling workspace (${workspacePath})`);
|
|
99
|
+
logger.info({ message: `> Finished pulling workspace (${workspacePath})` });
|
|
98
100
|
}
|
|
99
101
|
|
|
100
102
|
async function bumpDependencies(
|
|
@@ -139,14 +141,14 @@ async function bumpDependencies(
|
|
|
139
141
|
if (!skipBumpingPackageVersion) {
|
|
140
142
|
const currentVersion = localPackage.packageJson.version;
|
|
141
143
|
localPackage.packageJson.version = semver.inc(currentVersion, 'patch');
|
|
142
|
-
logger.info(
|
|
143
|
-
`(${cw.color(localPackage.name)}) bumping version from ${currentVersion} -> ${localPackage.packageJson.version}
|
|
144
|
-
);
|
|
144
|
+
logger.info({
|
|
145
|
+
message: `(${cw.color(localPackage.name)}) bumping version from ${currentVersion} -> ${localPackage.packageJson.version}`,
|
|
146
|
+
});
|
|
145
147
|
}
|
|
146
148
|
await Fs.writeFiles([{ path: localPackage.filePath, content: JSON.stringify(localPackage.packageJson, null, 2) }]);
|
|
147
149
|
if (hasLintConfig(localPackage)) {
|
|
148
150
|
const packageDir = path.dirname(localPackage.filePath);
|
|
149
|
-
logger.info(`Linting ${cw.color(localPackage.name)} (${packageDir})`);
|
|
151
|
+
logger.info({ message: `Linting ${cw.color(localPackage.name)} (${packageDir})` });
|
|
150
152
|
await cmd(
|
|
151
153
|
'npx',
|
|
152
154
|
['prettier', localPackage.filePath, '--write'],
|
|
@@ -208,9 +210,9 @@ function setDependencyVersion(
|
|
|
208
210
|
const currentRawVersion = currentVersion.prefix
|
|
209
211
|
? currentVersion.prefix + currentVersion.version
|
|
210
212
|
: currentVersion.version;
|
|
211
|
-
logger.info(
|
|
212
|
-
`(${cw.color(localPackage.name)}) updating dependency version of ${cw.color(dependencyPackageName)} (${currentRawVersion} -> ${newRawVersion})
|
|
213
|
-
);
|
|
213
|
+
logger.info({
|
|
214
|
+
message: `(${cw.color(localPackage.name)}) updating dependency version of ${cw.color(dependencyPackageName)} (${currentRawVersion} -> ${newRawVersion})`,
|
|
215
|
+
});
|
|
214
216
|
}
|
|
215
217
|
|
|
216
218
|
async function syncFixedVersionWorkspaces(
|
|
@@ -223,7 +225,7 @@ async function syncFixedVersionWorkspaces(
|
|
|
223
225
|
return;
|
|
224
226
|
}
|
|
225
227
|
|
|
226
|
-
logger.info(`> Syncing fixed-version workspaces`);
|
|
228
|
+
logger.info({ message: `> Syncing fixed-version workspaces` });
|
|
227
229
|
for (const workspacePath of fixedVersionWorkspacePaths) {
|
|
228
230
|
const workspacePackages = workspaceToPackageMap[workspacePath]
|
|
229
231
|
.filter((packageName) => packageName != 'typescript-parser')
|
|
@@ -245,7 +247,7 @@ async function syncFixedVersionWorkspaces(
|
|
|
245
247
|
await pushAndTagFixedVersionRepo(workspacePath, syncedVersion, skipTagging, skipCi);
|
|
246
248
|
}
|
|
247
249
|
|
|
248
|
-
logger.info(`> Synced fixed-version workspaces`);
|
|
250
|
+
logger.info({ message: `> Synced fixed-version workspaces` });
|
|
249
251
|
}
|
|
250
252
|
|
|
251
253
|
async function syncFixedVersions(workspacePath: string, localPackages: LocalPackage[]): Promise<string | false> {
|
|
@@ -267,13 +269,13 @@ async function syncFixedVersions(workspacePath: string, localPackages: LocalPack
|
|
|
267
269
|
}
|
|
268
270
|
|
|
269
271
|
localPackage.packageJson.version = highestVersion;
|
|
270
|
-
logger.info(
|
|
271
|
-
`(${cw.color(localPackage.name)}) bumping version from ${currentVersion} -> ${localPackage.packageJson.version}
|
|
272
|
-
);
|
|
272
|
+
logger.info({
|
|
273
|
+
message: `(${cw.color(localPackage.name)}) bumping version from ${currentVersion} -> ${localPackage.packageJson.version}`,
|
|
274
|
+
});
|
|
273
275
|
await Fs.writeFiles([{ path: localPackage.filePath, content: JSON.stringify(localPackage.packageJson, null, 2) }]);
|
|
274
276
|
if (hasLintConfig(localPackage)) {
|
|
275
277
|
const packageDir = path.dirname(localPackage.filePath);
|
|
276
|
-
logger.info(`Linting ${cw.color(localPackage.name)} (${packageDir})`);
|
|
278
|
+
logger.info({ message: `Linting ${cw.color(localPackage.name)} (${packageDir})` });
|
|
277
279
|
await cmd(
|
|
278
280
|
'npx',
|
|
279
281
|
['prettier', localPackage.filePath, '--write'],
|
|
@@ -301,32 +303,36 @@ async function syncFixedVersions(workspacePath: string, localPackages: LocalPack
|
|
|
301
303
|
|
|
302
304
|
async function buildAndTest(localPackage: LocalPackage) {
|
|
303
305
|
const packageDir = path.dirname(localPackage.filePath);
|
|
304
|
-
logger.info(`(${cw.color(localPackage.name)}) cleaning package`);
|
|
306
|
+
logger.info({ message: `(${cw.color(localPackage.name)}) cleaning package` });
|
|
305
307
|
await cmd('npm', ['run', 'clean'], { cwd: packageDir }, { logPrefix: `[${cw.color(localPackage.name)}] ` });
|
|
306
|
-
logger.info(`(${cw.color(localPackage.name)}) cleaned package`);
|
|
307
|
-
logger.info(`(${cw.color(localPackage.name)}) installing latest dependency versions`);
|
|
308
|
+
logger.info({ message: `(${cw.color(localPackage.name)}) cleaned package` });
|
|
309
|
+
logger.info({ message: `(${cw.color(localPackage.name)}) installing latest dependency versions` });
|
|
308
310
|
await cmd('npm', ['install'], { cwd: packageDir }, { logPrefix: `[${cw.color(localPackage.name)}] ` });
|
|
309
|
-
logger.info(`(${cw.color(localPackage.name)}) installed latest dependency versions`);
|
|
310
|
-
logger.info(`(${cw.color(localPackage.name)}) building version ${localPackage.packageJson.version}`);
|
|
311
|
+
logger.info({ message: `(${cw.color(localPackage.name)}) installed latest dependency versions` });
|
|
312
|
+
logger.info({ message: `(${cw.color(localPackage.name)}) building version ${localPackage.packageJson.version}` });
|
|
311
313
|
await cmd('npm', ['run', 'build'], { cwd: packageDir }, { logPrefix: `[${cw.color(localPackage.name)}] ` });
|
|
312
|
-
logger.info(
|
|
314
|
+
logger.info({
|
|
315
|
+
message: `(${cw.color(localPackage.name)}) built version ${localPackage.packageJson.version} (${packageDir})`,
|
|
316
|
+
});
|
|
313
317
|
if (localPackage.packageJson.scripts?.test) {
|
|
314
|
-
logger.info(`(${cw.color(localPackage.name)}) testing version ${localPackage.packageJson.version}`);
|
|
318
|
+
logger.info({ message: `(${cw.color(localPackage.name)}) testing version ${localPackage.packageJson.version}` });
|
|
315
319
|
await cmd('npm', ['run', 'test'], { cwd: packageDir }, { logPrefix: `[${cw.color(localPackage.name)}] ` });
|
|
316
|
-
logger.info(`(${cw.color(localPackage.name)}) tested version ${localPackage.packageJson.version}`);
|
|
320
|
+
logger.info({ message: `(${cw.color(localPackage.name)}) tested version ${localPackage.packageJson.version}` });
|
|
317
321
|
}
|
|
318
322
|
}
|
|
319
323
|
|
|
320
324
|
async function pull(localPackage: LocalPackage) {
|
|
321
325
|
const packageDir = path.dirname(localPackage.filePath);
|
|
322
|
-
logger.info(`(${cw.color(localPackage.name)}) pulling latest changes`);
|
|
326
|
+
logger.info({ message: `(${cw.color(localPackage.name)}) pulling latest changes` });
|
|
323
327
|
await cmd('git', ['pull'], { cwd: packageDir }, { logPrefix: `[${cw.color(localPackage.name)}] ` });
|
|
324
|
-
logger.info(`(${cw.color(localPackage.name)}) pulled latest changes`);
|
|
328
|
+
logger.info({ message: `(${cw.color(localPackage.name)}) pulled latest changes` });
|
|
325
329
|
}
|
|
326
330
|
|
|
327
331
|
async function pushAndTag(localPackage: LocalPackage): Promise<Commit> {
|
|
328
332
|
const packageDir = path.dirname(localPackage.filePath);
|
|
329
|
-
logger.info(
|
|
333
|
+
logger.info({
|
|
334
|
+
message: `(${cw.color(localPackage.name)}) pushing latest version (${localPackage.packageJson.version})`,
|
|
335
|
+
});
|
|
330
336
|
await cmd('git', ['add', '.'], { cwd: packageDir }, { logPrefix: `[${cw.color(localPackage.name)}] ` });
|
|
331
337
|
await cmd(
|
|
332
338
|
'git',
|
|
@@ -335,12 +341,14 @@ async function pushAndTag(localPackage: LocalPackage): Promise<Commit> {
|
|
|
335
341
|
{ logPrefix: `[${cw.color(localPackage.name)}] ` }
|
|
336
342
|
);
|
|
337
343
|
await cmd('git', ['push'], { cwd: packageDir }, { logPrefix: `[${cw.color(localPackage.name)}] ` });
|
|
338
|
-
logger.info(
|
|
344
|
+
logger.info({
|
|
345
|
+
message: `(${cw.color(localPackage.name)}) pushed latest version (${localPackage.packageJson.version})`,
|
|
346
|
+
});
|
|
339
347
|
const latestCommitSha = await getLatestCommitSha(packageDir);
|
|
340
348
|
const repoInfo = await getRepoInfo(packageDir);
|
|
341
349
|
const commit = { sha: latestCommitSha, ...repoInfo };
|
|
342
350
|
const tagName = `${localPackage.name}@${localPackage.packageJson.version}`;
|
|
343
|
-
logger.info(`(${cw.color(localPackage.name)}) pushing tag (${tagName})`);
|
|
351
|
+
logger.info({ message: `(${cw.color(localPackage.name)}) pushing tag (${tagName})` });
|
|
344
352
|
await cmd(
|
|
345
353
|
'git',
|
|
346
354
|
['tag', '-a', tagName, '-m', `Release ${tagName}`],
|
|
@@ -353,7 +361,7 @@ async function pushAndTag(localPackage: LocalPackage): Promise<Commit> {
|
|
|
353
361
|
{ cwd: packageDir },
|
|
354
362
|
{ logPrefix: `[${cw.color(localPackage.name)}] ` }
|
|
355
363
|
);
|
|
356
|
-
logger.info(`(${cw.color(localPackage.name)}) pushed tag (${tagName})`);
|
|
364
|
+
logger.info({ message: `(${cw.color(localPackage.name)}) pushed tag (${tagName})` });
|
|
357
365
|
return commit;
|
|
358
366
|
}
|
|
359
367
|
|
|
@@ -365,9 +373,9 @@ async function pushAndTagFixedVersionRepo(
|
|
|
365
373
|
): Promise<Commit> {
|
|
366
374
|
const repoName = path.basename(dir.endsWith(path.sep) ? dir.slice(0, -1) : dir);
|
|
367
375
|
if (version) {
|
|
368
|
-
logger.info(`(${cw.color(repoName)}) pushing latest version (${version})`);
|
|
376
|
+
logger.info({ message: `(${cw.color(repoName)}) pushing latest version (${version})` });
|
|
369
377
|
} else {
|
|
370
|
-
logger.info(`(${cw.color(repoName)}) pushing dependency bumps`);
|
|
378
|
+
logger.info({ message: `(${cw.color(repoName)}) pushing dependency bumps` });
|
|
371
379
|
}
|
|
372
380
|
await cmd('git', ['add', '.'], { cwd: dir }, { logPrefix: `[${cw.color(repoName)}] ` });
|
|
373
381
|
await cmd(
|
|
@@ -378,16 +386,16 @@ async function pushAndTagFixedVersionRepo(
|
|
|
378
386
|
);
|
|
379
387
|
await cmd('git', ['push'], { cwd: dir }, { logPrefix: `[${cw.color(repoName)}] ` });
|
|
380
388
|
if (version) {
|
|
381
|
-
logger.info(`(${cw.color(repoName)}) pushed latest version (${version})`);
|
|
389
|
+
logger.info({ message: `(${cw.color(repoName)}) pushed latest version (${version})` });
|
|
382
390
|
} else {
|
|
383
|
-
logger.info(`(${cw.color(repoName)}) pushed dependency bumps`);
|
|
391
|
+
logger.info({ message: `(${cw.color(repoName)}) pushed dependency bumps` });
|
|
384
392
|
}
|
|
385
393
|
const latestCommitSha = await getLatestCommitSha(dir);
|
|
386
394
|
const repoInfo = await getRepoInfo(dir);
|
|
387
395
|
const commit = { sha: latestCommitSha, ...repoInfo };
|
|
388
396
|
if (!skipTagging) {
|
|
389
397
|
const tagName = `v${version}`;
|
|
390
|
-
logger.info(`(${cw.color(repoName)}) pushing tag (${tagName})`);
|
|
398
|
+
logger.info({ message: `(${cw.color(repoName)}) pushing tag (${tagName})` });
|
|
391
399
|
await cmd(
|
|
392
400
|
'git',
|
|
393
401
|
['tag', '-a', tagName, '-m', `Release ${tagName}`],
|
|
@@ -395,7 +403,7 @@ async function pushAndTagFixedVersionRepo(
|
|
|
395
403
|
{ logPrefix: `[${cw.color(repoName)}] ` }
|
|
396
404
|
);
|
|
397
405
|
await cmd('git', ['push', 'origin', tagName], { cwd: dir }, { logPrefix: `[${cw.color(repoName)}] ` });
|
|
398
|
-
logger.info(`(${cw.color(repoName)}) pushed tag (${tagName})`);
|
|
406
|
+
logger.info({ message: `(${cw.color(repoName)}) pushed tag (${tagName})` });
|
|
399
407
|
}
|
|
400
408
|
|
|
401
409
|
return commit;
|
|
@@ -412,7 +420,7 @@ async function pushMetarepos(dir: string) {
|
|
|
412
420
|
|
|
413
421
|
async function pushMetarepo(dir: string) {
|
|
414
422
|
const repoName = path.basename(dir.endsWith(path.sep) ? dir.slice(0, -1) : dir);
|
|
415
|
-
logger.info(`(${cw.color(repoName)}) pushing metarepo (${dir})`);
|
|
423
|
+
logger.info({ message: `(${cw.color(repoName)}) pushing metarepo (${dir})` });
|
|
416
424
|
await cmd('git', ['add', '.'], { cwd: dir }, { logPrefix: `[${cw.color(repoName)}] ` });
|
|
417
425
|
await cmd(
|
|
418
426
|
'git',
|
|
@@ -422,17 +430,17 @@ async function pushMetarepo(dir: string) {
|
|
|
422
430
|
);
|
|
423
431
|
await cmd('git', ['pull'], { cwd: dir }, { logPrefix: `[${cw.color(repoName)}] ` });
|
|
424
432
|
await cmd('git', ['push'], { cwd: dir }, { logPrefix: `[${cw.color(repoName)}] ` });
|
|
425
|
-
logger.info(`(${cw.color(repoName)}) pushed metarepo (${dir})`);
|
|
433
|
+
logger.info({ message: `(${cw.color(repoName)}) pushed metarepo (${dir})` });
|
|
426
434
|
}
|
|
427
435
|
|
|
428
436
|
async function symlinkWorkspace(workspacePath: string, packageNames: string[], packageMap: LocalPackageMap) {
|
|
429
|
-
logger.info(`> Symlinking local dependencies in workspace (${workspacePath})`);
|
|
437
|
+
logger.info({ message: `> Symlinking local dependencies in workspace (${workspacePath})` });
|
|
430
438
|
for (const packageName of packageNames) {
|
|
431
439
|
const localPackage = packageMap[packageName];
|
|
432
|
-
await PackageUtil.symlinkDependencies(localPackage, packageMap
|
|
440
|
+
await PackageUtil.symlinkDependencies(localPackage, packageMap);
|
|
433
441
|
}
|
|
434
442
|
|
|
435
|
-
logger.info(`> Symlinked local dependencies in workspace (${workspacePath})`);
|
|
443
|
+
logger.info({ message: `> Symlinked local dependencies in workspace (${workspacePath})` });
|
|
436
444
|
}
|
|
437
445
|
|
|
438
446
|
async function getLatestCommitSha(dir: string): Promise<string> {
|
|
@@ -480,17 +488,19 @@ async function getRepoInfo(dir: string): Promise<RepoInfo> {
|
|
|
480
488
|
|
|
481
489
|
async function publish(localPackage: LocalPackage) {
|
|
482
490
|
if (localPackage.packageJson.private) {
|
|
483
|
-
logger.info(`Preventing publish of private package: ${cw.color(localPackage.name)}`);
|
|
491
|
+
logger.info({ message: `Preventing publish of private package: ${cw.color(localPackage.name)}` });
|
|
484
492
|
return;
|
|
485
493
|
}
|
|
486
494
|
|
|
487
495
|
if (!localPackage.name.startsWith('@proteinjs/')) {
|
|
488
|
-
logger.warn(`Preventing publish of non-proteinjs package: ${cw.color(localPackage.name)}`);
|
|
496
|
+
logger.warn({ message: `Preventing publish of non-proteinjs package: ${cw.color(localPackage.name)}` });
|
|
489
497
|
return;
|
|
490
498
|
}
|
|
491
499
|
|
|
492
500
|
const packageDir = path.dirname(localPackage.filePath);
|
|
493
|
-
logger.info(
|
|
501
|
+
logger.info({
|
|
502
|
+
message: `(${cw.color(localPackage.name)}) publishing latest version (${localPackage.packageJson.version})`,
|
|
503
|
+
});
|
|
494
504
|
await cmd(
|
|
495
505
|
'npm',
|
|
496
506
|
['set', `//registry.npmjs.org/:_authToken=${getNpmToken()}`],
|
|
@@ -503,7 +513,9 @@ async function publish(localPackage: LocalPackage) {
|
|
|
503
513
|
{ cwd: packageDir },
|
|
504
514
|
{ logPrefix: `[${cw.color(localPackage.name)}] ` }
|
|
505
515
|
);
|
|
506
|
-
logger.info(
|
|
516
|
+
logger.info({
|
|
517
|
+
message: `(${cw.color(localPackage.name)}) published latest version (${localPackage.packageJson.version})`,
|
|
518
|
+
});
|
|
507
519
|
}
|
|
508
520
|
|
|
509
521
|
function getNpmToken() {
|
package/src/watchWorkspace.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as path from 'path';
|
|
2
2
|
import { PackageUtil, WorkspaceMetadata, cmd, LogColorWrapper } from '@proteinjs/util-node';
|
|
3
|
-
import { Logger } from '@proteinjs/
|
|
3
|
+
import { Logger } from '@proteinjs/logger';
|
|
4
4
|
import { primaryLogColor, secondaryLogColor } from './logColors';
|
|
5
5
|
|
|
6
6
|
export const watchWorkspace = async (workspaceMetadata?: WorkspaceMetadata) => {
|
|
7
7
|
const cw = new LogColorWrapper();
|
|
8
|
-
const logger = new Logger(cw.color('workspace:', primaryLogColor) + cw.color('watch', secondaryLogColor));
|
|
8
|
+
const logger = new Logger({ name: cw.color('workspace:', primaryLogColor) + cw.color('watch', secondaryLogColor) });
|
|
9
9
|
const workspacePath = process.cwd();
|
|
10
10
|
const { packageMap, sortedPackageNames } = workspaceMetadata
|
|
11
11
|
? workspaceMetadata
|
|
@@ -15,9 +15,9 @@ export const watchWorkspace = async (workspaceMetadata?: WorkspaceMetadata) => {
|
|
|
15
15
|
(packageName) => !!packageMap[packageName].packageJson.scripts?.watch && !skippedPackages.includes(packageName)
|
|
16
16
|
);
|
|
17
17
|
|
|
18
|
-
logger.info(
|
|
19
|
-
`> Watching ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})
|
|
20
|
-
);
|
|
18
|
+
logger.info({
|
|
19
|
+
message: `> Watching ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`,
|
|
20
|
+
});
|
|
21
21
|
const loggingStartDelay = 0;
|
|
22
22
|
for (const packageName of filteredPackageNames) {
|
|
23
23
|
const localPackage = packageMap[packageName];
|