@neurodevs/meta-node 0.18.3 → 0.18.5

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.
@@ -7,6 +7,8 @@ export default class NpmReleasePropagatorTest extends AbstractPackageTest {
7
7
  protected static runInstallsReleaseForEachRepoPath(): Promise<void>;
8
8
  protected static commitsChangesToGit(): Promise<void>;
9
9
  protected static doesNotInstallIfAlreadyUpToDate(): Promise<void>;
10
+ protected static rollsBackInstallIfThereAreTypeErrors(): Promise<void>;
11
+ protected static doesNotCommitIfThereAreTypeErrors(): Promise<void>;
10
12
  protected static doesNotCommitIfPassedOptionalParameter(): Promise<void>;
11
13
  protected static throwsIfRepoDoesNotHavePreviousRelease(): Promise<void>;
12
14
  protected static throwsIfGitHasUncommittedChanges(): Promise<void>;
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { exec as execSync } from 'node:child_process';
8
8
  import { promisify } from 'node:util';
9
- import { callsToExec, fakeExec, fakeReadFile, resetCallsToExec, resetCallsToReadFile, setFakeExecResult, setFakeReadFileResult, } from '@neurodevs/fake-node-core';
9
+ import { callsToExec, fakeExec, fakeReadFile, resetCallsToExec, resetCallsToReadFile, resetExecThrowsFor, setExecThrowsFor, setFakeExecResult, setFakeReadFileResult, } from '@neurodevs/fake-node-core';
10
10
  import { test, assert } from '@neurodevs/node-tdd';
11
11
  import GitAutocommit from '../../impl/GitAutocommit.js';
12
12
  import NpmReleasePropagator from '../../impl/NpmReleasePropagator.js';
@@ -38,7 +38,7 @@ export default class NpmReleasePropagatorTest extends AbstractPackageTest {
38
38
  options: { cwd: this.repoPaths[1] },
39
39
  },
40
40
  ];
41
- assert.isEqualDeep([callsToExec[2], callsToExec[4]], expectedCalls, 'Did not install release in each repo path!');
41
+ assert.isEqualDeep([callsToExec[2], callsToExec[5]], expectedCalls, 'Did not install release in each repo path!');
42
42
  }
43
43
  static async commitsChangesToGit() {
44
44
  await this.run();
@@ -63,6 +63,23 @@ export default class NpmReleasePropagatorTest extends AbstractPackageTest {
63
63
  const execCalls = callsToExec.filter((call) => call.command.includes(`yarn add`));
64
64
  assert.isEqual(execCalls.length, 1, 'Should not have installed update!');
65
65
  }
66
+ static async rollsBackInstallIfThereAreTypeErrors() {
67
+ setExecThrowsFor(`npx tsc --noEmit`);
68
+ try {
69
+ await this.run();
70
+ }
71
+ catch (error) {
72
+ // Expected to throw
73
+ }
74
+ const rollbackCall = callsToExec.find((call) => call.command === 'git reset --hard && git clean -fd' &&
75
+ call.options?.cwd === this.repoPaths[0]);
76
+ assert.isTruthy(rollbackCall, 'Expected rollback command to be called with correct cwd');
77
+ }
78
+ static async doesNotCommitIfThereAreTypeErrors() {
79
+ setExecThrowsFor(`npx tsc --noEmit`);
80
+ await this.run();
81
+ assert.isEqual(FakeAutocommit.callsToConstructor.length, 0, 'Should not have committed changes!');
82
+ }
66
83
  static async doesNotCommitIfPassedOptionalParameter() {
67
84
  const instance = this.NpmReleasePropagator({ shouldGitCommit: false });
68
85
  await instance.run();
@@ -97,6 +114,7 @@ Please commit or stash these changes before running propagation!
97
114
  static setFakeExec() {
98
115
  NpmReleasePropagator.exec = fakeExec;
99
116
  resetCallsToExec();
117
+ resetExecThrowsFor();
100
118
  this.setFakeMetaNodeVersion();
101
119
  }
102
120
  static setFakeReadFile() {
@@ -139,6 +157,12 @@ __decorate([
139
157
  __decorate([
140
158
  test()
141
159
  ], NpmReleasePropagatorTest, "doesNotInstallIfAlreadyUpToDate", null);
160
+ __decorate([
161
+ test()
162
+ ], NpmReleasePropagatorTest, "rollsBackInstallIfThereAreTypeErrors", null);
163
+ __decorate([
164
+ test()
165
+ ], NpmReleasePropagatorTest, "doesNotCommitIfThereAreTypeErrors", null);
142
166
  __decorate([
143
167
  test()
144
168
  ], NpmReleasePropagatorTest, "doesNotCommitIfPassedOptionalParameter", null);
@@ -1 +1 @@
1
- {"version":3,"file":"NpmReleasePropagator.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/NpmReleasePropagator.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NpmReleasePropagator.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/NpmReleasePropagator.test.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,8 @@ export default class NpmReleasePropagator implements ReleasePropagator {
23
23
  private get devDependencyRange();
24
24
  private get isUpToDate();
25
25
  private installReleaseForCurrentRepo;
26
+ private checkForTypeErrors;
27
+ private rollbackInstallation;
26
28
  private gitCommitChanges;
27
29
  private setCurrentMetaNodeVersion;
28
30
  private get exec();
@@ -32,11 +32,17 @@ export default class NpmReleasePropagator {
32
32
  await this.loadCurrentPackageJson();
33
33
  this.throwIfPreviousReleaseNotFound();
34
34
  if (this.isUpToDate) {
35
- console.log(`Already up to date, skipping ${repoPath}...`);
35
+ console.info(`Already up to date, skipping ${repoPath}...`);
36
36
  continue;
37
37
  }
38
- console.log(`Propagating to ${repoPath}...`);
38
+ console.info(`Propagating to ${repoPath}...`);
39
39
  await this.installReleaseForCurrentRepo();
40
+ const hasTypeErrors = await this.checkForTypeErrors();
41
+ if (hasTypeErrors) {
42
+ console.warn(`TypeScript compilation errors detected! Rolling back for ${repoPath}...`);
43
+ await this.rollbackInstallation();
44
+ continue;
45
+ }
40
46
  if (this.shouldGitCommit) {
41
47
  await this.gitCommitChanges();
42
48
  }
@@ -98,6 +104,22 @@ Please commit or stash these changes before running propagation!
98
104
  cwd: this.currentRepoPath,
99
105
  });
100
106
  }
107
+ async checkForTypeErrors() {
108
+ try {
109
+ await this.exec(`npx tsc --noEmit`, {
110
+ cwd: this.currentRepoPath,
111
+ });
112
+ return false;
113
+ }
114
+ catch {
115
+ return true;
116
+ }
117
+ }
118
+ async rollbackInstallation() {
119
+ await this.exec(`git reset --hard && git clean -fd`, {
120
+ cwd: this.currentRepoPath,
121
+ });
122
+ }
101
123
  async gitCommitChanges() {
102
124
  await this.setCurrentMetaNodeVersion();
103
125
  await this.GitAutocommit(`patch: propagate ${this.packageName}@${this.packageVersion} (@neurodevs/meta-node: ${this.metaNodeVersion})`);
@@ -1 +1 @@
1
- {"version":3,"file":"NpmReleasePropagator.js","sourceRoot":"","sources":["../../src/impl/NpmReleasePropagator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NpmReleasePropagator.js","sourceRoot":"","sources":["../../src/impl/NpmReleasePropagator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neurodevs/meta-node",
3
- "version": "0.18.3",
3
+ "version": "0.18.5",
4
4
  "description": "Meta-layer utilities for maintaining Node.js package ecosystems.",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -54,7 +54,7 @@
54
54
  "semver": "^7.7.3"
55
55
  },
56
56
  "devDependencies": {
57
- "@neurodevs/fake-node-core": "^0.7.3",
57
+ "@neurodevs/fake-node-core": "^0.10.0",
58
58
  "@neurodevs/generate-id": "^1.0.9",
59
59
  "@neurodevs/node-tdd": "0.2.3",
60
60
  "@types/fs-extra": "^11.0.4",
@@ -8,6 +8,8 @@ import {
8
8
  fakeReadFile,
9
9
  resetCallsToExec,
10
10
  resetCallsToReadFile,
11
+ resetExecThrowsFor,
12
+ setExecThrowsFor,
11
13
  setFakeExecResult,
12
14
  setFakeReadFileResult,
13
15
  } from '@neurodevs/fake-node-core'
@@ -59,7 +61,7 @@ export default class NpmReleasePropagatorTest extends AbstractPackageTest {
59
61
  ]
60
62
 
61
63
  assert.isEqualDeep(
62
- [callsToExec[2], callsToExec[4]],
64
+ [callsToExec[2], callsToExec[5]],
63
65
  expectedCalls,
64
66
  'Did not install release in each repo path!'
65
67
  )
@@ -107,6 +109,41 @@ export default class NpmReleasePropagatorTest extends AbstractPackageTest {
107
109
  assert.isEqual(execCalls.length, 1, 'Should not have installed update!')
108
110
  }
109
111
 
112
+ @test()
113
+ protected static async rollsBackInstallIfThereAreTypeErrors() {
114
+ setExecThrowsFor(`npx tsc --noEmit`)
115
+
116
+ try {
117
+ await this.run()
118
+ } catch (error) {
119
+ // Expected to throw
120
+ }
121
+
122
+ const rollbackCall = callsToExec.find(
123
+ (call) =>
124
+ call.command === 'git reset --hard && git clean -fd' &&
125
+ call.options?.cwd === this.repoPaths[0]
126
+ )
127
+
128
+ assert.isTruthy(
129
+ rollbackCall,
130
+ 'Expected rollback command to be called with correct cwd'
131
+ )
132
+ }
133
+
134
+ @test()
135
+ protected static async doesNotCommitIfThereAreTypeErrors() {
136
+ setExecThrowsFor(`npx tsc --noEmit`)
137
+
138
+ await this.run()
139
+
140
+ assert.isEqual(
141
+ FakeAutocommit.callsToConstructor.length,
142
+ 0,
143
+ 'Should not have committed changes!'
144
+ )
145
+ }
146
+
110
147
  @test()
111
148
  protected static async doesNotCommitIfPassedOptionalParameter() {
112
149
  const instance = this.NpmReleasePropagator({ shouldGitCommit: false })
@@ -160,6 +197,7 @@ Please commit or stash these changes before running propagation!
160
197
  private static setFakeExec() {
161
198
  NpmReleasePropagator.exec = fakeExec as unknown as typeof exec
162
199
  resetCallsToExec()
200
+ resetExecThrowsFor()
163
201
 
164
202
  this.setFakeMetaNodeVersion()
165
203
  }
@@ -50,13 +50,23 @@ export default class NpmReleasePropagator implements ReleasePropagator {
50
50
  this.throwIfPreviousReleaseNotFound()
51
51
 
52
52
  if (this.isUpToDate) {
53
- console.log(`Already up to date, skipping ${repoPath}...`)
53
+ console.info(`Already up to date, skipping ${repoPath}...`)
54
54
  continue
55
55
  }
56
56
 
57
- console.log(`Propagating to ${repoPath}...`)
57
+ console.info(`Propagating to ${repoPath}...`)
58
58
  await this.installReleaseForCurrentRepo()
59
59
 
60
+ const hasTypeErrors = await this.checkForTypeErrors()
61
+
62
+ if (hasTypeErrors) {
63
+ console.warn(
64
+ `TypeScript compilation errors detected! Rolling back for ${repoPath}...`
65
+ )
66
+ await this.rollbackInstallation()
67
+ continue
68
+ }
69
+
60
70
  if (this.shouldGitCommit) {
61
71
  await this.gitCommitChanges()
62
72
  }
@@ -143,6 +153,23 @@ Please commit or stash these changes before running propagation!
143
153
  )
144
154
  }
145
155
 
156
+ private async checkForTypeErrors() {
157
+ try {
158
+ await this.exec(`npx tsc --noEmit`, {
159
+ cwd: this.currentRepoPath,
160
+ })
161
+ return false
162
+ } catch {
163
+ return true
164
+ }
165
+ }
166
+
167
+ private async rollbackInstallation() {
168
+ await this.exec(`git reset --hard && git clean -fd`, {
169
+ cwd: this.currentRepoPath,
170
+ })
171
+ }
172
+
146
173
  private async gitCommitChanges() {
147
174
  await this.setCurrentMetaNodeVersion()
148
175