@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.
Files changed (37) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/LICENSE +21 -0
  3. package/dist/src/Github.d.ts.map +1 -1
  4. package/dist/src/Github.js +5 -3
  5. package/dist/src/Github.js.map +1 -1
  6. package/dist/src/buildWorkspace.d.ts.map +1 -1
  7. package/dist/src/buildWorkspace.js +16 -10
  8. package/dist/src/buildWorkspace.js.map +1 -1
  9. package/dist/src/cleanWorkspace.js +8 -4
  10. package/dist/src/cleanWorkspace.js.map +1 -1
  11. package/dist/src/lintWorkspace.d.ts.map +1 -1
  12. package/dist/src/lintWorkspace.js +11 -7
  13. package/dist/src/lintWorkspace.js.map +1 -1
  14. package/dist/src/symlinkWorkspace.js +10 -6
  15. package/dist/src/symlinkWorkspace.js.map +1 -1
  16. package/dist/src/testWorkspace.js +8 -4
  17. package/dist/src/testWorkspace.js.map +1 -1
  18. package/dist/src/versionWorkspace.d.ts.map +1 -1
  19. package/dist/src/versionWorkspace.js +61 -43
  20. package/dist/src/versionWorkspace.js.map +1 -1
  21. package/dist/src/watchWorkspace.js +5 -3
  22. package/dist/src/watchWorkspace.js.map +1 -1
  23. package/dist/src/workspaceCommand.js +9 -5
  24. package/dist/src/workspaceCommand.js.map +1 -1
  25. package/dist/src/workspacePackageCommand.js +9 -7
  26. package/dist/src/workspacePackageCommand.js.map +1 -1
  27. package/package.json +5 -4
  28. package/src/Github.ts +5 -3
  29. package/src/buildWorkspace.ts +16 -14
  30. package/src/cleanWorkspace.ts +8 -8
  31. package/src/lintWorkspace.ts +12 -12
  32. package/src/symlinkWorkspace.ts +10 -10
  33. package/src/testWorkspace.ts +8 -8
  34. package/src/versionWorkspace.ts +61 -49
  35. package/src/watchWorkspace.ts +5 -5
  36. package/src/workspaceCommand.ts +9 -9
  37. 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.8",
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/util": "1.4.0",
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/util';
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(`(${localPackage.name}) ci passed for latest version (${localPackage.packageJson.version})`);
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
 
@@ -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/util';
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(cw.color('workspace:', primaryLogColor) + cw.color('build', secondaryLogColor));
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:\n${JSON.stringify(packageMap, null, 2)}`, true);
36
- logger.debug(`filteredPackageNames:\n${JSON.stringify(filteredPackageNames, null, 2)}`, true);
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, logger);
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 = {
@@ -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/util';
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
  };
@@ -1,7 +1,7 @@
1
1
  import * as path from 'path';
2
2
  import * as fs from 'fs';
3
- import { LocalPackage, LocalPackageMap, LogColorWrapper, PackageUtil, cmd, parseArgsMap } from '@proteinjs/util-node';
4
- import { Logger } from '@proteinjs/util';
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:\n${JSON.stringify(packageMap, null, 2)}`, true);
33
- logger.debug(`filteredPackageNames:\n${JSON.stringify(filteredPackageNames, null, 2)}`, true);
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 = {
@@ -1,5 +1,5 @@
1
1
  import { LogColorWrapper, PackageUtil, parseArgsMap } from '@proteinjs/util-node';
2
- import { Logger } from '@proteinjs/util';
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, logger);
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 = {
@@ -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/util';
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
  };
@@ -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/util';
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(`(${cw.color(packageName)}) skipping version push for package in a fixed-version workspace`);
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(`(${cw.color(localPackage.name)}) built version ${localPackage.packageJson.version} (${packageDir})`);
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(`(${cw.color(localPackage.name)}) pushing latest version (${localPackage.packageJson.version})`);
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(`(${cw.color(localPackage.name)}) pushed latest version (${localPackage.packageJson.version})`);
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, logger);
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(`(${cw.color(localPackage.name)}) publishing latest version (${localPackage.packageJson.version})`);
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(`(${cw.color(localPackage.name)}) published latest version (${localPackage.packageJson.version})`);
516
+ logger.info({
517
+ message: `(${cw.color(localPackage.name)}) published latest version (${localPackage.packageJson.version})`,
518
+ });
507
519
  }
508
520
 
509
521
  function getNpmToken() {
@@ -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/util';
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];