Skip to content

Commit 2dd6df5

Browse files
committed
refactor: move package managers into lib/package-managers
Group the package manager dispatcher, the per-manager implementations (npm, yarn, yarn2, pnpm, bun), their shared base class and the installation manager under a single directory, and shorten the implementation class names to match their file names.
1 parent a52b7dd commit 2dd6df5

17 files changed

Lines changed: 127 additions & 127 deletions

lib/bootstrap.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -227,12 +227,12 @@ injector.require(
227227

228228
injector.requireCommand("setup|*", "./commands/setup");
229229

230-
injector.requirePublic("packageManager", "./package-manager");
231-
injector.requirePublic("npm", "./node-package-manager");
232-
injector.requirePublic("yarn", "./yarn-package-manager");
233-
injector.requirePublic("yarn2", "./yarn2-package-manager");
234-
injector.requirePublic("pnpm", "./pnpm-package-manager");
235-
injector.requirePublic("bun", "./bun-package-manager");
230+
injector.requirePublic("packageManager", "./package-managers/index");
231+
injector.requirePublic("npm", "./package-managers/npm");
232+
injector.requirePublic("yarn", "./package-managers/yarn");
233+
injector.requirePublic("yarn2", "./package-managers/yarn2");
234+
injector.requirePublic("pnpm", "./package-managers/pnpm");
235+
injector.requirePublic("bun", "./package-managers/bun");
236236
injector.requireCommand(
237237
"package-manager|*get",
238238
"./commands/package-manager-get",
@@ -244,7 +244,7 @@ injector.requireCommand(
244244

245245
injector.require(
246246
"packageInstallationManager",
247-
"./package-installation-manager",
247+
"./package-managers/package-installation-manager",
248248
);
249249

250250
injector.require("deviceLogProvider", "./common/mobile/device-log-provider");

lib/base-package-manager.ts renamed to lib/package-managers/base-package-manager.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
import { isInteractive } from "./common/helpers";
1+
import { isInteractive } from "../common/helpers";
22
import {
33
INodePackageManager,
44
INodePackageManagerInstallOptions,
55
INpmInstallResultInfo,
66
INpmsResult,
77
INpmPackageNameParts,
8-
} from "./declarations";
8+
} from "../declarations";
99
import {
1010
IDictionary,
1111
IChildProcess,
1212
IFileSystem,
1313
IHostInfo,
14-
} from "./common/declarations";
14+
} from "../common/declarations";
1515

1616
export abstract class BasePackageManager implements INodePackageManager {
1717
public abstract install(
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
import * as path from "path";
22
import { BasePackageManager } from "./base-package-manager";
3-
import { exported, cache } from "./common/decorators";
4-
import { CACACHE_DIRECTORY_NAME } from "./constants";
3+
import { exported, cache } from "../common/decorators";
4+
import { CACACHE_DIRECTORY_NAME } from "../constants";
55
import * as _ from "lodash";
66
import {
77
INodePackageManagerInstallOptions,
88
INpmInstallResultInfo,
99
INpmsResult,
10-
} from "./declarations";
10+
} from "../declarations";
1111
import {
1212
IChildProcess,
1313
IErrors,
1414
IFileSystem,
1515
IHostInfo,
1616
Server,
17-
} from "./common/declarations";
18-
import { injector } from "./common/yok";
17+
} from "../common/declarations";
18+
import { injector } from "../common/yok";
1919

20-
export class BunPackageManager extends BasePackageManager {
20+
export class Bun extends BasePackageManager {
2121
constructor(
2222
$childProcess: IChildProcess,
2323
private $errors: IErrors,
@@ -152,4 +152,4 @@ export class BunPackageManager extends BasePackageManager {
152152
}
153153
}
154154

155-
injector.register("bun", BunPackageManager);
155+
injector.register("bun", Bun);
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { cache, exported, invokeInit } from "./common/decorators";
2-
import { performanceLog } from "./common/decorators";
3-
import { PackageManagers } from "./constants";
1+
import { cache, exported, invokeInit } from "../common/decorators";
2+
import { performanceLog } from "../common/decorators";
3+
import { PackageManagers } from "../constants";
44
import {
55
IPackageManager,
66
INodePackageManager,
@@ -9,14 +9,14 @@ import {
99
INpmInstallResultInfo,
1010
INpmsResult,
1111
INpmPackageNameParts,
12-
} from "./declarations";
12+
} from "../declarations";
1313
import {
1414
IErrors,
1515
IUserSettingsService,
1616
IDictionary,
17-
} from "./common/declarations";
18-
import { injector } from "./common/yok";
19-
import { IProjectConfigService } from "./definitions/project";
17+
} from "../common/declarations";
18+
import { injector } from "../common/yok";
19+
import { IProjectConfigService } from "../definitions/project";
2020
export class PackageManager implements IPackageManager {
2121
private packageManager: INodePackageManager;
2222
private _packageManagerName: string;
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
import { join, relative } from "path";
22
import { BasePackageManager } from "./base-package-manager";
3-
import { exported, cache } from "./common/decorators";
4-
import { CACACHE_DIRECTORY_NAME } from "./constants";
3+
import { exported, cache } from "../common/decorators";
4+
import { CACACHE_DIRECTORY_NAME } from "../constants";
55
import * as _ from "lodash";
66
import {
77
INodePackageManagerInstallOptions,
88
INpmInstallResultInfo,
99
INpmsResult,
10-
} from "./declarations";
10+
} from "../declarations";
1111
import {
1212
IChildProcess,
1313
IErrors,
1414
IFileSystem,
1515
IHostInfo,
1616
Server,
17-
} from "./common/declarations";
18-
import { injector } from "./common/yok";
17+
} from "../common/declarations";
18+
import { injector } from "../common/yok";
1919

20-
export class NodePackageManager extends BasePackageManager {
20+
export class NPM extends BasePackageManager {
2121
constructor(
2222
$childProcess: IChildProcess,
2323
private $errors: IErrors,
@@ -172,4 +172,4 @@ export class NodePackageManager extends BasePackageManager {
172172
}
173173
}
174174

175-
injector.register("npm", NodePackageManager);
175+
injector.register("npm", NPM);

lib/package-installation-manager.ts renamed to lib/package-managers/package-installation-manager.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
import * as path from "path";
2-
import * as constants from "./constants";
2+
import * as constants from "../constants";
33
import {
44
INpmInstallOptions,
55
INpmInstallResultInfo,
66
IPackageInstallationManager,
77
IPackageManager,
88
IStaticConfig,
9-
} from "./declarations";
10-
import { IProjectDataService } from "./definitions/project";
9+
} from "../declarations";
10+
import { IProjectDataService } from "../definitions/project";
1111
import {
1212
IChildProcess,
1313
IDictionary,
1414
IFileSystem,
1515
ISettingsService,
16-
} from "./common/declarations";
17-
import { injector } from "./common/yok";
16+
} from "../common/declarations";
17+
import { injector } from "../common/yok";
1818

1919
import * as semver from "semver";
2020

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
import * as path from "path";
22
import * as _ from "lodash";
33
import { BasePackageManager } from "./base-package-manager";
4-
import { exported } from "./common/decorators";
5-
import { CACACHE_DIRECTORY_NAME } from "./constants";
4+
import { exported } from "../common/decorators";
5+
import { CACACHE_DIRECTORY_NAME } from "../constants";
66
import {
77
INodePackageManagerInstallOptions,
88
INpmInstallResultInfo,
99
INpmsResult,
10-
} from "./declarations";
10+
} from "../declarations";
1111
import {
1212
IChildProcess,
1313
IErrors,
1414
IFileSystem,
1515
IHostInfo,
1616
Server,
1717
IDictionary,
18-
} from "./common/declarations";
19-
import { injector } from "./common/yok";
18+
} from "../common/declarations";
19+
import { injector } from "../common/yok";
2020

21-
export class PnpmPackageManager extends BasePackageManager {
21+
export class PNPM extends BasePackageManager {
2222
constructor(
2323
$childProcess: IChildProcess,
2424
private $errors: IErrors,
@@ -199,4 +199,4 @@ export class PnpmPackageManager extends BasePackageManager {
199199
}
200200
}
201201

202-
injector.register("pnpm", PnpmPackageManager);
202+
injector.register("pnpm", PNPM);
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
import * as path from "path";
22
import * as _ from "lodash";
33
import { BasePackageManager } from "./base-package-manager";
4-
import { exported } from "./common/decorators";
4+
import { exported } from "../common/decorators";
55
import {
66
INodePackageManagerInstallOptions,
77
INpmInstallResultInfo,
88
INpmsResult,
9-
} from "./declarations";
9+
} from "../declarations";
1010
import {
1111
IChildProcess,
1212
IErrors,
1313
IFileSystem,
1414
IHostInfo,
1515
Server,
1616
IDictionary,
17-
} from "./common/declarations";
18-
import { injector } from "./common/yok";
17+
} from "../common/declarations";
18+
import { injector } from "../common/yok";
1919

20-
export class YarnPackageManager extends BasePackageManager {
20+
export class Yarn extends BasePackageManager {
2121
constructor(
2222
$childProcess: IChildProcess,
2323
private $errors: IErrors,
@@ -147,4 +147,4 @@ export class YarnPackageManager extends BasePackageManager {
147147
}
148148
}
149149

150-
injector.register("yarn", YarnPackageManager);
150+
injector.register("yarn", Yarn);
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
import * as path from "path";
22
import * as _ from "lodash";
33
import { BasePackageManager } from "./base-package-manager";
4-
import { exported } from "./common/decorators";
4+
import { exported } from "../common/decorators";
55
import {
66
INodePackageManagerInstallOptions,
77
INpmInstallResultInfo,
88
INpmsResult,
9-
} from "./declarations";
9+
} from "../declarations";
1010
import {
1111
IChildProcess,
1212
IErrors,
1313
IFileSystem,
1414
IHostInfo,
1515
Server,
1616
IDictionary,
17-
} from "./common/declarations";
18-
import { injector } from "./common/yok";
17+
} from "../common/declarations";
18+
import { injector } from "../common/yok";
1919

20-
export class Yarn2PackageManager extends BasePackageManager {
20+
export class Yarn2 extends BasePackageManager {
2121
private $hostInfo_: IHostInfo;
2222
constructor(
2323
$childProcess: IChildProcess,
@@ -165,4 +165,4 @@ export class Yarn2PackageManager extends BasePackageManager {
165165
}
166166
}
167167

168-
injector.register("yarn2", Yarn2PackageManager);
168+
injector.register("yarn2", Yarn2);

test/bun-package-manager.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Yok } from "../lib/common/yok";
22
import * as stubs from "./stubs";
33
import { assert } from "chai";
4-
import { BunPackageManager } from "../lib/bun-package-manager";
4+
import { Bun } from "../lib/package-managers/bun";
55
import { IInjector } from "../lib/common/definitions/yok";
66

77
function createTestInjector(configuration: {} = {}): IInjector {
@@ -12,7 +12,7 @@ function createTestInjector(configuration: {} = {}): IInjector {
1212
injector.register("childProcess", stubs.ChildProcessStub);
1313
injector.register("httpClient", {});
1414
injector.register("fs", stubs.FileSystemStub);
15-
injector.register("bun", BunPackageManager);
15+
injector.register("bun", Bun);
1616
injector.register("pacoteService", {
1717
manifest: () => Promise.resolve(),
1818
});
@@ -50,7 +50,7 @@ describe("node-package-manager", () => {
5050
].forEach((testCase) => {
5151
it(testCase.name, async () => {
5252
const testInjector = createTestInjector();
53-
const npm = testInjector.resolve<BunPackageManager>("bun");
53+
const npm = testInjector.resolve<Bun>("bun");
5454
const templateNameParts = await npm.getPackageNameParts(
5555
testCase.templateFullName
5656
);
@@ -85,7 +85,7 @@ describe("node-package-manager", () => {
8585
].forEach((testCase) => {
8686
it(testCase.name, async () => {
8787
const testInjector = createTestInjector();
88-
const npm = testInjector.resolve<BunPackageManager>("bun");
88+
const npm = testInjector.resolve<Bun>("bun");
8989
const templateFullName = await npm.getPackageFullName({
9090
name: testCase.templateName,
9191
version: testCase.templateVersion,

0 commit comments

Comments
 (0)