@build-script/package-tools 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/lib/command-file-map.generated.d.ts +2 -1
  2. package/lib/command-file-map.generated.d.ts.map +1 -1
  3. package/lib/command-file-map.generated.js +2 -1
  4. package/lib/command-file-map.generated.js.map +1 -1
  5. package/lib/commands/detect-package-change.d.ts.map +1 -1
  6. package/lib/commands/detect-package-change.js +3 -1
  7. package/lib/commands/detect-package-change.js.map +1 -1
  8. package/lib/commands/monorepo-bump-version.d.ts.map +1 -1
  9. package/lib/commands/monorepo-bump-version.js +13 -23
  10. package/lib/commands/monorepo-bump-version.js.map +1 -1
  11. package/lib/commands/monorepo-cnpm-sync.d.ts.map +1 -1
  12. package/lib/commands/monorepo-cnpm-sync.js +12 -2
  13. package/lib/commands/monorepo-cnpm-sync.js.map +1 -1
  14. package/lib/commands/monorepo-invalid.d.ts.map +1 -1
  15. package/lib/commands/monorepo-invalid.js +4 -2
  16. package/lib/commands/monorepo-invalid.js.map +1 -1
  17. package/lib/commands/monorepo-link-binaries.d.ts +22 -0
  18. package/lib/commands/monorepo-link-binaries.d.ts.map +1 -0
  19. package/lib/commands/monorepo-link-binaries.js +146 -0
  20. package/lib/commands/monorepo-link-binaries.js.map +1 -0
  21. package/lib/commands/monorepo-publish.d.ts.map +1 -1
  22. package/lib/commands/monorepo-publish.js +37 -40
  23. package/lib/commands/monorepo-publish.js.map +1 -1
  24. package/lib/commands/monorepo-tsconfig.d.ts.map +1 -1
  25. package/lib/commands/monorepo-tsconfig.js.map +1 -1
  26. package/lib/commands/monorepo-upgrade.d.ts.map +1 -1
  27. package/lib/commands/monorepo-upgrade.js +4 -2
  28. package/lib/commands/monorepo-upgrade.js.map +1 -1
  29. package/lib/commands/run-if-version-mismatch.d.ts.map +1 -1
  30. package/lib/commands/run-if-version-mismatch.js +6 -4
  31. package/lib/commands/run-if-version-mismatch.js.map +1 -1
  32. package/lib/commands/test.d.ts.map +1 -1
  33. package/lib/commands/test.js +3 -1
  34. package/lib/commands/test.js.map +1 -1
  35. package/lib/common/cache/native.npm.js +2 -2
  36. package/lib/common/cache/native.npm.js.map +1 -1
  37. package/lib/common/functions/cli.d.ts +3 -0
  38. package/lib/common/functions/cli.d.ts.map +1 -1
  39. package/lib/common/functions/cli.js.map +1 -1
  40. package/lib/common/git/git.d.ts.map +1 -1
  41. package/lib/common/git/git.js +3 -3
  42. package/lib/common/git/git.js.map +1 -1
  43. package/lib/common/package-manager/driver.abstract.d.ts +3 -3
  44. package/lib/common/package-manager/driver.abstract.d.ts.map +1 -1
  45. package/lib/common/package-manager/driver.abstract.js +3 -5
  46. package/lib/common/package-manager/driver.abstract.js.map +1 -1
  47. package/lib/common/package-manager/driver.pnpm.d.ts.map +1 -1
  48. package/lib/common/package-manager/driver.pnpm.js +19 -7
  49. package/lib/common/package-manager/driver.pnpm.js.map +1 -1
  50. package/lib/common/package-manager/functions.d.ts.map +1 -1
  51. package/lib/common/package-manager/functions.js.map +1 -1
  52. package/lib/common/package-manager/package-manager.d.ts +2 -2
  53. package/lib/common/package-manager/package-manager.d.ts.map +1 -1
  54. package/lib/common/package-manager/package-manager.js +0 -3
  55. package/lib/common/package-manager/package-manager.js.map +1 -1
  56. package/lib/common/package-manager/proxy.js +1 -1
  57. package/lib/common/package-manager/proxy.js.map +1 -1
  58. package/lib/common/shared-jobs/clear-cache.d.ts +3 -0
  59. package/lib/common/shared-jobs/clear-cache.d.ts.map +1 -0
  60. package/lib/common/shared-jobs/clear-cache.js +14 -0
  61. package/lib/common/shared-jobs/clear-cache.js.map +1 -0
  62. package/lib/common/shared-jobs/cnpm-sync.d.ts +0 -2
  63. package/lib/common/shared-jobs/cnpm-sync.d.ts.map +1 -1
  64. package/lib/common/shared-jobs/cnpm-sync.js +1 -22
  65. package/lib/common/shared-jobs/cnpm-sync.js.map +1 -1
  66. package/lib/common/taball/decompress.d.ts.map +1 -1
  67. package/lib/common/taball/decompress.js +8 -2
  68. package/lib/common/taball/decompress.js.map +1 -1
  69. package/lib/common/taball/file-download.js +1 -6
  70. package/lib/common/taball/file-download.js.map +1 -1
  71. package/lib/common/temp-work-folder.d.ts +2 -2
  72. package/lib/common/temp-work-folder.d.ts.map +1 -1
  73. package/lib/common/temp-work-folder.js.map +1 -1
  74. package/lib/common/version.generated.d.ts +2 -2
  75. package/lib/common/version.generated.js +2 -2
  76. package/lib/main.js +2 -2
  77. package/lib/main.js.map +1 -1
  78. package/lib/tsconfig.tsbuildinfo +1 -1
  79. package/package.json +13 -13
  80. package/src/command-file-map.generated.ts +2 -1
  81. package/src/command-file-map.generator.ts +2 -2
  82. package/src/commands/detect-package-change.ts +3 -1
  83. package/src/commands/monorepo-bump-version.ts +17 -28
  84. package/src/commands/monorepo-cnpm-sync.ts +14 -2
  85. package/src/commands/monorepo-invalid.ts +4 -2
  86. package/src/commands/monorepo-link-binaries.ts +168 -0
  87. package/src/commands/monorepo-publish.ts +45 -54
  88. package/src/commands/monorepo-tsconfig.ts +1 -2
  89. package/src/commands/monorepo-upgrade.ts +4 -3
  90. package/src/commands/run-if-version-mismatch.ts +7 -7
  91. package/src/commands/test.ts +3 -1
  92. package/src/common/cache/native.npm.ts +2 -2
  93. package/src/common/functions/cli.ts +3 -0
  94. package/src/common/git/git.ts +4 -9
  95. package/src/common/package-manager/driver.abstract.ts +5 -8
  96. package/src/common/package-manager/driver.pnpm.ts +21 -7
  97. package/src/common/package-manager/functions.ts +2 -12
  98. package/src/common/package-manager/package-manager.ts +3 -13
  99. package/src/common/package-manager/proxy.ts +1 -1
  100. package/src/common/shared-jobs/clear-cache.ts +14 -0
  101. package/src/common/shared-jobs/cnpm-sync.ts +1 -25
  102. package/src/common/taball/decompress.ts +8 -2
  103. package/src/common/taball/file-download.ts +3 -14
  104. package/src/common/temp-work-folder.ts +2 -2
  105. package/src/common/version.generated.ts +2 -2
  106. package/src/common/version.generator.ts +1 -1
  107. package/src/main.ts +3 -15
@@ -1,3 +1,4 @@
1
+ import { createWorkspace } from '@build-script/monorepo-lib';
1
2
  import type { IArgsReaderApi } from '@idlebox/args';
2
3
  import { logger } from '@idlebox/logger';
3
4
  import { checkChildProcessResult } from '@idlebox/node';
@@ -29,17 +30,16 @@ export async function main(argv: IArgsReaderApi) {
29
30
 
30
31
  const commands = argv.unused();
31
32
  if (commands.length === 0 || !process.argv.includes('--')) {
32
- logger.error(
33
- '参数中必须包含"--",并且后面跟随要运行的命令。\n 示例: run-if-version-mismatch --quiet -- pnpm publish',
34
- );
33
+ logger.error('参数中必须包含"--",并且后面跟随要运行的命令。\n 示例: run-if-version-mismatch --quiet -- pnpm publish');
35
34
  return 22;
36
35
  }
37
36
  logger.debug('即将运行命令: %s', commands.join(' '));
38
37
 
39
- const packageManager = await createPackageManager(PackageManagerUsageKind.Read);
38
+ const workspace = await createWorkspace();
39
+ const packageManager = await createPackageManager(PackageManagerUsageKind.Read, workspace);
40
40
 
41
- const packagePath = await packageManager.workspace.getNearestPackage(process.cwd());
42
- logger.log('工作目录: %s', packagePath);
41
+ const packageInfo = await workspace.getNearestPackage(process.cwd());
42
+ logger.log('工作目录: %s', packageInfo.name);
43
43
 
44
44
  const packageJson = await packageManager.loadPackageJson();
45
45
  logger.log('包名: %s', packageJson.name);
@@ -62,7 +62,7 @@ export async function main(argv: IArgsReaderApi) {
62
62
 
63
63
  logger.log('本地版本 (%s) !== 远程版本 (%s),开始执行命令!', packageJson.version, rversion);
64
64
  const r = await execa(commands[0], commands.slice(1), {
65
- cwd: packagePath,
65
+ cwd: packageInfo.absolute,
66
66
  stdout: 'inherit',
67
67
  stderr: 'inherit',
68
68
  });
@@ -1,3 +1,4 @@
1
+ import { createSimpleProject } from '@build-script/monorepo-lib';
1
2
  import { CommandDefine } from '../common/functions/cli.js';
2
3
  import { PackageManagerUsageKind } from '../common/package-manager/driver.abstract.js';
3
4
  import { createPackageManager } from '../common/package-manager/package-manager.js';
@@ -10,7 +11,8 @@ export class Command extends CommandDefine {
10
11
  }
11
12
 
12
13
  export async function main() {
13
- const pm = await createPackageManager(PackageManagerUsageKind.Read);
14
+ const w = await createSimpleProject();
15
+ const pm = await createPackageManager(PackageManagerUsageKind.Read, w);
14
16
  const cache = await pm.createCacheHandler();
15
17
 
16
18
  const r = await cache.downloadTarball('react-dom', 'latest');
@@ -117,13 +117,13 @@ export async function fetchNpmWithCache(path: string, name: string, registry: st
117
117
 
118
118
  const options: Required<IMyOpts> = Object.assign({}, defOpt, _options);
119
119
 
120
- let try_cnt = 0;
120
+ let _try_cnt = 0;
121
121
  let retry = options.maxRetry;
122
122
  let retry_timeout = 500;
123
123
  let json: IRegistryMetadata | undefined;
124
124
 
125
125
  while (true) {
126
- try_cnt++;
126
+ _try_cnt++;
127
127
  retry--;
128
128
  try {
129
129
  const proxy = getProxyValue(registry);
@@ -15,6 +15,9 @@ function die(msg: string) {
15
15
  export const argv = createArgsReader(process.argv.slice(2));
16
16
 
17
17
  type ArgDefine = {
18
+ /**
19
+ * 为false时在后面加一个 <value>
20
+ */
18
21
  flag: boolean;
19
22
  description: string;
20
23
  };
@@ -61,12 +61,7 @@ export class GitWorkingTree {
61
61
  }
62
62
  const files = lines.slice(titleLine + 1);
63
63
 
64
- logger.debug(
65
- ' 文件更改: %d 个 (%s%s)',
66
- files.length,
67
- files.slice(0, 5).join(', '),
68
- files.length > 5 ? ' ...' : '',
69
- );
64
+ logger.debug(' 文件更改: %d 个 (%s%s)', files.length, files.slice(0, 5).join(', '), files.length > 5 ? ' ...' : '');
70
65
 
71
66
  return files.map((item) => {
72
67
  return item.replace('Would remove ', '');
@@ -88,9 +83,9 @@ export class GitWorkingTree {
88
83
  }
89
84
 
90
85
  if (line.startsWith('+')) {
91
- last_change.new += line.slice(1) + '\n';
86
+ last_change.new += `${line.slice(1)}\n`;
92
87
  } else if (line.startsWith('-')) {
93
- last_change.old += line.slice(1) + '\n';
88
+ last_change.old += `${line.slice(1)}\n`;
94
89
  }
95
90
  }
96
91
  diff += formatChangeSideBySide(last_change.old, last_change.new);
@@ -114,5 +109,5 @@ function formatChangeSideBySide(oldText: string, newText: string): string {
114
109
  const formattedLine = `${oldLine.padEnd(40, ' ')} | ${newLine}`;
115
110
  formattedLines.push(formattedLine);
116
111
  }
117
- return formattedLines.join('\n') + '\n';
112
+ return `${formattedLines.join('\n')}\n`;
118
113
  }
@@ -1,10 +1,10 @@
1
- import type { MonorepoWorkspace } from '@build-script/monorepo-lib';
2
1
  import { ensureLinkTarget } from '@idlebox/ensure-symlink';
3
2
  import { logger } from '@idlebox/logger';
4
3
  import { execLazyError, exists, writeFileIfChange } from '@idlebox/node';
5
4
  import { execa } from 'execa';
6
5
  import { dirname, resolve } from 'node:path';
7
6
  import { split as splitCmd } from 'split-cmd';
7
+ import type { WorkspaceBase } from '@build-script/monorepo-lib';
8
8
  import { NpmCacheHandler } from '../cache/native.npm.js';
9
9
  import { registryInput } from '../functions/cli.js';
10
10
  import { TempWorkingFolder } from '../temp-work-folder.js';
@@ -29,7 +29,7 @@ export abstract class PackageManager {
29
29
 
30
30
  constructor(
31
31
  public readonly usageKind: PackageManagerUsageKind,
32
- public readonly workspace: MonorepoWorkspace,
32
+ public readonly workspace: WorkspaceBase,
33
33
  subdir = process.cwd(),
34
34
  ) {
35
35
  this.configTemp = new TempWorkingFolder(this.workspace, 'package-manager', true);
@@ -48,10 +48,7 @@ export abstract class PackageManager {
48
48
 
49
49
  const pkg = await this.loadPackageJson();
50
50
  if (pkg.publishConfig?.['packCommand']) {
51
- const cmds =
52
- typeof pkg.publishConfig['packCommand'] === 'string'
53
- ? splitCmd(pkg.publishConfig['packCommand'])
54
- : pkg.publishConfig['packCommand'];
51
+ const cmds = typeof pkg.publishConfig['packCommand'] === 'string' ? splitCmd(pkg.publishConfig['packCommand']) : pkg.publishConfig['packCommand'];
55
52
 
56
53
  if (!Array.isArray(cmds)) {
57
54
  logger.fatal`publishConfig.packCommand必须是字符串或字符串数组, 但实际是: ${typeof pkg.publishConfig['packCommand']}`;
@@ -119,10 +116,10 @@ export abstract class PackageManager {
119
116
  logger.debug(`上传压缩包: ${pack}`);
120
117
  try {
121
118
  const r = await this._uploadTarball(pack, cwd);
122
- logger.debug(' 发布成功: %s @ %s [%s]', r.name, r.version, r.published);
119
+ logger.debug` 发布成功: ${r.name} @ ${r.version} [${r.published}]`;
123
120
  return r;
124
121
  } catch (e: any) {
125
- logger.error` tarball发布失败! ${e}`;
122
+ logger.debug` tarball发布失败`;
126
123
  throw e;
127
124
  }
128
125
  }
@@ -1,5 +1,4 @@
1
- import { prettyPrintError } from '@idlebox/common';
2
- import { logger } from '@idlebox/logger';
1
+ import { CSI, logger } from '@idlebox/logger';
3
2
  import { execLazyError, exists } from '@idlebox/node';
4
3
  import { resolve } from 'node:path';
5
4
  import { isVerbose } from '../functions/cli.js';
@@ -33,7 +32,7 @@ class RegistryError extends Error {
33
32
  super(error.summary || 'no error summary');
34
33
 
35
34
  if (this.error.detail) {
36
- this.stack = this.error.detail;
35
+ this.stack = this.error.detail.trimEnd() + '\n' + this.stack;
37
36
  }
38
37
  }
39
38
 
@@ -95,13 +94,28 @@ export class PNPM extends PackageManager {
95
94
  version: dupVer,
96
95
  };
97
96
  }
97
+ } else if (!(e instanceof Error)) {
98
+ throw logger.fatal('pnpm publish failed, unknown error', e);
98
99
  }
99
100
 
100
- logger.warn`publish long<${pack}> error: ${e}`;
101
- console.error(all);
102
- prettyPrintError(`${this.binary} ${cmds.join(' ')}`, e);
101
+ const cmdstr = `command: ${this.binary} ${cmds.join(' ')}`;
103
102
 
104
- throw e;
103
+ logger.warn`publish long<${pack}> failed`;
104
+ logger.warn` - command: long<${cmdstr}>`;
105
+ logger.warn` - wd: long<${cwd}>`;
106
+ console.error(`${CSI}2m${all}${CSI}0m`);
107
+
108
+ // prettyPrintError(`publish package`, {
109
+ // message: `${e.message}\ncommand: ${this.binary} ${cmds.join(' ')}\nworking dir: ${cwd}`,
110
+ // stack: e.stack,
111
+ // });
112
+
113
+ const ee = Object.create(null);
114
+ ee.name = 'NpmError';
115
+ ee.message = `${e.message}\n${cmdstr}\nworking dir: ${cwd}`;
116
+ ee.stack = e.stack?.split('\n').splice(0, 1, e.message).join('\n') ?? `${e.message}\n no stack trace`;
117
+
118
+ throw ee;
105
119
  }
106
120
 
107
121
  return {
@@ -69,13 +69,7 @@ async function resolveNpmVersion([packageName, currentVersion]: [string, string]
69
69
 
70
70
  return [packageName, newVersion, currentVersion];
71
71
  } catch (e: any) {
72
- console.error(
73
- '[npm:resolve][try %s] failed fetch package "%s": [%s] %s',
74
- currentTry,
75
- packageName,
76
- e.code,
77
- e.message
78
- );
72
+ console.error('[npm:resolve][try %s] failed fetch package "%s": [%s] %s', currentTry, packageName, e.code, e.message);
79
73
  lastError = e;
80
74
  if (e.code === 'ECONNRESET') {
81
75
  retryCnt++;
@@ -97,11 +91,7 @@ export async function resolveNpm(versions: Map<string, string>) {
97
91
 
98
92
  const nc = Number.parseInt((await getNpmConfigValue('network-concurrency')) || '4');
99
93
 
100
- for await (const [packName, newVersion, currentVersion] of asyncPool(
101
- nc,
102
- [...versions.entries()],
103
- resolveNpmVersion
104
- )) {
94
+ for await (const [packName, newVersion, currentVersion] of asyncPool(nc, [...versions.entries()], resolveNpmVersion)) {
105
95
  versions.set(packName, newVersion);
106
96
 
107
97
  let updated = '';
@@ -1,4 +1,4 @@
1
- import { createWorkspace, type MonorepoWorkspace } from '@build-script/monorepo-lib';
1
+ import type { WorkspaceBase } from '@build-script/monorepo-lib';
2
2
  import { commandInPath, PathEnvironment } from '@idlebox/node';
3
3
  import type { PackageManager, PackageManagerUsageKind } from './driver.abstract.js';
4
4
  import { NPM } from './driver.npm.js';
@@ -7,21 +7,11 @@ import { reconfigureProxyWithNpmrc } from './proxy.js';
7
7
 
8
8
  export type IPackageManager = PackageManager;
9
9
 
10
- type PackageManagerConstructor = new (
11
- usage: PackageManagerUsageKind,
12
- workspace: MonorepoWorkspace,
13
- subdir?: string,
14
- ) => IPackageManager;
10
+ type PackageManagerConstructor = new (usage: PackageManagerUsageKind, workspace: WorkspaceBase, subdir?: string) => IPackageManager;
15
11
 
16
12
  let pmCls: PackageManagerConstructor | undefined;
17
13
 
18
- export async function createPackageManager(
19
- usage: PackageManagerUsageKind,
20
- workspace?: MonorepoWorkspace,
21
- subdir?: string,
22
- ): Promise<IPackageManager> {
23
- if (!workspace) workspace = await createWorkspace();
24
-
14
+ export async function createPackageManager(usage: PackageManagerUsageKind, workspace: WorkspaceBase, subdir?: string): Promise<IPackageManager> {
25
15
  if (pmCls) {
26
16
  return new pmCls(usage, workspace, subdir);
27
17
  }
@@ -50,7 +50,7 @@ export function getProxyValue(url: string) {
50
50
  logger.verbose(` hit equals`);
51
51
  return '';
52
52
  }
53
- const domainEnding = npPart[0] === '.' ? npPart : '.' + npPart;
53
+ const domainEnding = npPart[0] === '.' ? npPart : `.${npPart}`;
54
54
  if (domain.endsWith(domainEnding)) {
55
55
  logger.verbose(` hit ending: ${domainEnding}`);
56
56
  return '';
@@ -0,0 +1,14 @@
1
+ import { logger } from '@idlebox/logger';
2
+ import type { PackageManager } from '../package-manager/driver.abstract.js';
3
+
4
+ export async function clearNpmMetaCache(pm: PackageManager, names: readonly string[]) {
5
+ logger.debug('刷新npm缓存...');
6
+ try {
7
+ const cache = await pm.createCacheHandler();
8
+ for (const name of names) {
9
+ await cache.deleteMetadata(name);
10
+ }
11
+ } catch (e) {
12
+ logger.warn`failed flush npm cache: ${e}`;
13
+ }
14
+ }
@@ -1,20 +1,7 @@
1
- import type { IPackageInfo } from '@build-script/monorepo-lib';
2
1
  import { logger } from '@idlebox/logger';
3
2
  import { checkChildProcessResult, printLine } from '@idlebox/node';
4
3
  import { execa } from 'execa';
5
4
  import { CSI, isQuiet } from '../functions/cli.js';
6
- import { PackageManagerUsageKind } from '../package-manager/driver.abstract.js';
7
- import { createPackageManager } from '../package-manager/package-manager.js';
8
-
9
- export function cnpmSync(list: ReadonlyArray<IPackageInfo>, collectOutput = isQuiet, dryRun = false) {
10
- const names = list
11
- .filter((e) => {
12
- return !!e.packageJson.name && !e.packageJson.private;
13
- })
14
- .map((e) => e.packageJson.name);
15
-
16
- return cnpmSyncNames(names, collectOutput, dryRun);
17
- }
18
5
 
19
6
  export async function cnpmSyncNames(names: ReadonlyArray<string>, collectOutput = isQuiet, dryRun = false) {
20
7
  console.log(`🔃 cnpm同步${names.length}个包`);
@@ -43,24 +30,13 @@ export async function cnpmSyncNames(names: ReadonlyArray<string>, collectOutput
43
30
  },
44
31
  });
45
32
 
46
- logger.debug('刷新npm缓存...');
47
- try {
48
- const pm = await createPackageManager(PackageManagerUsageKind.Read);
49
- const cache = await pm.createCacheHandler();
50
- for (const name of names) {
51
- await cache.deleteMetadata(name);
52
- }
53
- } catch (e) {
54
- logger.warn`failed flush npm cache: ${e}`;
55
- }
56
-
57
33
  try {
58
34
  checkChildProcessResult(p);
59
35
  if (collectOutput) {
60
36
  process.stderr.write(`${CSI}K`);
61
37
  }
62
38
  console.log(' ✨ cnpm同步请求成功');
63
- } catch (e) {
39
+ } catch (_e) {
64
40
  if (collectOutput) {
65
41
  printLine();
66
42
  logger.error(p.all as any);
@@ -1,6 +1,6 @@
1
1
  import { convertCatchedError } from '@idlebox/common';
2
2
  import { logger } from '@idlebox/logger';
3
- import { unlinkSync } from 'node:fs';
3
+ import { existsSync, unlinkSync } from 'node:fs';
4
4
  import tgz from 'targz';
5
5
 
6
6
  const packageFolder = /^package\//;
@@ -8,6 +8,10 @@ const packageFolder = /^package\//;
8
8
  export async function decompressPack(src: string, dest: string) {
9
9
  logger.debug(`解压文件: ${src}\n\u3000\u3000目录: ${dest}`);
10
10
  await new Promise<void>((resolve, reject) => {
11
+ if (!existsSync(src)) {
12
+ throw new Error(`decompressPack: 源文件不存在: ${src}`);
13
+ }
14
+
11
15
  tgz.decompress(
12
16
  {
13
17
  src,
@@ -29,7 +33,9 @@ export async function decompressPack(src: string, dest: string) {
29
33
  (e) => {
30
34
  if (e) {
31
35
  console.error(convertCatchedError(e).stack);
32
- unlinkSync(src);
36
+ try {
37
+ unlinkSync(src);
38
+ } catch {}
33
39
  reject(e);
34
40
  } else {
35
41
  resolve();
@@ -108,9 +108,7 @@ function send_request(url: string, headers: OutgoingHttpHeaders): Promise<any> {
108
108
  logger.debug(`[http] 请求 ${url}`);
109
109
 
110
110
  const request = get(url, { headers }, (response) => {
111
- logger.debug(
112
- `[http] 响应 ${response.statusCode} [encoding: ${response.headers['content-encoding']}][${response.headers['content-length']} bytes]`,
113
- );
111
+ logger.debug(`[http] 响应 ${response.statusCode} [encoding: ${response.headers['content-encoding']}][${response.headers['content-length']} bytes]`);
114
112
  if (response.statusCode === 200) {
115
113
  const bytes = Number.parseInt(response.headers['content-length'] ?? '--');
116
114
 
@@ -118,9 +116,7 @@ function send_request(url: string, headers: OutgoingHttpHeaders): Promise<any> {
118
116
  let downloaded = 0;
119
117
  response.on('data', (bs) => {
120
118
  downloaded += bs.length;
121
- process.stderr.write(
122
- `\x1B[2mdownload: ${downloaded} of ${bytes} bytes (${Math.round((downloaded / bytes) * 100)}%)\x1B[0m\r`,
123
- );
119
+ process.stderr.write(`\x1B[2mdownload: ${downloaded} of ${bytes} bytes (${Math.round((downloaded / bytes) * 100)}%)\x1B[0m\r`);
124
120
  });
125
121
  response.on('end', () => {
126
122
  process.stderr.write('\x1B[K');
@@ -144,14 +140,7 @@ function send_request(url: string, headers: OutgoingHttpHeaders): Promise<any> {
144
140
  break;
145
141
  }
146
142
  resolve(Object.assign(response, { stream }));
147
- } else if (
148
- (response.statusCode === 302 ||
149
- response.statusCode === 301 ||
150
- response.statusCode === 303 ||
151
- response.statusCode === 307 ||
152
- response.statusCode === 308) &&
153
- response.headers.location
154
- ) {
143
+ } else if ((response.statusCode === 302 || response.statusCode === 301 || response.statusCode === 303 || response.statusCode === 307 || response.statusCode === 308) && response.headers.location) {
155
144
  reject(new RedirectError(url, response.headers.location, response.statusCode));
156
145
  } else {
157
146
  reject(new HttpError(url, response.statusCode as number, response.statusMessage as string));
@@ -1,4 +1,4 @@
1
- import type { MonorepoWorkspace } from '@build-script/monorepo-lib';
1
+ import type { WorkspaceBase } from '@build-script/monorepo-lib';
2
2
  import { registerGlobalLifecycle } from '@idlebox/common';
3
3
  import { writeJsonFile } from '@idlebox/json-edit';
4
4
  import { logger } from '@idlebox/logger';
@@ -15,7 +15,7 @@ export class TempWorkingFolder {
15
15
  private _exists = false;
16
16
 
17
17
  constructor(
18
- private readonly workspace: MonorepoWorkspace,
18
+ private readonly workspace: WorkspaceBase,
19
19
  name: string,
20
20
  __internal_isChild = false,
21
21
  ) {
@@ -7,12 +7,12 @@
7
7
  * GENERATED FILE, DO NOT MODIFY
8
8
  * 这是生成的文件,千万不要修改
9
9
  *
10
- * @build-script/codegen 1.0.4 - The Simple Code Generater
10
+ * @build-script/codegen - The Simple Code Generater
11
11
  * https://github.com/GongT/baobao
12
12
  *
13
13
  ******************************************************************************/
14
14
 
15
- export const self_package_version = "0.0.4";
15
+ export const self_package_version = "0.0.6";
16
16
  export const self_package_name = "@build-script/package-tools";
17
17
  export const self_package_repository = "undefined";
18
18
 
@@ -2,7 +2,7 @@ import type { FileBuilder, IOutputShim } from '@build-script/heft-plugin-base';
2
2
  import * as fs from 'node:fs';
3
3
  import * as path from 'node:path';
4
4
 
5
- export function generate(builder: FileBuilder, logger: IOutputShim) {
5
+ export function generate(_builder: FileBuilder, logger: IOutputShim) {
6
6
  const pkgFile = path.resolve(__dirname, '../../package.json');
7
7
  const pkg = JSON.parse(fs.readFileSync(pkgFile, 'utf-8'));
8
8
 
package/src/main.ts CHANGED
@@ -3,17 +3,7 @@ import { AppExit, prettyPrintError } from '@idlebox/common';
3
3
  import { createRootLogger, EnableLogLevel } from '@idlebox/logger';
4
4
  import { resolve } from 'node:path';
5
5
  import cmdList from './command-file-map.generated.js';
6
- import {
7
- argv,
8
- DieError,
9
- isHelp,
10
- isQuiet,
11
- isVerbose,
12
- pCmd,
13
- pDesc,
14
- printCommonOptions,
15
- type CommandDefine,
16
- } from './common/functions/cli.js';
6
+ import { argv, DieError, isHelp, isQuiet, isVerbose, pCmd, pDesc, printCommonOptions, type CommandDefine } from './common/functions/cli.js';
17
7
  import { registerShutdownHandlers, shutdown } from './common/functions/global-lifecycle.js';
18
8
  import { configureProxyFromEnvironment } from './common/package-manager/proxy.js';
19
9
 
@@ -33,7 +23,7 @@ try {
33
23
  console.error('错误: %s', e.message);
34
24
  shutdown(1);
35
25
  } else {
36
- prettyPrintError('main', e);
26
+ prettyPrintError('package-tools:main', e);
37
27
  shutdown(1);
38
28
  }
39
29
  }
@@ -121,9 +111,7 @@ async function main() {
121
111
  }
122
112
 
123
113
  function printLegend() {
124
- process.stderr.write(
125
- `\x1B[2mUsage:\x1B[0m\n ${usage_prefix} \x1B[38;5;10m<命令>\x1B[0m \x1B[38;5;14m[命令参数]\x1B[0m\n`,
126
- );
114
+ process.stderr.write(`\x1B[2mUsage:\x1B[0m\n ${usage_prefix} \x1B[38;5;10m<命令>\x1B[0m \x1B[38;5;14m[命令参数]\x1B[0m\n`);
127
115
  }
128
116
 
129
117
  function table() {