@tsed/cli-testing 3.20.16 → 3.21.0-rc.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.
- package/lib/{CliPlatformTest.js → cjs/CliPlatformTest.js} +0 -0
- package/lib/cjs/CliPlatformTest.js.map +1 -0
- package/lib/{FakeCliExeca.js → cjs/FakeCliExeca.js} +0 -0
- package/lib/cjs/FakeCliExeca.js.map +1 -0
- package/lib/{FakeCliFs.js → cjs/FakeCliFs.js} +0 -0
- package/lib/cjs/FakeCliFs.js.map +1 -0
- package/lib/{FakeCliHttpClient.js → cjs/FakeCliHttpClient.js} +0 -0
- package/lib/cjs/FakeCliHttpClient.js.map +1 -0
- package/lib/{index.js → cjs/index.js} +0 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/{normalizePath.js → cjs/normalizePath.js} +3 -1
- package/lib/cjs/normalizePath.js.map +1 -0
- package/lib/cjs/package.json +3 -0
- package/lib/esm/CliPlatformTest.js +85 -0
- package/lib/esm/CliPlatformTest.js.map +1 -0
- package/lib/esm/FakeCliExeca.js +31 -0
- package/lib/esm/FakeCliExeca.js.map +1 -0
- package/lib/esm/FakeCliFs.js +37 -0
- package/lib/esm/FakeCliFs.js.map +1 -0
- package/lib/esm/FakeCliHttpClient.js +23 -0
- package/lib/esm/FakeCliHttpClient.js.map +1 -0
- package/lib/esm/index.js +5 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/normalizePath.js +9 -0
- package/lib/esm/normalizePath.js.map +1 -0
- package/lib/esm/package.json +3 -0
- package/lib/{CliPlatformTest.d.ts → types/CliPlatformTest.d.ts} +0 -0
- package/lib/{FakeCliExeca.d.ts → types/FakeCliExeca.d.ts} +0 -0
- package/lib/{FakeCliFs.d.ts → types/FakeCliFs.d.ts} +1 -0
- package/lib/{FakeCliHttpClient.d.ts → types/FakeCliHttpClient.d.ts} +0 -0
- package/lib/{index.d.ts → types/index.d.ts} +0 -0
- package/lib/{normalizePath.d.ts → types/normalizePath.d.ts} +0 -0
- package/package.json +21 -9
- package/tsconfig.compile.esm.json +21 -0
- package/lib/CliPlatformTest.js.map +0 -1
- package/lib/FakeCliExeca.js.map +0 -1
- package/lib/FakeCliFs.js.map +0 -1
- package/lib/FakeCliHttpClient.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/normalizePath.js.map +0 -1
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliPlatformTest.js","sourceRoot":"","sources":["../../src/CliPlatformTest.ts"],"names":[],"mappings":";;;AAAA,6CAWwB;AAExB,iDAA4C;AAC5C,2CAAsC;AACtC,2DAAsD;AACtD,iCAAyC;AAOzC,MAAa,eAAgB,SAAQ,iBAAM;IACzC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,UAAuC,EAAE;QAC9D,iBAAM,CAAC,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC;YAC/C,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,gBAAgB;gBAC5C,MAAM,EAAE,KAAK;gBACb,UAAU,EAAE,SAAS;gBACrB,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;aAC3B;YACD,GAAG,OAAO;SACX,CAAC,CAAC;QAEH,iBAAM,CAAC,QAAQ;aACZ,WAAW,CAAC,wBAAa,EAAE;YAC1B,QAAQ,EAAE,qCAAiB;SAC5B,CAAC;aACD,WAAW,CAAC,gBAAK,EAAE;YAClB,QAAQ,EAAE,qBAAS;SACpB,CAAC;aACD,WAAW,CAAC,mBAAQ,EAAE;YACrB,QAAQ,EAAE,2BAAY;SACvB,CAAC;aACD,WAAW,CAAC,kBAAO,CAAC,CAAC;QAExB,MAAM,iBAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,iBAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvC,eAAe,CAAC,GAAG,CAAC,qBAAU,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAuC,EAAE,EAAE,aAAmB,kBAAO;QACvF,iBAAM,CAAC,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC;YAC/C,IAAI,EAAE,MAAM;YACZ,GAAG,OAAO;SACX,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAA,oBAAe,GAAE,CAAC;QACpC,MAAM,iBAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,UAAuC,EAAE;QAC7D,MAAM,QAAQ,GAAG,IAAA,yBAAc,EAAC;YAC9B,GAAG,OAAO;YACV,GAAG,EAAE;gBACH,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,OAAO;aACV;YACR,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO;gBAChB,MAAM,EAAE,KAAK;gBACb,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;aAC3B;SACF,CAAC,CAAC;QAEH,QAAQ,CAAC,QAAQ,CAAC,GAAG,GAAG,cAAG,CAAC,IAAI,CAAC;QAEjC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,MAAM,CAAI,OAAc,EAAE,IAAwC;QACvE,OAAO,KAAK,IAAgB,EAAE;YAC5B,IAAI,CAAC,iBAAM,CAAC,WAAW,EAAE,EAAE;gBACzB,MAAM,eAAe,CAAC,MAAM,EAAE,CAAC;aAChC;YAED,MAAM,QAAQ,GAAoB,iBAAM,CAAC,QAAQ,CAAC;YAClD,MAAM,IAAI,GAAG,EAAE,CAAC;YAEhB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;aACxF;YAED,OAAO,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC;CACF;AAzFD,0CAyFC","sourcesContent":["import {\n CliCore,\n CliExeca,\n CliFs,\n CliHttpClient,\n CliService,\n createInjector,\n DITest,\n Env,\n InjectorService,\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 {createContainer} from \"@tsed/di\";\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 DITest.injector = CliPlatformTest.createInjector({\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\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 DITest.injector = CliPlatformTest.createInjector({\n name: \"tsed\",\n ...options\n });\n const container = createContainer();\n await DITest.injector.load(container, rootModule);\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 });\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"]}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeCliExeca.js","sourceRoot":"","sources":["../../src/FakeCliExeca.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AACxC,+BAAgC;AAEhC,MAAa,YAAa,SAAQ,mBAAQ;IAGxC,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;AA/BQ,oBAAO,GAAG,IAAI,GAAG,EAAkB,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"]}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeCliFs.js","sourceRoot":"","sources":["../../src/FakeCliFs.ts"],"names":[],"mappings":";;;AAEA,mDAA8C;AAE9C,MAAa,SAAS;IAGpB,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,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,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;;AA1CH,8BA2CC;AA1CQ,iBAAO,GAAG,IAAI,GAAG,EAAe,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 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 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"]}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeCliHttpClient.js","sourceRoot":"","sources":["../../src/FakeCliHttpClient.ts"],"names":[],"mappings":";;;AAAA,6CAAmE;AAGnE,MAAa,iBAAkB,SAAQ,wBAAa;IAGlD,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,MAAA,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,0CAAG,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,UAAU;QACR,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;;AAvBH,8CAwBC;AAvBQ,yBAAO,GAAG,IAAI,GAAG,EAAe,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"]}
|
|
File without changes
|
|
@@ -0,0 +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,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.normalizePath = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
4
5
|
const core_1 = require("@tsed/core");
|
|
6
|
+
const normalize_path_1 = tslib_1.__importDefault(require("normalize-path"));
|
|
5
7
|
function normalizePath(item) {
|
|
6
8
|
if ((0, core_1.isString)(item)) {
|
|
7
|
-
return
|
|
9
|
+
return (0, normalize_path_1.default)(item);
|
|
8
10
|
}
|
|
9
11
|
return item.map(normalizePath);
|
|
10
12
|
}
|
|
@@ -0,0 +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"]}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { CliCore, CliExeca, CliFs, CliHttpClient, CliService, createInjector, DITest, Env } from "@tsed/cli-core";
|
|
2
|
+
import { FakeCliExeca } from "./FakeCliExeca.js";
|
|
3
|
+
import { FakeCliFs } from "./FakeCliFs.js";
|
|
4
|
+
import { FakeCliHttpClient } from "./FakeCliHttpClient.js";
|
|
5
|
+
import { createContainer } from "@tsed/di";
|
|
6
|
+
export class CliPlatformTest extends DITest {
|
|
7
|
+
static async bootstrap(options = {}) {
|
|
8
|
+
DITest.injector = CliPlatformTest.createInjector({
|
|
9
|
+
name: "tsed",
|
|
10
|
+
project: {
|
|
11
|
+
rootDir: options.rootDir || "./project-name",
|
|
12
|
+
srcDir: "src",
|
|
13
|
+
scriptsDir: "scripts",
|
|
14
|
+
...(options.project || {})
|
|
15
|
+
},
|
|
16
|
+
...options
|
|
17
|
+
});
|
|
18
|
+
DITest.injector
|
|
19
|
+
.addProvider(CliHttpClient, {
|
|
20
|
+
useClass: FakeCliHttpClient
|
|
21
|
+
})
|
|
22
|
+
.addProvider(CliFs, {
|
|
23
|
+
useClass: FakeCliFs
|
|
24
|
+
})
|
|
25
|
+
.addProvider(CliExeca, {
|
|
26
|
+
useClass: FakeCliExeca
|
|
27
|
+
})
|
|
28
|
+
.addProvider(CliCore);
|
|
29
|
+
await DITest.injector.load();
|
|
30
|
+
await DITest.injector.emit("$onReady");
|
|
31
|
+
CliPlatformTest.get(CliService).load();
|
|
32
|
+
}
|
|
33
|
+
static async create(options = {}, rootModule = CliCore) {
|
|
34
|
+
DITest.injector = CliPlatformTest.createInjector({
|
|
35
|
+
name: "tsed",
|
|
36
|
+
...options
|
|
37
|
+
});
|
|
38
|
+
const container = createContainer();
|
|
39
|
+
await DITest.injector.load(container, rootModule);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Create a new injector with the right default services
|
|
43
|
+
*/
|
|
44
|
+
static createInjector(options = {}) {
|
|
45
|
+
const injector = createInjector({
|
|
46
|
+
...options,
|
|
47
|
+
pkg: {
|
|
48
|
+
name: "@tsed/cli-testing",
|
|
49
|
+
version: "1.0.0"
|
|
50
|
+
},
|
|
51
|
+
project: {
|
|
52
|
+
rootDir: "./tmp",
|
|
53
|
+
srcDir: "src",
|
|
54
|
+
...(options.project || {})
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
injector.settings.env = Env.TEST;
|
|
58
|
+
return injector;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* It injects services into the test function where you can alter, spy on, and manipulate them.
|
|
62
|
+
*
|
|
63
|
+
* The inject function has two parameters
|
|
64
|
+
*
|
|
65
|
+
* * an array of Service dependency injection tokens,
|
|
66
|
+
* * a test function whose parameters correspond exactly to each item in the injection token array.
|
|
67
|
+
*
|
|
68
|
+
* @param targets
|
|
69
|
+
* @param func
|
|
70
|
+
*/
|
|
71
|
+
static inject(targets, func) {
|
|
72
|
+
return async () => {
|
|
73
|
+
if (!DITest.hasInjector()) {
|
|
74
|
+
await CliPlatformTest.create();
|
|
75
|
+
}
|
|
76
|
+
const injector = DITest.injector;
|
|
77
|
+
const deps = [];
|
|
78
|
+
for (const target of targets) {
|
|
79
|
+
deps.push(injector.has(target) ? injector.get(target) : await injector.invoke(target));
|
|
80
|
+
}
|
|
81
|
+
return await func(...deps);
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=CliPlatformTest.js.map
|
|
@@ -0,0 +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 InjectorService,\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 {createContainer} from \"@tsed/di\";\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 DITest.injector = CliPlatformTest.createInjector({\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\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 DITest.injector = CliPlatformTest.createInjector({\n name: \"tsed\",\n ...options\n });\n const container = createContainer();\n await DITest.injector.load(container, rootModule);\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 });\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"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { CliExeca } from "@tsed/cli-core";
|
|
2
|
+
import { Observable } from "rxjs";
|
|
3
|
+
export class FakeCliExeca extends CliExeca {
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5
|
+
run(cmd, args, opts) {
|
|
6
|
+
const result = FakeCliExeca.entries.get(cmd + " " + args.join(" "));
|
|
7
|
+
return new Observable((observer) => {
|
|
8
|
+
observer.next(result);
|
|
9
|
+
observer.complete();
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
13
|
+
async getAsync(cmd, args, opts) {
|
|
14
|
+
if (["npm"].includes(cmd) && args.includes("view")) {
|
|
15
|
+
return JSON.stringify({
|
|
16
|
+
"dist-tags": {
|
|
17
|
+
latest: "1.0.0"
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return FakeCliExeca.entries.get(cmd + " " + args.join(" "));
|
|
22
|
+
}
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
24
|
+
runSync(cmd, args, opts) {
|
|
25
|
+
return {
|
|
26
|
+
stdout: FakeCliExeca.entries.get(cmd + " " + args.join(" "))
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
FakeCliExeca.entries = new Map();
|
|
31
|
+
//# sourceMappingURL=FakeCliExeca.js.map
|
|
@@ -0,0 +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;IAGxC,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;;AA9BM,oBAAO,GAAG,IAAI,GAAG,EAAkB,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"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { normalizePath } from "./normalizePath.js";
|
|
2
|
+
export class FakeCliFs {
|
|
3
|
+
static getKeys() {
|
|
4
|
+
return normalizePath(Array.from(FakeCliFs.entries.keys()).sort((a, b) => (a < b ? -1 : 1)));
|
|
5
|
+
}
|
|
6
|
+
findUpFile() {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
exists(path) {
|
|
10
|
+
return FakeCliFs.entries.has(normalizePath(path));
|
|
11
|
+
}
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
13
|
+
async readFile(file, encoding) {
|
|
14
|
+
return FakeCliFs.entries.get(normalizePath(file));
|
|
15
|
+
}
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
|
+
writeFileSync(path, data, options) {
|
|
18
|
+
FakeCliFs.entries.set(normalizePath(path), data);
|
|
19
|
+
}
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
21
|
+
writeFile(file, data, options) {
|
|
22
|
+
FakeCliFs.entries.set(normalizePath(file), data);
|
|
23
|
+
}
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
25
|
+
async ensureDir(path, options) {
|
|
26
|
+
FakeCliFs.entries.set(normalizePath(path), path);
|
|
27
|
+
}
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
29
|
+
ensureDirSync(path, options) {
|
|
30
|
+
FakeCliFs.entries.set(normalizePath(path), path);
|
|
31
|
+
}
|
|
32
|
+
$onDestroy() {
|
|
33
|
+
FakeCliFs.entries.clear();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
FakeCliFs.entries = new Map();
|
|
37
|
+
//# sourceMappingURL=FakeCliFs.js.map
|
|
@@ -0,0 +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;IAGpB,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,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,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;;AAzCM,iBAAO,GAAG,IAAI,GAAG,EAAe,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 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 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"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { CliHttpClient } from "@tsed/cli-core";
|
|
2
|
+
export class FakeCliHttpClient extends CliHttpClient {
|
|
3
|
+
async get(endpoint, options = {}) {
|
|
4
|
+
var _a;
|
|
5
|
+
const key = endpoint + ":" + JSON.stringify(options);
|
|
6
|
+
if (key.includes("https://registry.")) {
|
|
7
|
+
return {
|
|
8
|
+
"dist-tags": {
|
|
9
|
+
latest: "1.0.0"
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
if (!FakeCliHttpClient.entries.has(key)) {
|
|
14
|
+
process.stdout.write("Entries missing for FakeCliHttpClient: " + key + "\n");
|
|
15
|
+
}
|
|
16
|
+
return (_a = FakeCliHttpClient.entries.get(key)) === null || _a === void 0 ? void 0 : _a(endpoint, options);
|
|
17
|
+
}
|
|
18
|
+
$onDestroy() {
|
|
19
|
+
FakeCliHttpClient.entries.clear();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
FakeCliHttpClient.entries = new Map();
|
|
23
|
+
//# sourceMappingURL=FakeCliHttpClient.js.map
|
|
@@ -0,0 +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;IAGlD,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,MAAA,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,0CAAG,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,UAAU;QACR,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;;AAtBM,yBAAO,GAAG,IAAI,GAAG,EAAe,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"]}
|
package/lib/esm/index.js
ADDED
|
@@ -0,0 +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"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { isString } from "@tsed/core";
|
|
2
|
+
import normalize_path from "normalize-path";
|
|
3
|
+
export function normalizePath(item) {
|
|
4
|
+
if (isString(item)) {
|
|
5
|
+
return normalize_path(item);
|
|
6
|
+
}
|
|
7
|
+
return item.map(normalizePath);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=normalizePath.js.map
|
|
@@ -0,0 +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"]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsed/cli-testing",
|
|
3
|
-
"version": "3.
|
|
4
|
-
"main": "./lib/index.js",
|
|
5
|
-
"typings": "./lib/index.d.ts",
|
|
3
|
+
"version": "3.21.0-rc.1",
|
|
6
4
|
"description": "Utils to test you CLI based on Ts.ED CLI",
|
|
5
|
+
"source": "./src/index.ts",
|
|
6
|
+
"main": "./lib/cjs/index.js",
|
|
7
|
+
"module": "./lib/esm/index.js",
|
|
8
|
+
"typings": "./lib/types/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
"types": "./lib/types/index.d.ts",
|
|
11
|
+
"import": "./lib/esm/index.js",
|
|
12
|
+
"require": "./lib/cjs/index.js",
|
|
13
|
+
"default": "./lib/esm/index.js"
|
|
14
|
+
},
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "yarn run build:esm && yarn run build:cjs",
|
|
17
|
+
"build:cjs": "tsc --build tsconfig.compile.json",
|
|
18
|
+
"build:esm": "tsc --build tsconfig.compile.esm.json"
|
|
19
|
+
},
|
|
7
20
|
"keywords": [
|
|
8
21
|
"Ts.ED",
|
|
9
22
|
"cli",
|
|
@@ -15,13 +28,9 @@
|
|
|
15
28
|
"decorators"
|
|
16
29
|
],
|
|
17
30
|
"dependencies": {
|
|
18
|
-
"@tsed/cli-core": "3.
|
|
31
|
+
"@tsed/cli-core": "3.21.0-rc.1",
|
|
19
32
|
"tslib": "2.3.1"
|
|
20
33
|
},
|
|
21
|
-
"scripts": {
|
|
22
|
-
"build": "tsc --build tsconfig.compile.json",
|
|
23
|
-
"build:doc": "tsc --build tsconfig.doc.json"
|
|
24
|
-
},
|
|
25
34
|
"devDependencies": {},
|
|
26
35
|
"peerDependencies": {},
|
|
27
36
|
"repository": "https://github.com/tsedio/tsed-cli",
|
|
@@ -30,5 +39,8 @@
|
|
|
30
39
|
},
|
|
31
40
|
"homepage": "https://github.com/tsedio/tsed-cli/tree/master/packages/cli-testing",
|
|
32
41
|
"author": "Romain Lenzotti",
|
|
33
|
-
"license": "MIT"
|
|
42
|
+
"license": "MIT",
|
|
43
|
+
"publishConfig": {
|
|
44
|
+
"tag": "rc"
|
|
45
|
+
}
|
|
34
46
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "./tsconfig.compile.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"baseUrl": ".",
|
|
5
|
+
"module": "ES2020",
|
|
6
|
+
"rootDir": "src",
|
|
7
|
+
"outDir": "./lib/esm",
|
|
8
|
+
"declaration": true,
|
|
9
|
+
"declarationDir": "./lib/types"
|
|
10
|
+
},
|
|
11
|
+
"exclude": [
|
|
12
|
+
"node_modules",
|
|
13
|
+
"test",
|
|
14
|
+
"lib",
|
|
15
|
+
"coverage",
|
|
16
|
+
".nyc_output",
|
|
17
|
+
"**/*.spec.ts",
|
|
18
|
+
"jest.config.js",
|
|
19
|
+
"templates"
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CliPlatformTest.js","sourceRoot":"","sources":["../src/CliPlatformTest.ts"],"names":[],"mappings":";;;AAAA,6CAWwB;AAExB,iDAA4C;AAC5C,2CAAsC;AACtC,2DAAsD;AACtD,iCAAyC;AAOzC,MAAa,eAAgB,SAAQ,iBAAM;IACzC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,UAAuC,EAAE;QAC9D,iBAAM,CAAC,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC;YAC/C,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,gBAAgB;gBAC5C,MAAM,EAAE,KAAK;gBACb,UAAU,EAAE,SAAS;gBACrB,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;aAC3B;YACD,GAAG,OAAO;SACX,CAAC,CAAC;QAEH,iBAAM,CAAC,QAAQ;aACZ,WAAW,CAAC,wBAAa,EAAE;YAC1B,QAAQ,EAAE,qCAAiB;SAC5B,CAAC;aACD,WAAW,CAAC,gBAAK,EAAE;YAClB,QAAQ,EAAE,qBAAS;SACpB,CAAC;aACD,WAAW,CAAC,mBAAQ,EAAE;YACrB,QAAQ,EAAE,2BAAY;SACvB,CAAC;aACD,WAAW,CAAC,kBAAO,CAAC,CAAC;QAExB,MAAM,iBAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,iBAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvC,eAAe,CAAC,GAAG,CAAC,qBAAU,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAuC,EAAE,EAAE,aAAmB,kBAAO;QACvF,iBAAM,CAAC,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC;YAC/C,IAAI,EAAE,MAAM;YACZ,GAAG,OAAO;SACX,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAA,oBAAe,GAAE,CAAC;QACpC,MAAM,iBAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,UAAuC,EAAE;QAC7D,MAAM,QAAQ,GAAG,IAAA,yBAAc,EAAC;YAC9B,GAAG,OAAO;YACV,GAAG,EAAE;gBACH,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,OAAO;aACV;YACR,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO;gBAChB,MAAM,EAAE,KAAK;gBACb,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;aAC3B;SACF,CAAC,CAAC;QAEH,QAAQ,CAAC,QAAQ,CAAC,GAAG,GAAG,cAAG,CAAC,IAAI,CAAC;QAEjC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,MAAM,CAAI,OAAc,EAAE,IAAwC;QACvE,OAAO,KAAK,IAAgB,EAAE;YAC5B,IAAI,CAAC,iBAAM,CAAC,WAAW,EAAE,EAAE;gBACzB,MAAM,eAAe,CAAC,MAAM,EAAE,CAAC;aAChC;YAED,MAAM,QAAQ,GAAoB,iBAAM,CAAC,QAAQ,CAAC;YAClD,MAAM,IAAI,GAAG,EAAE,CAAC;YAEhB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;aACxF;YAED,OAAO,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC;CACF;AAzFD,0CAyFC","sourcesContent":["import {\n CliCore,\n CliExeca,\n CliFs,\n CliHttpClient,\n CliService,\n createInjector,\n DITest,\n Env,\n InjectorService,\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 {createContainer} from \"@tsed/di\";\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 DITest.injector = CliPlatformTest.createInjector({\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\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 DITest.injector = CliPlatformTest.createInjector({\n name: \"tsed\",\n ...options\n });\n const container = createContainer();\n await DITest.injector.load(container, rootModule);\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 });\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"]}
|
package/lib/FakeCliExeca.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FakeCliExeca.js","sourceRoot":"","sources":["../src/FakeCliExeca.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AACxC,+BAAgC;AAEhC,MAAa,YAAa,SAAQ,mBAAQ;IAGxC,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;AA/BQ,oBAAO,GAAG,IAAI,GAAG,EAAkB,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"]}
|
package/lib/FakeCliFs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FakeCliFs.js","sourceRoot":"","sources":["../src/FakeCliFs.ts"],"names":[],"mappings":";;;AAEA,mDAA8C;AAE9C,MAAa,SAAS;IAGpB,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,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,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;;AA1CH,8BA2CC;AA1CQ,iBAAO,GAAG,IAAI,GAAG,EAAe,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 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 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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FakeCliHttpClient.js","sourceRoot":"","sources":["../src/FakeCliHttpClient.ts"],"names":[],"mappings":";;;AAAA,6CAAmE;AAGnE,MAAa,iBAAkB,SAAQ,wBAAa;IAGlD,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,MAAA,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,0CAAG,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,UAAU;QACR,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;;AAvBH,8CAwBC;AAvBQ,yBAAO,GAAG,IAAI,GAAG,EAAe,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"]}
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"]}
|
package/lib/normalizePath.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalizePath.js","sourceRoot":"","sources":["../src/normalizePath.ts"],"names":[],"mappings":";;;AAAA,qCAAoC;AAEpC,SAAgB,aAAa,CAAC,IAAS;IACrC,IAAI,IAAA,eAAQ,EAAC,IAAI,CAAC,EAAE;QAClB,OAAO,OAAO,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC;KACxC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC;AAND,sCAMC","sourcesContent":["import {isString} from \"@tsed/core\";\n\nexport function normalizePath(item: any) {\n if (isString(item)) {\n return require(\"normalize-path\")(item);\n }\n\n return item.map(normalizePath);\n}\n"]}
|