@neurodevs/meta-node 0.16.0 → 0.16.1

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.
@@ -12,6 +12,7 @@ export default class NpmPropagationCoordinatorTest extends AbstractModuleTest {
12
12
  protected static createsInstance(): Promise<void>;
13
13
  protected static propagatesToCorrectRepoPaths(): Promise<void>;
14
14
  private static run;
15
+ private static generatePackageJson;
15
16
  private static setFakeReadFile;
16
17
  private static setFakeReleasePropagator;
17
18
  private static NpmPropagationCoordinator;
@@ -23,10 +23,14 @@ export default class NpmPropagationCoordinatorTest extends AbstractModuleTest {
23
23
  this.repoPath,
24
24
  ];
25
25
  static pkgJsons = [
26
- { dependencies: { [this.repoPath]: '^1.2.3' } },
27
- { devDependencies: { [this.repoPath]: '^4.5.6' } },
28
- {},
29
- { name: this.scopedName, version: this.packageVersion },
26
+ this.generatePackageJson({
27
+ dependencies: { [this.scopedName]: '^1.2.3' },
28
+ }),
29
+ this.generatePackageJson({
30
+ devDependencies: { [this.scopedName]: '^4.5.6' },
31
+ }),
32
+ this.generatePackageJson(),
33
+ this.generatePackageJson({ version: this.packageVersion }),
30
34
  ];
31
35
  static async beforeEach() {
32
36
  await super.beforeEach();
@@ -48,6 +52,15 @@ export default class NpmPropagationCoordinatorTest extends AbstractModuleTest {
48
52
  static async run() {
49
53
  await this.instance.run();
50
54
  }
55
+ static generatePackageJson(options) {
56
+ return {
57
+ name: this.scopedName,
58
+ version: this.packageVersion,
59
+ dependencies: {},
60
+ devDependencies: {},
61
+ ...options,
62
+ };
63
+ }
51
64
  static setFakeReadFile() {
52
65
  NpmPropagationCoordinator.readFile =
53
66
  fakeReadFile;
@@ -1 +1 @@
1
- {"version":3,"file":"NpmPropagationCoordinator.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/NpmPropagationCoordinator.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NpmPropagationCoordinator.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/NpmPropagationCoordinator.test.ts"],"names":[],"mappings":"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"}
@@ -4,12 +4,15 @@ export default class NpmPropagationCoordinator implements PropagationCoordinator
4
4
  static readFile: typeof readFile;
5
5
  private repoPath;
6
6
  private repoPaths;
7
+ private pkg;
7
8
  private currentRepoPath;
8
9
  private currentPkgJson;
9
10
  protected constructor(repoPath: string, repoPaths: string[]);
10
11
  static Create(repoPath: string, repoPaths: string[]): PropagationCoordinator;
11
12
  run(): Promise<void>;
12
13
  private loadPackageJson;
14
+ private get packageName();
15
+ private get packageVersion();
13
16
  private determineWhereToPropagate;
14
17
  private get isDependency();
15
18
  private get isDevDependency();
@@ -5,6 +5,7 @@ export default class NpmPropagationCoordinator {
5
5
  static readFile = readFile;
6
6
  repoPath;
7
7
  repoPaths;
8
+ pkg;
8
9
  currentRepoPath;
9
10
  currentPkgJson;
10
11
  constructor(repoPath, repoPaths) {
@@ -15,18 +16,24 @@ export default class NpmPropagationCoordinator {
15
16
  return new (this.Class ?? this)(repoPath, repoPaths);
16
17
  }
17
18
  async run() {
18
- const pkg = await this.loadPackageJson();
19
+ await this.loadPackageJson();
19
20
  const repoPaths = await this.determineWhereToPropagate();
20
21
  const propagator = this.NpmReleaseCoordinator({
21
- packageName: pkg.name,
22
- packageVersion: pkg.version,
22
+ packageName: this.packageName,
23
+ packageVersion: this.packageVersion,
23
24
  repoPaths,
24
25
  });
25
26
  await propagator.run();
26
27
  }
27
28
  async loadPackageJson() {
28
29
  const pkgJson = await this.readFile(`${this.repoPath}/package.json`, 'utf-8');
29
- return JSON.parse(pkgJson);
30
+ this.pkg = JSON.parse(pkgJson);
31
+ }
32
+ get packageName() {
33
+ return this.pkg.name;
34
+ }
35
+ get packageVersion() {
36
+ return this.pkg.version;
30
37
  }
31
38
  async determineWhereToPropagate() {
32
39
  const repoPaths = [];
@@ -40,10 +47,10 @@ export default class NpmPropagationCoordinator {
40
47
  return repoPaths;
41
48
  }
42
49
  get isDependency() {
43
- return this.currentPkgJson?.dependencies?.[this.repoPath];
50
+ return this.currentPkgJson.dependencies[this.packageName];
44
51
  }
45
52
  get isDevDependency() {
46
- return this.currentPkgJson?.devDependencies?.[this.repoPath];
53
+ return this.currentPkgJson.devDependencies[this.packageName];
47
54
  }
48
55
  async loadCurrentPkgJson() {
49
56
  const pkgJson = await this.readFile(`${this.currentRepoPath}/package.json`, 'utf-8');
@@ -1 +1 @@
1
- {"version":3,"file":"NpmPropagationCoordinator.js","sourceRoot":"","sources":["../../src/impl/NpmPropagationCoordinator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,OAAO,oBAGN,MAAM,2BAA2B,CAAA;AAElC,MAAM,CAAC,OAAO,OAAO,yBAAyB;IACnC,MAAM,CAAC,KAAK,CAAoC;IAChD,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAEzB,QAAQ,CAAQ;IAChB,SAAS,CAAU;IAEnB,eAAe,CAAS;IACxB,cAAc,CAAc;IAEpC,YAAsB,QAAgB,EAAE,SAAmB;QACvD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC9B,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,QAAgB,EAAE,SAAmB;QACtD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IACxD,CAAC;IAEM,KAAK,CAAC,GAAG;QACZ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;QACxC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAA;QAExD,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC;YAC1C,WAAW,EAAE,GAAG,CAAC,IAAI;YACrB,cAAc,EAAE,GAAG,CAAC,OAAO;YAC3B,SAAS;SACZ,CAAC,CAAA;QAEF,MAAM,UAAU,CAAC,GAAG,EAAE,CAAA;IAC1B,CAAC;IAEO,KAAK,CAAC,eAAe;QACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC/B,GAAG,IAAI,CAAC,QAAQ,eAAe,EAC/B,OAAO,CACV,CAAA;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;IAEO,KAAK,CAAC,yBAAyB;QACnC,MAAM,SAAS,GAAa,EAAE,CAAA;QAE9B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAA;YAC/B,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;YAErD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC5C,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC5B,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,IAAY,YAAY;QACpB,OAAO,IAAI,CAAC,cAAc,EAAE,YAAY,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC7D,CAAC;IAED,IAAY,eAAe;QACvB,OAAO,IAAI,CAAC,cAAc,EAAE,eAAe,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAChE,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC/B,GAAG,IAAI,CAAC,eAAe,eAAe,EACtC,OAAO,CACV,CAAA;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;IAED,IAAY,QAAQ;QAChB,OAAO,yBAAyB,CAAC,QAAQ,CAAA;IAC7C,CAAC;IAEO,qBAAqB,CAAC,OAAiC;QAC3D,OAAO,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC/C,CAAC"}
1
+ {"version":3,"file":"NpmPropagationCoordinator.js","sourceRoot":"","sources":["../../src/impl/NpmPropagationCoordinator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,OAAO,oBAGN,MAAM,2BAA2B,CAAA;AAElC,MAAM,CAAC,OAAO,OAAO,yBAAyB;IACnC,MAAM,CAAC,KAAK,CAAoC;IAChD,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAEzB,QAAQ,CAAQ;IAChB,SAAS,CAAU;IAEnB,GAAG,CAAc;IACjB,eAAe,CAAS;IACxB,cAAc,CAAc;IAEpC,YAAsB,QAAgB,EAAE,SAAmB;QACvD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC9B,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,QAAgB,EAAE,SAAmB;QACtD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IACxD,CAAC;IAEM,KAAK,CAAC,GAAG;QACZ,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;QAE5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAA;QAExD,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC;YAC1C,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS;SACZ,CAAC,CAAA;QAEF,MAAM,UAAU,CAAC,GAAG,EAAE,CAAA;IAC1B,CAAC;IAEO,KAAK,CAAC,eAAe;QACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC/B,GAAG,IAAI,CAAC,QAAQ,eAAe,EAC/B,OAAO,CACV,CAAA;QACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IAED,IAAY,WAAW;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;IACxB,CAAC;IAED,IAAY,cAAc;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;IAC3B,CAAC;IAEO,KAAK,CAAC,yBAAyB;QACnC,MAAM,SAAS,GAAa,EAAE,CAAA;QAE9B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAA;YAC/B,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;YAErD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC5C,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC5B,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,IAAY,YAAY;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAC7D,CAAC;IAED,IAAY,eAAe;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAChE,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC/B,GAAG,IAAI,CAAC,eAAe,eAAe,EACtC,OAAO,CACV,CAAA;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;IAED,IAAY,QAAQ;QAChB,OAAO,yBAAyB,CAAC,QAAQ,CAAA;IAC7C,CAAC;IAEO,qBAAqB,CAAC,OAAiC;QAC3D,OAAO,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC/C,CAAC"}
@@ -35,7 +35,8 @@ export interface ReleasePropagatorOptions {
35
35
  repoPaths: string[];
36
36
  }
37
37
  export interface PackageJson {
38
- version?: string;
39
- dependencies?: Record<string, string>;
40
- devDependencies?: Record<string, string>;
38
+ name: string;
39
+ version: string;
40
+ dependencies: Record<string, string>;
41
+ devDependencies: Record<string, string>;
41
42
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neurodevs/meta-node",
3
- "version": "0.16.0",
3
+ "version": "0.16.1",
4
4
  "description": "Meta-layer utilities for maintaining Node.js package ecosystems.",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -10,7 +10,9 @@ import AbstractModuleTest, { test, assert } from '@neurodevs/node-tdd'
10
10
  import NpmPropagationCoordinator, {
11
11
  PropagationCoordinator,
12
12
  } from '../../impl/NpmPropagationCoordinator.js'
13
- import NpmReleasePropagator from '../../impl/NpmReleasePropagator.js'
13
+ import NpmReleasePropagator, {
14
+ PackageJson,
15
+ } from '../../impl/NpmReleasePropagator.js'
14
16
  import FakeReleasePropagator from '../../testDoubles/ReleasePropagator/FakeReleasePropagator.js'
15
17
 
16
18
  export default class NpmPropagationCoordinatorTest extends AbstractModuleTest {
@@ -30,10 +32,14 @@ export default class NpmPropagationCoordinatorTest extends AbstractModuleTest {
30
32
  ]
31
33
 
32
34
  private static readonly pkgJsons = [
33
- { dependencies: { [this.repoPath]: '^1.2.3' } },
34
- { devDependencies: { [this.repoPath]: '^4.5.6' } },
35
- {},
36
- { name: this.scopedName, version: this.packageVersion },
35
+ this.generatePackageJson({
36
+ dependencies: { [this.scopedName]: '^1.2.3' },
37
+ }),
38
+ this.generatePackageJson({
39
+ devDependencies: { [this.scopedName]: '^4.5.6' },
40
+ }),
41
+ this.generatePackageJson(),
42
+ this.generatePackageJson({ version: this.packageVersion }),
37
43
  ]
38
44
 
39
45
  protected static async beforeEach() {
@@ -69,6 +75,16 @@ export default class NpmPropagationCoordinatorTest extends AbstractModuleTest {
69
75
  await this.instance.run()
70
76
  }
71
77
 
78
+ private static generatePackageJson(options?: Partial<PackageJson>) {
79
+ return {
80
+ name: this.scopedName,
81
+ version: this.packageVersion,
82
+ dependencies: {},
83
+ devDependencies: {},
84
+ ...options,
85
+ }
86
+ }
87
+
72
88
  private static setFakeReadFile() {
73
89
  NpmPropagationCoordinator.readFile =
74
90
  fakeReadFile as unknown as typeof readFile
@@ -12,6 +12,7 @@ export default class NpmPropagationCoordinator implements PropagationCoordinator
12
12
  private repoPath: string
13
13
  private repoPaths: string[]
14
14
 
15
+ private pkg!: PackageJson
15
16
  private currentRepoPath!: string
16
17
  private currentPkgJson!: PackageJson
17
18
 
@@ -25,12 +26,13 @@ export default class NpmPropagationCoordinator implements PropagationCoordinator
25
26
  }
26
27
 
27
28
  public async run() {
28
- const pkg = await this.loadPackageJson()
29
+ await this.loadPackageJson()
30
+
29
31
  const repoPaths = await this.determineWhereToPropagate()
30
32
 
31
33
  const propagator = this.NpmReleaseCoordinator({
32
- packageName: pkg.name,
33
- packageVersion: pkg.version,
34
+ packageName: this.packageName,
35
+ packageVersion: this.packageVersion,
34
36
  repoPaths,
35
37
  })
36
38
 
@@ -42,7 +44,15 @@ export default class NpmPropagationCoordinator implements PropagationCoordinator
42
44
  `${this.repoPath}/package.json`,
43
45
  'utf-8'
44
46
  )
45
- return JSON.parse(pkgJson)
47
+ this.pkg = JSON.parse(pkgJson)
48
+ }
49
+
50
+ private get packageName() {
51
+ return this.pkg.name
52
+ }
53
+
54
+ private get packageVersion() {
55
+ return this.pkg.version
46
56
  }
47
57
 
48
58
  private async determineWhereToPropagate() {
@@ -60,11 +70,11 @@ export default class NpmPropagationCoordinator implements PropagationCoordinator
60
70
  }
61
71
 
62
72
  private get isDependency() {
63
- return this.currentPkgJson?.dependencies?.[this.repoPath]
73
+ return this.currentPkgJson.dependencies[this.packageName]
64
74
  }
65
75
 
66
76
  private get isDevDependency() {
67
- return this.currentPkgJson?.devDependencies?.[this.repoPath]
77
+ return this.currentPkgJson.devDependencies[this.packageName]
68
78
  }
69
79
 
70
80
  private async loadCurrentPkgJson() {
@@ -129,7 +129,8 @@ export interface ReleasePropagatorOptions {
129
129
  }
130
130
 
131
131
  export interface PackageJson {
132
- version?: string
133
- dependencies?: Record<string, string>
134
- devDependencies?: Record<string, string>
132
+ name: string
133
+ version: string
134
+ dependencies: Record<string, string>
135
+ devDependencies: Record<string, string>
135
136
  }