@tsed/cli-testing 4.5.1 → 4.5.3

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.
package/.eslintignore ADDED
@@ -0,0 +1,13 @@
1
+ node_modules
2
+ docs
3
+ docs-references
4
+ lib
5
+ dist
6
+ coverage
7
+ .nyc_output
8
+ *-lock.json
9
+ *.lock
10
+ benchmarks.*
11
+ **/generated
12
+
13
+ **/*.js
package/.eslintrc.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require("@tsed/eslint/node.js");
package/jest.config.js CHANGED
@@ -1 +1,14 @@
1
- module.exports = require("../../jest.config");
1
+ // For a detailed explanation regarding each configuration property, visit:
2
+ // https://jestjs.io/docs/en/configuration.html
3
+
4
+ module.exports = {
5
+ ...require("@tsed/jest-config"),
6
+ coverageThreshold: {
7
+ global: {
8
+ statements: 0,
9
+ branches: 0,
10
+ functions: 0,
11
+ lines: 0
12
+ }
13
+ }
14
+ };
@@ -87,7 +87,7 @@ class CliPlatformTest extends cli_core_1.DITest {
87
87
  for (const target of targets) {
88
88
  deps.push(injector.has(target) ? injector.get(target) : await injector.invoke(target));
89
89
  }
90
- return await func(...deps);
90
+ return func(...deps);
91
91
  };
92
92
  }
93
93
  static setPackageJson(pkg) {
@@ -99,7 +99,7 @@ class CliPlatformTest extends cli_core_1.DITest {
99
99
  * @param cmdName
100
100
  * @param initialData
101
101
  */
102
- static async exec(cmdName, initialData) {
102
+ static exec(cmdName, initialData) {
103
103
  const $ctx = new di_1.DIContext({
104
104
  id: (0, uuid_1.v4)(),
105
105
  injector: this.injector,
@@ -1 +1 @@
1
- {"version":3,"file":"CliPlatformTest.js","sourceRoot":"","sources":["../../src/CliPlatformTest.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CliCore,\n CliExeca,\n CliFs,\n CliHttpClient,\n CliService,\n createInjector,\n DITest,\n Env,\n getCommandMetadata,\n InjectorService,\n ProjectPackageJson,\n resolveConfiguration,\n TokenProvider\n} from \"@tsed/cli-core\";\nimport {Type} from \"@tsed/core\";\nimport {FakeCliExeca} from \"./FakeCliExeca\";\nimport {FakeCliFs} from \"./FakeCliFs\";\nimport {FakeCliHttpClient} from \"./FakeCliHttpClient\";\nimport {DIContext, runInContext} from \"@tsed/di\";\nimport {v4} from \"uuid\";\n\nexport interface InvokeOptions {\n token: TokenProvider;\n use: any;\n}\n\nexport class CliPlatformTest extends DITest {\n static async bootstrap(options: Partial<TsED.Configuration> = {}) {\n options = resolveConfiguration({\n name: \"tsed\",\n project: {\n rootDir: options.rootDir || \"./project-name\",\n srcDir: \"src\",\n scriptsDir: \"scripts\",\n ...(options.project || {})\n },\n ...options\n });\n\n DITest.injector = CliPlatformTest.createInjector(options);\n\n DITest.injector\n .addProvider(CliHttpClient, {\n useClass: FakeCliHttpClient\n })\n .addProvider(CliFs, {\n useClass: FakeCliFs\n })\n .addProvider(CliExeca, {\n useClass: FakeCliExeca\n })\n .addProvider(CliCore);\n\n await DITest.injector.load();\n await DITest.injector.emit(\"$onReady\");\n\n CliPlatformTest.get(CliService).load();\n }\n\n static async create(options: Partial<TsED.Configuration> = {}, rootModule: Type = CliCore) {\n options = resolveConfiguration({\n name: \"tsed\",\n ...options\n });\n\n DITest.injector = CliPlatformTest.createInjector(options);\n\n DITest.injector.addProvider(CliCore, {\n useClass: rootModule\n });\n\n await DITest.injector.load();\n }\n\n /**\n * Create a new injector with the right default services\n */\n static createInjector(options: Partial<TsED.Configuration> = {}): InjectorService {\n const injector = createInjector({\n ...options,\n pkg: {\n name: \"@tsed/cli-testing\",\n version: \"1.0.0\"\n } as any,\n project: {\n rootDir: \"./tmp\",\n srcDir: \"src\",\n ...(options.project || {})\n },\n disableReadUpPkg: true\n });\n\n injector.settings.env = Env.TEST;\n\n return injector;\n }\n\n /**\n * It injects services into the test function where you can alter, spy on, and manipulate them.\n *\n * The inject function has two parameters\n *\n * * an array of Service dependency injection tokens,\n * * a test function whose parameters correspond exactly to each item in the injection token array.\n *\n * @param targets\n * @param func\n */\n static inject<T>(targets: any[], func: (...args: any[]) => Promise<T> | T): () => Promise<T> {\n return async (): Promise<T> => {\n if (!DITest.hasInjector()) {\n await CliPlatformTest.create();\n }\n\n const injector: InjectorService = DITest.injector;\n const deps = [];\n\n for (const target of targets) {\n deps.push(injector.has(target) ? injector.get(target) : await injector.invoke(target));\n }\n\n return await func(...deps);\n };\n }\n\n static setPackageJson(pkg: any) {\n const projectPackageJson = CliPlatformTest.get<ProjectPackageJson>(ProjectPackageJson);\n\n (projectPackageJson as any).setRaw(pkg);\n }\n\n /**\n * Invoke command with a new context without running prompts\n * @param cmdName\n * @param initialData\n */\n static async exec(cmdName: string, initialData: any) {\n const $ctx = new DIContext({\n id: v4(),\n injector: this.injector,\n logger: this.injector.logger\n });\n\n const metadata = this.injector.settings\n .get(\"commands\")\n .map((token: TokenProvider) => getCommandMetadata(token))\n .find((commandOpts: any) => cmdName === commandOpts.name);\n\n $ctx.set(\"data\", initialData);\n $ctx.set(\"command\", metadata);\n\n return runInContext($ctx, () => this.injector.get<CliService>(CliService)!.exec(cmdName, initialData, $ctx));\n }\n}\n"]}
1
+ {"version":3,"file":"CliPlatformTest.js","sourceRoot":"","sources":["../../src/CliPlatformTest.ts"],"names":[],"mappings":"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"}
@@ -14,15 +14,15 @@ class FakeCliExeca extends cli_core_1.CliExeca {
14
14
  });
15
15
  }
16
16
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
- async getAsync(cmd, args, opts) {
17
+ getAsync(cmd, args, opts) {
18
18
  if (["npm"].includes(cmd) && args.includes("view")) {
19
- return JSON.stringify({
19
+ return Promise.resolve(JSON.stringify({
20
20
  "dist-tags": {
21
21
  latest: "1.0.0"
22
22
  }
23
- });
23
+ }));
24
24
  }
25
- return FakeCliExeca.entries.get(cmd + " " + args.join(" "));
25
+ return Promise.resolve(FakeCliExeca.entries.get(cmd + " " + args.join(" ")));
26
26
  }
27
27
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
28
28
  runSync(cmd, args, opts) {
@@ -1 +1 @@
1
- {"version":3,"file":"FakeCliExeca.js","sourceRoot":"","sources":["../../src/FakeCliExeca.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AACxC,+BAAgC;AAEhC,MAAa,YAAa,SAAQ,mBAAQ;IACxC,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE3C,6DAA6D;IAC7D,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,IAAU;QACzC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAEpE,OAAO,IAAI,iBAAU,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,IAAc,EAAE,IAAU;QACpD,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAClD,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,WAAW,EAAE;oBACX,MAAM,EAAE,OAAO;iBAChB;aACF,CAAC,CAAC;SACJ;QAED,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,6DAA6D;IAC7D,OAAO,CAAC,GAAW,EAAE,IAAc,EAAE,IAAU;QAC7C,OAAO;YACL,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC7D,CAAC;IACJ,CAAC;;AA/BH,oCAgCC","sourcesContent":["import {CliExeca} from \"@tsed/cli-core\";\nimport {Observable} from \"rxjs\";\n\nexport class FakeCliExeca extends CliExeca {\n static entries = new Map<string, string>();\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n run(cmd: string, args: string[], opts?: any): any {\n const result = FakeCliExeca.entries.get(cmd + \" \" + args.join(\" \"));\n\n return new Observable((observer) => {\n observer.next(result);\n observer.complete();\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async getAsync(cmd: string, args: string[], opts?: any): Promise<any> {\n if ([\"npm\"].includes(cmd) && args.includes(\"view\")) {\n return JSON.stringify({\n \"dist-tags\": {\n latest: \"1.0.0\"\n }\n });\n }\n\n return FakeCliExeca.entries.get(cmd + \" \" + args.join(\" \"));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n runSync(cmd: string, args: string[], opts?: any): any {\n return {\n stdout: FakeCliExeca.entries.get(cmd + \" \" + args.join(\" \"))\n };\n }\n}\n"]}
1
+ {"version":3,"file":"FakeCliExeca.js","sourceRoot":"","sources":["../../src/FakeCliExeca.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AACxC,+BAAgC;AAEhC,MAAa,YAAa,SAAQ,mBAAQ;IACxC,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE3C,6DAA6D;IAC7D,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,IAAU;QACzC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAEpE,OAAO,IAAI,iBAAU,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6DAA6D;IAC7D,QAAQ,CAAC,GAAW,EAAE,IAAc,EAAE,IAAU;QAC9C,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAClD,OAAO,OAAO,CAAC,OAAO,CACpB,IAAI,CAAC,SAAS,CAAC;gBACb,WAAW,EAAE;oBACX,MAAM,EAAE,OAAO;iBAChB;aACF,CAAC,CACH,CAAC;SACH;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,6DAA6D;IAC7D,OAAO,CAAC,GAAW,EAAE,IAAc,EAAE,IAAU;QAC7C,OAAO;YACL,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC7D,CAAC;IACJ,CAAC;;AAjCH,oCAkCC"}
@@ -16,8 +16,8 @@ class FakeCliFs {
16
16
  return FakeCliFs.entries.has((0, normalizePath_1.normalizePath)(path));
17
17
  }
18
18
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
19
- async readFile(file, encoding) {
20
- return FakeCliFs.entries.get((0, normalizePath_1.normalizePath)(file));
19
+ readFile(file, encoding) {
20
+ return Promise.resolve(FakeCliFs.entries.get((0, normalizePath_1.normalizePath)(file)));
21
21
  }
22
22
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
23
23
  readFileSync(file, encoding) {
@@ -40,8 +40,9 @@ class FakeCliFs {
40
40
  FakeCliFs.entries.set((0, normalizePath_1.normalizePath)(file), data);
41
41
  }
42
42
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
43
- async ensureDir(path, options) {
43
+ ensureDir(path, options) {
44
44
  FakeCliFs.entries.set((0, normalizePath_1.normalizePath)(path), path);
45
+ return Promise.resolve();
45
46
  }
46
47
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
47
48
  ensureDirSync(path, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"FakeCliFs.js","sourceRoot":"","sources":["../../src/FakeCliFs.ts"],"names":[],"mappings":";;;AAEA,mDAA8C;AAE9C,MAAa,SAAS;IACpB,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,EAAe,CAAC;IAExC,MAAM,CAAC,OAAO;QACZ,OAAO,IAAA,6BAAa,EAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,6DAA6D;IAC7D,aAAa;IACb,UAAU;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,6BAAa,EAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,QAAQ,CAAC,IAA8B,EAAE,QAAc;QAC3D,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,6BAAa,EAAC,IAAI,CAAC,CAAE,CAAC;IACrD,CAAC;IAED,6DAA6D;IAC7D,YAAY,CAAC,IAA8B,EAAE,QAAc;QACzD,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,6BAAa,EAAC,IAAI,CAAC,CAAE,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAA8B,EAAE,QAAc;QAC3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,YAAY,CAAC,IAA8B,EAAE,QAAc;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAElD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,6DAA6D;IAC7D,aAAa,CAAC,IAAuB,EAAE,IAAS,EAAE,OAA0B;QAC1E,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,6BAAa,EAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,6DAA6D;IAC7D,SAAS,CAAC,IAA8B,EAAE,IAAS,EAAE,OAAmC;QACtF,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,6BAAa,EAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,OAAgC;QAC5D,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,6BAAa,EAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,6DAA6D;IAC7D,aAAa,CAAC,IAAY,EAAE,OAAgC;QAC1D,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,6BAAa,EAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,UAAU;QACR,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;;AA7DH,8BA8DC","sourcesContent":["import {PathLike} from \"fs\";\nimport {EnsureOptions, WriteFileOptions} from \"fs-extra\";\nimport {normalizePath} from \"./normalizePath\";\n\nexport class FakeCliFs {\n static entries = new Map<any, string>();\n\n static getKeys() {\n return normalizePath(Array.from(FakeCliFs.entries.keys()).sort((a, b) => (a < b ? -1 : 1)));\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n findUpFile() {\n return null;\n }\n\n exists(path: string): boolean {\n return FakeCliFs.entries.has(normalizePath(path));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async readFile(file: string | Buffer | number, encoding?: any): Promise<string> {\n return FakeCliFs.entries.get(normalizePath(file))!;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n readFileSync(file: string | Buffer | number, encoding?: any): string {\n return FakeCliFs.entries.get(normalizePath(file))!;\n }\n\n async readJson(file: string | Buffer | number, encoding?: any): Promise<string> {\n const content = await this.readFile(file, encoding);\n\n return JSON.parse(content);\n }\n\n readJsonSync(file: string | Buffer | number, encoding?: any): Promise<string> {\n const content = this.readFileSync(file, encoding);\n\n return JSON.parse(content);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n writeFileSync(path: PathLike | number, data: any, options?: WriteFileOptions): void {\n FakeCliFs.entries.set(normalizePath(path), data);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n writeFile(file: string | Buffer | number, data: any, options?: WriteFileOptions | string): void {\n FakeCliFs.entries.set(normalizePath(file), data);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async ensureDir(path: string, options?: EnsureOptions | number): Promise<void> {\n FakeCliFs.entries.set(normalizePath(path), path);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ensureDirSync(path: string, options?: EnsureOptions | number) {\n FakeCliFs.entries.set(normalizePath(path), path);\n }\n\n $onDestroy() {\n FakeCliFs.entries.clear();\n }\n}\n"]}
1
+ {"version":3,"file":"FakeCliFs.js","sourceRoot":"","sources":["../../src/FakeCliFs.ts"],"names":[],"mappings":";;;AAEA,mDAA8C;AAE9C,MAAa,SAAS;IACpB,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,EAAe,CAAC;IAExC,MAAM,CAAC,OAAO;QACZ,OAAO,IAAA,6BAAa,EAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,6DAA6D;IAC7D,aAAa;IACb,UAAU;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,6BAAa,EAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,6DAA6D;IAC7D,QAAQ,CAAC,IAA8B,EAAE,QAAc;QACrD,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,6BAAa,EAAC,IAAI,CAAC,CAAE,CAAC,CAAC;IACtE,CAAC;IAED,6DAA6D;IAC7D,YAAY,CAAC,IAA8B,EAAE,QAAc;QACzD,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,6BAAa,EAAC,IAAI,CAAC,CAAE,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAA8B,EAAE,QAAc;QAC3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,YAAY,CAAC,IAA8B,EAAE,QAAc;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAElD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,6DAA6D;IAC7D,aAAa,CAAC,IAAuB,EAAE,IAAS,EAAE,OAA0B;QAC1E,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,6BAAa,EAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,6DAA6D;IAC7D,SAAS,CAAC,IAA8B,EAAE,IAAS,EAAE,OAAmC;QACtF,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,6BAAa,EAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,6DAA6D;IAC7D,SAAS,CAAC,IAAY,EAAE,OAAgC;QACtD,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,6BAAa,EAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,6DAA6D;IAC7D,aAAa,CAAC,IAAY,EAAE,OAAgC;QAC1D,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,6BAAa,EAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,UAAU;QACR,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;;AA9DH,8BA+DC"}
@@ -4,14 +4,14 @@ exports.FakeCliHttpClient = void 0;
4
4
  const cli_core_1 = require("@tsed/cli-core");
5
5
  class FakeCliHttpClient extends cli_core_1.CliHttpClient {
6
6
  static entries = new Map();
7
- async get(endpoint, options = {}) {
7
+ get(endpoint, options = {}) {
8
8
  const key = endpoint + ":" + JSON.stringify(options);
9
9
  if (key.includes("https://registry.")) {
10
- return {
10
+ return Promise.resolve({
11
11
  "dist-tags": {
12
12
  latest: "1.0.0"
13
13
  }
14
- };
14
+ });
15
15
  }
16
16
  if (!FakeCliHttpClient.entries.has(key)) {
17
17
  process.stdout.write("Entries missing for FakeCliHttpClient: " + key + "\n");
@@ -1 +1 @@
1
- {"version":3,"file":"FakeCliHttpClient.js","sourceRoot":"","sources":["../../src/FakeCliHttpClient.ts"],"names":[],"mappings":";;;AAAA,6CAAmE;AAGnE,MAAa,iBAAkB,SAAQ,wBAAa;IAClD,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,EAAe,CAAC;IAExC,KAAK,CAAC,GAAG,CAAC,QAAgB,EAAE,UAAgC,EAAE;QAC5D,MAAM,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAErD,IAAI,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;YACrC,OAAO;gBACL,WAAW,EAAE;oBACX,MAAM,EAAE,OAAO;iBAChB;aACF,CAAC;SACH;QAED,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;SAC9E;QAED,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,UAAU;QACR,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;;AAvBH,8CAwBC","sourcesContent":["import {CliHttpClient, CliHttpClientOptions} from \"@tsed/cli-core\";\nimport {OnDestroy} from \"@tsed/di\";\n\nexport class FakeCliHttpClient extends CliHttpClient implements OnDestroy {\n static entries = new Map<string, any>();\n\n async get(endpoint: string, options: CliHttpClientOptions = {}): Promise<any> {\n const key = endpoint + \":\" + JSON.stringify(options);\n\n if (key.includes(\"https://registry.\")) {\n return {\n \"dist-tags\": {\n latest: \"1.0.0\"\n }\n };\n }\n\n if (!FakeCliHttpClient.entries.has(key)) {\n process.stdout.write(\"Entries missing for FakeCliHttpClient: \" + key + \"\\n\");\n }\n\n return FakeCliHttpClient.entries.get(key)?.(endpoint, options);\n }\n\n $onDestroy() {\n FakeCliHttpClient.entries.clear();\n }\n}\n"]}
1
+ {"version":3,"file":"FakeCliHttpClient.js","sourceRoot":"","sources":["../../src/FakeCliHttpClient.ts"],"names":[],"mappings":";;;AAAA,6CAAmE;AAGnE,MAAa,iBAAkB,SAAQ,wBAAa;IAClD,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,EAAe,CAAC;IAExC,GAAG,CAAC,QAAgB,EAAE,UAAgC,EAAE;QACtD,MAAM,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAErD,IAAI,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;YACrC,OAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,WAAW,EAAE;oBACX,MAAM,EAAE,OAAO;iBAChB;aACF,CAAC,CAAC;SACJ;QAED,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;SAC9E;QAED,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,UAAU;QACR,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;;AAvBH,8CAwBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,sDAA4B;AAC5B,8DAAoC;AACpC,0DAAgC","sourcesContent":["export * from \"./CliPlatformTest\";\nexport * from \"./FakeCliFs\";\nexport * from \"./FakeCliHttpClient\";\nexport * from \"./normalizePath\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,sDAA4B;AAC5B,8DAAoC;AACpC,0DAAgC"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalizePath.js","sourceRoot":"","sources":["../../src/normalizePath.ts"],"names":[],"mappings":";;;;AAAA,qCAAoC;AACpC,4EAA4C;AAE5C,SAAgB,aAAa,CAAC,IAAS;IACrC,IAAI,IAAA,eAAQ,EAAC,IAAI,CAAC,EAAE;QAClB,OAAO,IAAA,wBAAc,EAAC,IAAI,CAAC,CAAC;KAC7B;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC;AAND,sCAMC","sourcesContent":["import {isString} from \"@tsed/core\";\nimport normalize_path from \"normalize-path\";\n\nexport function normalizePath(item: any) {\n if (isString(item)) {\n return normalize_path(item);\n }\n\n return item.map(normalizePath);\n}\n"]}
1
+ {"version":3,"file":"normalizePath.js","sourceRoot":"","sources":["../../src/normalizePath.ts"],"names":[],"mappings":";;;;AAAA,qCAAoC;AACpC,4EAA4C;AAE5C,SAAgB,aAAa,CAAC,IAAS;IACrC,IAAI,IAAA,eAAQ,EAAC,IAAI,CAAC,EAAE;QAClB,OAAO,IAAA,wBAAc,EAAC,IAAI,CAAC,CAAC;KAC7B;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC;AAND,sCAMC"}
@@ -84,7 +84,7 @@ export class CliPlatformTest extends DITest {
84
84
  for (const target of targets) {
85
85
  deps.push(injector.has(target) ? injector.get(target) : await injector.invoke(target));
86
86
  }
87
- return await func(...deps);
87
+ return func(...deps);
88
88
  };
89
89
  }
90
90
  static setPackageJson(pkg) {
@@ -96,7 +96,7 @@ export class CliPlatformTest extends DITest {
96
96
  * @param cmdName
97
97
  * @param initialData
98
98
  */
99
- static async exec(cmdName, initialData) {
99
+ static exec(cmdName, initialData) {
100
100
  const $ctx = new DIContext({
101
101
  id: v4(),
102
102
  injector: this.injector,
@@ -1 +1 @@
1
- {"version":3,"file":"CliPlatformTest.js","sourceRoot":"","sources":["../../src/CliPlatformTest.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CliCore,\n CliExeca,\n CliFs,\n CliHttpClient,\n CliService,\n createInjector,\n DITest,\n Env,\n getCommandMetadata,\n InjectorService,\n ProjectPackageJson,\n resolveConfiguration,\n TokenProvider\n} from \"@tsed/cli-core\";\nimport {Type} from \"@tsed/core\";\nimport {FakeCliExeca} from \"./FakeCliExeca\";\nimport {FakeCliFs} from \"./FakeCliFs\";\nimport {FakeCliHttpClient} from \"./FakeCliHttpClient\";\nimport {DIContext, runInContext} from \"@tsed/di\";\nimport {v4} from \"uuid\";\n\nexport interface InvokeOptions {\n token: TokenProvider;\n use: any;\n}\n\nexport class CliPlatformTest extends DITest {\n static async bootstrap(options: Partial<TsED.Configuration> = {}) {\n options = resolveConfiguration({\n name: \"tsed\",\n project: {\n rootDir: options.rootDir || \"./project-name\",\n srcDir: \"src\",\n scriptsDir: \"scripts\",\n ...(options.project || {})\n },\n ...options\n });\n\n DITest.injector = CliPlatformTest.createInjector(options);\n\n DITest.injector\n .addProvider(CliHttpClient, {\n useClass: FakeCliHttpClient\n })\n .addProvider(CliFs, {\n useClass: FakeCliFs\n })\n .addProvider(CliExeca, {\n useClass: FakeCliExeca\n })\n .addProvider(CliCore);\n\n await DITest.injector.load();\n await DITest.injector.emit(\"$onReady\");\n\n CliPlatformTest.get(CliService).load();\n }\n\n static async create(options: Partial<TsED.Configuration> = {}, rootModule: Type = CliCore) {\n options = resolveConfiguration({\n name: \"tsed\",\n ...options\n });\n\n DITest.injector = CliPlatformTest.createInjector(options);\n\n DITest.injector.addProvider(CliCore, {\n useClass: rootModule\n });\n\n await DITest.injector.load();\n }\n\n /**\n * Create a new injector with the right default services\n */\n static createInjector(options: Partial<TsED.Configuration> = {}): InjectorService {\n const injector = createInjector({\n ...options,\n pkg: {\n name: \"@tsed/cli-testing\",\n version: \"1.0.0\"\n } as any,\n project: {\n rootDir: \"./tmp\",\n srcDir: \"src\",\n ...(options.project || {})\n },\n disableReadUpPkg: true\n });\n\n injector.settings.env = Env.TEST;\n\n return injector;\n }\n\n /**\n * It injects services into the test function where you can alter, spy on, and manipulate them.\n *\n * The inject function has two parameters\n *\n * * an array of Service dependency injection tokens,\n * * a test function whose parameters correspond exactly to each item in the injection token array.\n *\n * @param targets\n * @param func\n */\n static inject<T>(targets: any[], func: (...args: any[]) => Promise<T> | T): () => Promise<T> {\n return async (): Promise<T> => {\n if (!DITest.hasInjector()) {\n await CliPlatformTest.create();\n }\n\n const injector: InjectorService = DITest.injector;\n const deps = [];\n\n for (const target of targets) {\n deps.push(injector.has(target) ? injector.get(target) : await injector.invoke(target));\n }\n\n return await func(...deps);\n };\n }\n\n static setPackageJson(pkg: any) {\n const projectPackageJson = CliPlatformTest.get<ProjectPackageJson>(ProjectPackageJson);\n\n (projectPackageJson as any).setRaw(pkg);\n }\n\n /**\n * Invoke command with a new context without running prompts\n * @param cmdName\n * @param initialData\n */\n static async exec(cmdName: string, initialData: any) {\n const $ctx = new DIContext({\n id: v4(),\n injector: this.injector,\n logger: this.injector.logger\n });\n\n const metadata = this.injector.settings\n .get(\"commands\")\n .map((token: TokenProvider) => getCommandMetadata(token))\n .find((commandOpts: any) => cmdName === commandOpts.name);\n\n $ctx.set(\"data\", initialData);\n $ctx.set(\"command\", metadata);\n\n return runInContext($ctx, () => this.injector.get<CliService>(CliService)!.exec(cmdName, initialData, $ctx));\n }\n}\n"]}
1
+ {"version":3,"file":"CliPlatformTest.js","sourceRoot":"","sources":["../../src/CliPlatformTest.ts"],"names":[],"mappings":"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"}
@@ -11,15 +11,15 @@ export class FakeCliExeca extends CliExeca {
11
11
  });
12
12
  }
13
13
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
- async getAsync(cmd, args, opts) {
14
+ getAsync(cmd, args, opts) {
15
15
  if (["npm"].includes(cmd) && args.includes("view")) {
16
- return JSON.stringify({
16
+ return Promise.resolve(JSON.stringify({
17
17
  "dist-tags": {
18
18
  latest: "1.0.0"
19
19
  }
20
- });
20
+ }));
21
21
  }
22
- return FakeCliExeca.entries.get(cmd + " " + args.join(" "));
22
+ return Promise.resolve(FakeCliExeca.entries.get(cmd + " " + args.join(" ")));
23
23
  }
24
24
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
25
25
  runSync(cmd, args, opts) {
@@ -1 +1 @@
1
- {"version":3,"file":"FakeCliExeca.js","sourceRoot":"","sources":["../../src/FakeCliExeca.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAEhC,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACxC,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE3C,6DAA6D;IAC7D,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,IAAU;QACzC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAEpE,OAAO,IAAI,UAAU,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,IAAc,EAAE,IAAU;QACpD,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAClD,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,WAAW,EAAE;oBACX,MAAM,EAAE,OAAO;iBAChB;aACF,CAAC,CAAC;SACJ;QAED,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,6DAA6D;IAC7D,OAAO,CAAC,GAAW,EAAE,IAAc,EAAE,IAAU;QAC7C,OAAO;YACL,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC7D,CAAC;IACJ,CAAC","sourcesContent":["import {CliExeca} from \"@tsed/cli-core\";\nimport {Observable} from \"rxjs\";\n\nexport class FakeCliExeca extends CliExeca {\n static entries = new Map<string, string>();\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n run(cmd: string, args: string[], opts?: any): any {\n const result = FakeCliExeca.entries.get(cmd + \" \" + args.join(\" \"));\n\n return new Observable((observer) => {\n observer.next(result);\n observer.complete();\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async getAsync(cmd: string, args: string[], opts?: any): Promise<any> {\n if ([\"npm\"].includes(cmd) && args.includes(\"view\")) {\n return JSON.stringify({\n \"dist-tags\": {\n latest: \"1.0.0\"\n }\n });\n }\n\n return FakeCliExeca.entries.get(cmd + \" \" + args.join(\" \"));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n runSync(cmd: string, args: string[], opts?: any): any {\n return {\n stdout: FakeCliExeca.entries.get(cmd + \" \" + args.join(\" \"))\n };\n }\n}\n"]}
1
+ {"version":3,"file":"FakeCliExeca.js","sourceRoot":"","sources":["../../src/FakeCliExeca.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAEhC,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACxC,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE3C,6DAA6D;IAC7D,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,IAAU;QACzC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAEpE,OAAO,IAAI,UAAU,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6DAA6D;IAC7D,QAAQ,CAAC,GAAW,EAAE,IAAc,EAAE,IAAU;QAC9C,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAClD,OAAO,OAAO,CAAC,OAAO,CACpB,IAAI,CAAC,SAAS,CAAC;gBACb,WAAW,EAAE;oBACX,MAAM,EAAE,OAAO;iBAChB;aACF,CAAC,CACH,CAAC;SACH;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,6DAA6D;IAC7D,OAAO,CAAC,GAAW,EAAE,IAAc,EAAE,IAAU;QAC7C,OAAO;YACL,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC7D,CAAC;IACJ,CAAC"}
@@ -13,8 +13,8 @@ export class FakeCliFs {
13
13
  return FakeCliFs.entries.has(normalizePath(path));
14
14
  }
15
15
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
16
- async readFile(file, encoding) {
17
- return FakeCliFs.entries.get(normalizePath(file));
16
+ readFile(file, encoding) {
17
+ return Promise.resolve(FakeCliFs.entries.get(normalizePath(file)));
18
18
  }
19
19
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
20
20
  readFileSync(file, encoding) {
@@ -37,8 +37,9 @@ export class FakeCliFs {
37
37
  FakeCliFs.entries.set(normalizePath(file), data);
38
38
  }
39
39
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
40
- async ensureDir(path, options) {
40
+ ensureDir(path, options) {
41
41
  FakeCliFs.entries.set(normalizePath(path), path);
42
+ return Promise.resolve();
42
43
  }
43
44
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
44
45
  ensureDirSync(path, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"FakeCliFs.js","sourceRoot":"","sources":["../../src/FakeCliFs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,MAAM,OAAO,SAAS;IACpB,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,EAAe,CAAC;IAExC,MAAM,CAAC,OAAO;QACZ,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,6DAA6D;IAC7D,aAAa;IACb,UAAU;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,QAAQ,CAAC,IAA8B,EAAE,QAAc;QAC3D,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAE,CAAC;IACrD,CAAC;IAED,6DAA6D;IAC7D,YAAY,CAAC,IAA8B,EAAE,QAAc;QACzD,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAE,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAA8B,EAAE,QAAc;QAC3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,YAAY,CAAC,IAA8B,EAAE,QAAc;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAElD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,6DAA6D;IAC7D,aAAa,CAAC,IAAuB,EAAE,IAAS,EAAE,OAA0B;QAC1E,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,6DAA6D;IAC7D,SAAS,CAAC,IAA8B,EAAE,IAAS,EAAE,OAAmC;QACtF,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,OAAgC;QAC5D,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,6DAA6D;IAC7D,aAAa,CAAC,IAAY,EAAE,OAAgC;QAC1D,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,UAAU;QACR,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC","sourcesContent":["import {PathLike} from \"fs\";\nimport {EnsureOptions, WriteFileOptions} from \"fs-extra\";\nimport {normalizePath} from \"./normalizePath\";\n\nexport class FakeCliFs {\n static entries = new Map<any, string>();\n\n static getKeys() {\n return normalizePath(Array.from(FakeCliFs.entries.keys()).sort((a, b) => (a < b ? -1 : 1)));\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n findUpFile() {\n return null;\n }\n\n exists(path: string): boolean {\n return FakeCliFs.entries.has(normalizePath(path));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async readFile(file: string | Buffer | number, encoding?: any): Promise<string> {\n return FakeCliFs.entries.get(normalizePath(file))!;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n readFileSync(file: string | Buffer | number, encoding?: any): string {\n return FakeCliFs.entries.get(normalizePath(file))!;\n }\n\n async readJson(file: string | Buffer | number, encoding?: any): Promise<string> {\n const content = await this.readFile(file, encoding);\n\n return JSON.parse(content);\n }\n\n readJsonSync(file: string | Buffer | number, encoding?: any): Promise<string> {\n const content = this.readFileSync(file, encoding);\n\n return JSON.parse(content);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n writeFileSync(path: PathLike | number, data: any, options?: WriteFileOptions): void {\n FakeCliFs.entries.set(normalizePath(path), data);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n writeFile(file: string | Buffer | number, data: any, options?: WriteFileOptions | string): void {\n FakeCliFs.entries.set(normalizePath(file), data);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async ensureDir(path: string, options?: EnsureOptions | number): Promise<void> {\n FakeCliFs.entries.set(normalizePath(path), path);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ensureDirSync(path: string, options?: EnsureOptions | number) {\n FakeCliFs.entries.set(normalizePath(path), path);\n }\n\n $onDestroy() {\n FakeCliFs.entries.clear();\n }\n}\n"]}
1
+ {"version":3,"file":"FakeCliFs.js","sourceRoot":"","sources":["../../src/FakeCliFs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,MAAM,OAAO,SAAS;IACpB,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,EAAe,CAAC;IAExC,MAAM,CAAC,OAAO;QACZ,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,6DAA6D;IAC7D,aAAa;IACb,UAAU;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,6DAA6D;IAC7D,QAAQ,CAAC,IAA8B,EAAE,QAAc;QACrD,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAE,CAAC,CAAC;IACtE,CAAC;IAED,6DAA6D;IAC7D,YAAY,CAAC,IAA8B,EAAE,QAAc;QACzD,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAE,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAA8B,EAAE,QAAc;QAC3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,YAAY,CAAC,IAA8B,EAAE,QAAc;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAElD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,6DAA6D;IAC7D,aAAa,CAAC,IAAuB,EAAE,IAAS,EAAE,OAA0B;QAC1E,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,6DAA6D;IAC7D,SAAS,CAAC,IAA8B,EAAE,IAAS,EAAE,OAAmC;QACtF,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,6DAA6D;IAC7D,SAAS,CAAC,IAAY,EAAE,OAAgC;QACtD,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,6DAA6D;IAC7D,aAAa,CAAC,IAAY,EAAE,OAAgC;QAC1D,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,UAAU;QACR,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC"}
@@ -1,14 +1,14 @@
1
1
  import { CliHttpClient } from "@tsed/cli-core";
2
2
  export class FakeCliHttpClient extends CliHttpClient {
3
3
  static entries = new Map();
4
- async get(endpoint, options = {}) {
4
+ get(endpoint, options = {}) {
5
5
  const key = endpoint + ":" + JSON.stringify(options);
6
6
  if (key.includes("https://registry.")) {
7
- return {
7
+ return Promise.resolve({
8
8
  "dist-tags": {
9
9
  latest: "1.0.0"
10
10
  }
11
- };
11
+ });
12
12
  }
13
13
  if (!FakeCliHttpClient.entries.has(key)) {
14
14
  process.stdout.write("Entries missing for FakeCliHttpClient: " + key + "\n");
@@ -1 +1 @@
1
- {"version":3,"file":"FakeCliHttpClient.js","sourceRoot":"","sources":["../../src/FakeCliHttpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAuB,MAAM,gBAAgB,CAAC;AAGnE,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClD,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,EAAe,CAAC;IAExC,KAAK,CAAC,GAAG,CAAC,QAAgB,EAAE,UAAgC,EAAE;QAC5D,MAAM,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAErD,IAAI,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;YACrC,OAAO;gBACL,WAAW,EAAE;oBACX,MAAM,EAAE,OAAO;iBAChB;aACF,CAAC;SACH;QAED,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;SAC9E;QAED,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,UAAU;QACR,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC","sourcesContent":["import {CliHttpClient, CliHttpClientOptions} from \"@tsed/cli-core\";\nimport {OnDestroy} from \"@tsed/di\";\n\nexport class FakeCliHttpClient extends CliHttpClient implements OnDestroy {\n static entries = new Map<string, any>();\n\n async get(endpoint: string, options: CliHttpClientOptions = {}): Promise<any> {\n const key = endpoint + \":\" + JSON.stringify(options);\n\n if (key.includes(\"https://registry.\")) {\n return {\n \"dist-tags\": {\n latest: \"1.0.0\"\n }\n };\n }\n\n if (!FakeCliHttpClient.entries.has(key)) {\n process.stdout.write(\"Entries missing for FakeCliHttpClient: \" + key + \"\\n\");\n }\n\n return FakeCliHttpClient.entries.get(key)?.(endpoint, options);\n }\n\n $onDestroy() {\n FakeCliHttpClient.entries.clear();\n }\n}\n"]}
1
+ {"version":3,"file":"FakeCliHttpClient.js","sourceRoot":"","sources":["../../src/FakeCliHttpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAuB,MAAM,gBAAgB,CAAC;AAGnE,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClD,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,EAAe,CAAC;IAExC,GAAG,CAAC,QAAgB,EAAE,UAAgC,EAAE;QACtD,MAAM,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAErD,IAAI,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;YACrC,OAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,WAAW,EAAE;oBACX,MAAM,EAAE,OAAO;iBAChB;aACF,CAAC,CAAC;SACJ;QAED,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;SAC9E;QAED,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,UAAU;QACR,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC","sourcesContent":["export * from \"./CliPlatformTest\";\nexport * from \"./FakeCliFs\";\nexport * from \"./FakeCliHttpClient\";\nexport * from \"./normalizePath\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalizePath.js","sourceRoot":"","sources":["../../src/normalizePath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAE5C,MAAM,UAAU,aAAa,CAAC,IAAS;IACrC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;QAClB,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;KAC7B;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC","sourcesContent":["import {isString} from \"@tsed/core\";\nimport normalize_path from \"normalize-path\";\n\nexport function normalizePath(item: any) {\n if (isString(item)) {\n return normalize_path(item);\n }\n\n return item.map(normalizePath);\n}\n"]}
1
+ {"version":3,"file":"normalizePath.js","sourceRoot":"","sources":["../../src/normalizePath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAE5C,MAAM,UAAU,aAAa,CAAC,IAAS;IACrC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;QAClB,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;KAC7B;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC"}