@tsed/cli-core 3.21.0-rc.3 → 3.21.0-rc.4
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/cjs/services/CliExeca.js.map +1 -1
- package/lib/cjs/services/CliRunScript.js +2 -2
- package/lib/cjs/services/CliRunScript.js.map +1 -1
- package/lib/cjs/services/NpmRegistryClient.js +1 -1
- package/lib/cjs/services/NpmRegistryClient.js.map +1 -1
- package/lib/cjs/services/Renderer.js +6 -4
- package/lib/cjs/services/Renderer.js.map +1 -1
- package/lib/esm/services/CliExeca.js.map +1 -1
- package/lib/esm/services/CliRunScript.js +2 -2
- package/lib/esm/services/CliRunScript.js.map +1 -1
- package/lib/esm/services/NpmRegistryClient.js +1 -1
- package/lib/esm/services/NpmRegistryClient.js.map +1 -1
- package/lib/esm/services/Renderer.js +6 -4
- package/lib/esm/services/Renderer.js.map +1 -1
- package/lib/types/services/CliExeca.d.ts +20 -19
- package/lib/types/services/CliHttpClient.d.ts +1 -1
- package/package.json +17 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CliExeca.js","sourceRoot":"","sources":["../../../src/services/CliExeca.ts"],"names":[],"mappings":";;;;AAAA,iCAAoC;
|
|
1
|
+
{"version":3,"file":"CliExeca.js","sourceRoot":"","sources":["../../../src/services/CliExeca.ts"],"names":[],"mappings":";;;;AAAA,iCAAoC;AAEpC,0DAA0B;AAC1B,8CAA6C;AAC7C,4CAA0C;AAE1C,6DAA6D;AAC7D,aAAa;AACb,wGAAsE;AACtE,6DAA6D;AAC7D,aAAa;AACb,0DAA0B;AAG1B,IAAa,QAAQ,GAArB,MAAa,QAAQ;IAArB;QACW,QAAG,GAAG,eAAK,CAAC;IA2BvB,CAAC;IAzBC;;;;;OAKG;IACH,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,IAAc;QAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,IAAA,8BAAkB,EAAC,EAAE,CAAC,MAAO,CAAC,IAAI,CAAC,IAAA,eAAK,GAAE,CAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,IAAA,8BAAkB,EAAC,EAAE,CAAC,MAAO,CAAC,IAAI,CAAC,IAAA,eAAK,GAAE,CAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC;QAEzE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAA,iBAAK,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,kBAAM,EAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,IAAc,EAAE,IAAkB;QACrD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,IAAc,EAAE,IAAkB;QAC5D,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAClD,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,IAAkB;QACjD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC;IAC/C,CAAC;CACF,CAAA;AA5BY,QAAQ;IADpB,IAAA,eAAU,GAAE;GACA,QAAQ,CA4BpB;AA5BY,4BAAQ","sourcesContent":["import {Injectable} from \"@tsed/di\";\nimport type {SyncOptions, Options} from \"execa\";\nimport execa from \"execa\";\nimport {filter, merge} from \"rxjs/operators\";\nimport \"any-observable/register/rxjs-all\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport streamToObservable from \"@samverschueren/stream-to-observable\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport split from \"split\";\n\n@Injectable()\nexport class CliExeca {\n readonly raw = execa;\n\n /**\n *\n * @param cmd\n * @param args\n * @param opts\n */\n run(cmd: string, args: string[], opts?: Options) {\n const cp = this.raw(cmd, args, opts);\n const stdout = streamToObservable(cp.stdout!.pipe(split()), {await: cp});\n const stderr = streamToObservable(cp.stderr!.pipe(split()), {await: cp});\n\n return stdout.pipe(merge(stderr)).pipe(filter(Boolean));\n }\n\n runSync(cmd: string, args: string[], opts?: SyncOptions) {\n return this.raw.sync(cmd, args, opts);\n }\n\n async getAsync(cmd: string, args: string[], opts?: SyncOptions) {\n return (await this.raw(cmd, args, opts)).stdout;\n }\n\n get(cmd: string, args: string[], opts?: SyncOptions) {\n return this.raw.sync(cmd, args, opts).stdout;\n }\n}\n"]}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CliRunScript = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const di_1 = require("@tsed/di");
|
|
6
|
-
const ProjectPackageJson_1 = require("./ProjectPackageJson");
|
|
7
5
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
8
6
|
// @ts-ignore
|
|
9
7
|
const run_script_1 = tslib_1.__importDefault(require("@npmcli/run-script"));
|
|
8
|
+
const di_1 = require("@tsed/di");
|
|
9
|
+
const ProjectPackageJson_1 = require("./ProjectPackageJson");
|
|
10
10
|
let CliRunScript = class CliRunScript {
|
|
11
11
|
run(cmd, args, options = {}) {
|
|
12
12
|
return (0, run_script_1.default)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CliRunScript.js","sourceRoot":"","sources":["../../../src/services/CliRunScript.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"CliRunScript.js","sourceRoot":"","sources":["../../../src/services/CliRunScript.ts"],"names":[],"mappings":";;;;AAAA,6DAA6D;AAC7D,aAAa;AACb,4EAA2C;AAC3C,iCAA4C;AAC5C,6DAAwD;AAGxD,IAAa,YAAY,GAAzB,MAAa,YAAY;IAIvB,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,UAAe,EAAE;QAChD,OAAO,IAAA,oBAAS,EAAC;YACf,KAAK,EAAE,KAAK;YACZ,GAAG,OAAO;YACV,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC/B,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG;YAChD,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;YACjC,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAbC;IADC,IAAA,WAAM,GAAE;sCACW,uCAAkB;wDAAC;AAF5B,YAAY;IADxB,IAAA,eAAU,GAAE;GACA,YAAY,CAexB;AAfY,oCAAY","sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport runScript from \"@npmcli/run-script\";\nimport {Inject, Injectable} from \"@tsed/di\";\nimport {ProjectPackageJson} from \"./ProjectPackageJson\";\n\n@Injectable()\nexport class CliRunScript {\n @Inject()\n projectPackageJson: ProjectPackageJson;\n\n run(cmd: string, args: string[], options: any = {}) {\n return runScript({\n event: \"run\",\n ...options,\n cmd: `${cmd} ${args.join(\" \")}`,\n path: options.cwd || this.projectPackageJson.dir,\n env: options.env || {},\n stdio: options.stdio || \"inherit\",\n banner: false\n });\n }\n}\n"]}
|
|
@@ -5,8 +5,8 @@ exports.NpmRegistryClient = exports.SCOPE_SEPARATOR = exports.addSuffix = void 0
|
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const di_1 = require("@tsed/di");
|
|
7
7
|
const url_1 = tslib_1.__importDefault(require("url"));
|
|
8
|
-
const CliHttpClient_1 = require("./CliHttpClient");
|
|
9
8
|
const registry_url_1 = tslib_1.__importDefault(require("registry-url"));
|
|
9
|
+
const CliHttpClient_1 = require("./CliHttpClient");
|
|
10
10
|
const HOST = (0, registry_url_1.default)();
|
|
11
11
|
const REGEX_REGISTRY_ENFORCED_HTTPS = /^https?:\/\/([^\/]+\.)?(yarnpkg\.com|npmjs\.(org|com))(\/|$)/;
|
|
12
12
|
const REGEX_REGISTRY_PREFIX = /^(https?:)?\/\//i;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NpmRegistryClient.js","sourceRoot":"","sources":["../../../src/services/NpmRegistryClient.ts"],"names":[],"mappings":";;;;;AAAA,iCAA4C;AAC5C,sDAAsB;
|
|
1
|
+
{"version":3,"file":"NpmRegistryClient.js","sourceRoot":"","sources":["../../../src/services/NpmRegistryClient.ts"],"names":[],"mappings":"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","sourcesContent":["import {Inject, Injectable} from \"@tsed/di\";\nimport url from \"url\";\nimport registry_url from \"registry-url\";\nimport {PackageInfo} from \"../interfaces/PackageJson\";\nimport {CliHttpClient} from \"./CliHttpClient\";\n\nconst HOST = registry_url();\nconst REGEX_REGISTRY_ENFORCED_HTTPS = /^https?:\\/\\/([^\\/]+\\.)?(yarnpkg\\.com|npmjs\\.(org|com))(\\/|$)/;\nconst REGEX_REGISTRY_PREFIX = /^(https?:)?\\/\\//i;\n\nexport function addSuffix(pattern: string, suffix: string): string {\n if (!pattern.endsWith(suffix)) {\n return pattern + suffix;\n }\n\n return pattern;\n}\n\nexport const SCOPE_SEPARATOR = \"%2f\";\n\n@Injectable()\nexport class NpmRegistryClient {\n @Inject(CliHttpClient)\n private httpClient: CliHttpClient;\n\n static escapeName(name: string): string {\n // scoped packages contain slashes and the npm registry expects them to be escaped\n return name.replace(\"/\", SCOPE_SEPARATOR);\n }\n\n async request(pathname: string, opts: any = {}): Promise<any> {\n const registry = opts.registry || HOST;\n const requestUrl = this.getRequestUrl(registry, pathname);\n\n const headers = {\n Accept: opts.unfiltered ? \"application/json\" : \"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*\",\n ...opts.headers\n };\n\n try {\n return await this.httpClient.get(requestUrl, {\n ...opts,\n headers\n });\n } catch (error) {\n if (opts.retry) {\n await new Promise((resolve: any) => setTimeout(resolve, 200));\n opts.retry -= 1;\n opts.unfiltered = true;\n\n return this.request(NpmRegistryClient.escapeName(pathname), opts);\n }\n\n throw error;\n }\n }\n\n getRequestUrl(registry: string, pathname: string): string {\n let resolved = pathname;\n\n if (!REGEX_REGISTRY_PREFIX.test(pathname)) {\n resolved = url.resolve(addSuffix(registry, \"/\"), pathname);\n }\n\n if (REGEX_REGISTRY_ENFORCED_HTTPS.test(resolved)) {\n resolved = resolved.replace(/^http:\\/\\//, \"https://\");\n }\n\n return resolved;\n }\n\n /**\n * Search a module on npm registry\n * @param text\n * @param options\n */\n async search(text: string, options: {size?: number; from?: number; quality?: number; popularity?: number; maintenance?: number} = {}) {\n const {objects: result} = await this.request(`-/v1/search`, {\n headers: {\n \"Accept-Encoding\": \"gzip\"\n },\n qs: {\n text,\n size: 100,\n from: 0,\n quality: 0.65,\n popularity: 0.98,\n maintenance: 0.5,\n ...options\n }\n });\n\n return result;\n }\n\n async info(packageName: string, retry = 0): Promise<PackageInfo> {\n try {\n return await this.request(packageName, {\n headers: {\n \"Accept-Encoding\": \"gzip\"\n },\n unfiltered: false,\n retry\n });\n } catch (er) {\n return retry == 0 ? this.fallback(packageName) : null;\n }\n }\n\n private async fallback(packageName: string) {\n const [{package: pkg}] = await this.search(packageName);\n\n return {\n ...pkg,\n \"dist-tags\": {\n latest: pkg.version\n },\n versions: {\n [pkg.version]: {\n name: packageName,\n version: pkg.version,\n dependencies: {},\n devDependencies: {}\n }\n }\n };\n }\n}\n"]}
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ScriptsRendererService = exports.SrcRendererService = exports.RootRendererService = exports.Renderer = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
const core_1 = require("@tsed/core");
|
|
5
6
|
const di_1 = require("@tsed/di");
|
|
6
7
|
const consolidate_1 = tslib_1.__importDefault(require("consolidate"));
|
|
7
|
-
const normalize_path_1 = tslib_1.__importDefault(require("normalize-path"));
|
|
8
8
|
const fs_extra_1 = require("fs-extra");
|
|
9
|
+
const normalize_path_1 = tslib_1.__importDefault(require("normalize-path"));
|
|
9
10
|
const globby_1 = tslib_1.__importDefault(require("globby"));
|
|
10
11
|
const path_1 = require("path");
|
|
11
12
|
const rxjs_1 = require("rxjs");
|
|
12
13
|
const CliFs_1 = require("./CliFs");
|
|
13
14
|
require("../utils/hbs");
|
|
14
|
-
const core_1 = require("@tsed/core");
|
|
15
15
|
const insertImport_1 = require("../utils/renderer/insertImport");
|
|
16
16
|
const insertAfter_1 = require("../utils/renderer/insertAfter");
|
|
17
17
|
class Renderer {
|
|
@@ -68,11 +68,13 @@ class Renderer {
|
|
|
68
68
|
const { templateDir } = this.mapOptions(path, options);
|
|
69
69
|
return (0, fs_extra_1.existsSync)((0, path_1.join)(templateDir, path));
|
|
70
70
|
}
|
|
71
|
-
scan(pattern, options = {}) {
|
|
72
|
-
|
|
71
|
+
async scan(pattern, options = {}) {
|
|
72
|
+
const result = await (0, globby_1.default)(pattern.map((s) => (0, normalize_path_1.default)(s)), {
|
|
73
73
|
...options,
|
|
74
|
+
objectMode: true,
|
|
74
75
|
cwd: this.rootDir
|
|
75
76
|
});
|
|
77
|
+
return result.map((entry) => entry.path);
|
|
76
78
|
}
|
|
77
79
|
relativeFrom(path) {
|
|
78
80
|
return (0, path_1.relative)((0, path_1.dirname)((0, path_1.join)(this.rootDir, path)), this.rootDir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../src/services/Renderer.ts"],"names":[],"mappings":"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","sourcesContent":["import {Configuration, Constant, Inject, Injectable} from \"@tsed/di\";\nimport Consolidate from \"consolidate\";\nimport normalizePath from \"normalize-path\";\nimport {existsSync} from \"fs-extra\";\nimport globby from \"globby\";\nimport {dirname, join, relative} from \"path\";\nimport {Observable} from \"rxjs\";\nimport {CliFs} from \"./CliFs\";\nimport \"../utils/hbs\";\nimport {isString} from \"@tsed/core\";\nimport {insertImport} from \"../utils/renderer/insertImport\";\nimport {insertAfter} from \"../utils/renderer/insertAfter\";\n\nexport interface RenderOptions {\n path: string;\n templateDir: string;\n rootDir: string;\n output: string;\n baseDir: string;\n basename: string;\n}\n\nexport abstract class Renderer {\n @Configuration()\n protected configuration: Configuration;\n\n @Constant(\"templateDir\")\n templateDir: string;\n\n @Inject()\n fs: CliFs;\n\n abstract get rootDir(): string;\n\n async render(path: string, data: any, options: Partial<RenderOptions> = {}) {\n const {output, templateDir, rootDir} = this.mapOptions(path, options);\n let content = \"\";\n\n const file = normalizePath(join(templateDir, path));\n\n if (path.endsWith(\".hbs\")) {\n content = await Consolidate.handlebars(file, data);\n } else {\n content = await this.fs.readFile(file, {encoding: \"utf8\"});\n }\n\n return this.write(content, {output, rootDir});\n }\n\n async renderAll(paths: (string | RenderOptions)[], data: any, options: Partial<RenderOptions> = {}) {\n let count = 0;\n\n const mapOptions = (opts: string | RenderOptions): Partial<RenderOptions> & {path: string} => {\n if (isString(opts)) {\n return {...options, path: opts};\n }\n\n return {\n ...options,\n ...opts\n };\n };\n\n return new Observable((observer) => {\n observer.next(`[${count}/${paths.length}] Rendering files...`);\n\n const promises = paths\n .filter(Boolean)\n .map(mapOptions)\n .map(async ({path, ...opts}) => {\n await this.render(path, data, opts);\n\n count++;\n observer.next(`[${count}/${paths.length}] Rendering files...`);\n });\n\n Promise.all(promises)\n .then(() => {\n observer.next(`[${count}/${paths.length}] Rendering files...`);\n observer.complete();\n })\n .catch((err) => {\n observer.error(err);\n });\n });\n }\n\n async write(content: string, options: any) {\n const {output, rootDir = this.rootDir} = options;\n const outputFile = join(...[rootDir, output].filter(Boolean));\n\n await this.fs.ensureDir(dirname(outputFile));\n\n return this.fs.writeFile(outputFile, content, {encoding: \"utf8\"});\n }\n\n templateExists(path: string, options: Partial<RenderOptions> = {}) {\n const {templateDir} = this.mapOptions(path, options);\n\n return existsSync(join(templateDir, path));\n }\n\n scan(pattern: string[], options: any = {}) {\n return globby(\n pattern.map((s: string) => normalizePath(s)),\n {\n ...options,\n cwd: this.rootDir\n }\n );\n }\n\n relativeFrom(path: string) {\n return relative(dirname(join(this.rootDir, path)), this.rootDir);\n }\n\n async update(path: string, actions: {type?: string; content: string; pattern?: RegExp}[]) {\n path = join(this.rootDir, path);\n if (!this.fs.exists(path)) {\n return;\n }\n\n const content: string = actions.reduce((fileContent, action) => {\n switch (action.type) {\n case \"import\":\n return insertImport(fileContent, action.content);\n case \"insert-after\":\n return insertAfter(fileContent, action.content, action.pattern!);\n default:\n break;\n }\n\n return fileContent;\n }, await this.fs.readFile(path, {encoding: \"utf8\"}));\n\n return this.fs.writeFile(path, content, {encoding: \"utf8\"});\n }\n\n protected mapOptions(path: string, options: Partial<RenderOptions>) {\n const {templateDir = this.templateDir, rootDir = this.rootDir} = options;\n let {output = path} = options;\n\n if (options.baseDir) {\n output = normalizePath(join(\"/\", relative(options.baseDir, path)));\n }\n\n if (options.basename) {\n output = normalizePath(join(dirname(output), options.basename));\n }\n\n output = output.replace(/\\.hbs$/, \"\");\n\n return {output, templateDir, rootDir};\n }\n}\n\n@Injectable()\nexport class RootRendererService extends Renderer {\n get rootDir() {\n return this.configuration.project?.rootDir as string;\n }\n}\n\n@Injectable()\nexport class SrcRendererService extends Renderer {\n get rootDir() {\n return join(...([this.configuration.project?.rootDir, this.configuration.project?.srcDir].filter(Boolean) as string[]));\n }\n}\n\n@Injectable()\nexport class ScriptsRendererService extends Renderer {\n get rootDir() {\n return join(...([this.configuration.project?.rootDir, this.configuration.project?.scriptsDir].filter(Boolean) as string[]));\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../src/services/Renderer.ts"],"names":[],"mappings":"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","sourcesContent":["import {isString} from \"@tsed/core\";\nimport {Configuration, Constant, Inject, Injectable} from \"@tsed/di\";\nimport Consolidate from \"consolidate\";\nimport {existsSync} from \"fs-extra\";\nimport normalizePath from \"normalize-path\";\nimport globby from \"globby\";\nimport {dirname, join, relative} from \"path\";\nimport {Observable} from \"rxjs\";\nimport {CliFs} from \"./CliFs\";\nimport \"../utils/hbs\";\nimport {insertImport} from \"../utils/renderer/insertImport\";\nimport {insertAfter} from \"../utils/renderer/insertAfter\";\n\nexport interface RenderOptions {\n path: string;\n templateDir: string;\n rootDir: string;\n output: string;\n baseDir: string;\n basename: string;\n}\n\nexport abstract class Renderer {\n @Configuration()\n protected configuration: Configuration;\n\n @Constant(\"templateDir\")\n templateDir: string;\n\n @Inject()\n fs: CliFs;\n\n abstract get rootDir(): string;\n\n async render(path: string, data: any, options: Partial<RenderOptions> = {}) {\n const {output, templateDir, rootDir} = this.mapOptions(path, options);\n let content = \"\";\n\n const file = normalizePath(join(templateDir, path));\n\n if (path.endsWith(\".hbs\")) {\n content = await Consolidate.handlebars(file, data);\n } else {\n content = await this.fs.readFile(file, {encoding: \"utf8\"});\n }\n\n return this.write(content, {output, rootDir});\n }\n\n async renderAll(paths: (string | RenderOptions)[], data: any, options: Partial<RenderOptions> = {}) {\n let count = 0;\n\n const mapOptions = (opts: string | RenderOptions): Partial<RenderOptions> & {path: string} => {\n if (isString(opts)) {\n return {...options, path: opts};\n }\n\n return {\n ...options,\n ...opts\n };\n };\n\n return new Observable((observer) => {\n observer.next(`[${count}/${paths.length}] Rendering files...`);\n\n const promises = paths\n .filter(Boolean)\n .map(mapOptions)\n .map(async ({path, ...opts}) => {\n await this.render(path, data, opts);\n\n count++;\n observer.next(`[${count}/${paths.length}] Rendering files...`);\n });\n\n Promise.all(promises)\n .then(() => {\n observer.next(`[${count}/${paths.length}] Rendering files...`);\n observer.complete();\n })\n .catch((err) => {\n observer.error(err);\n });\n });\n }\n\n async write(content: string, options: any) {\n const {output, rootDir = this.rootDir} = options;\n const outputFile = join(...[rootDir, output].filter(Boolean));\n\n await this.fs.ensureDir(dirname(outputFile));\n\n return this.fs.writeFile(outputFile, content, {encoding: \"utf8\"});\n }\n\n templateExists(path: string, options: Partial<RenderOptions> = {}) {\n const {templateDir} = this.mapOptions(path, options);\n\n return existsSync(join(templateDir, path));\n }\n\n async scan(pattern: string[], options: any = {}): Promise<string[]> {\n const result = await globby(\n pattern.map((s: string) => normalizePath(s)),\n {\n ...options,\n objectMode: true,\n cwd: this.rootDir\n }\n );\n\n return result.map((entry) => entry.path);\n }\n\n relativeFrom(path: string) {\n return relative(dirname(join(this.rootDir, path)), this.rootDir);\n }\n\n async update(path: string, actions: {type?: string; content: string; pattern?: RegExp}[]) {\n path = join(this.rootDir, path);\n if (!this.fs.exists(path)) {\n return;\n }\n\n const content: string = actions.reduce((fileContent, action) => {\n switch (action.type) {\n case \"import\":\n return insertImport(fileContent, action.content);\n case \"insert-after\":\n return insertAfter(fileContent, action.content, action.pattern!);\n default:\n break;\n }\n\n return fileContent;\n }, await this.fs.readFile(path, {encoding: \"utf8\"}));\n\n return this.fs.writeFile(path, content, {encoding: \"utf8\"});\n }\n\n protected mapOptions(path: string, options: Partial<RenderOptions>) {\n const {templateDir = this.templateDir, rootDir = this.rootDir} = options;\n let {output = path} = options;\n\n if (options.baseDir) {\n output = normalizePath(join(\"/\", relative(options.baseDir, path)));\n }\n\n if (options.basename) {\n output = normalizePath(join(dirname(output), options.basename));\n }\n\n output = output.replace(/\\.hbs$/, \"\");\n\n return {output, templateDir, rootDir};\n }\n}\n\n@Injectable()\nexport class RootRendererService extends Renderer {\n get rootDir() {\n return this.configuration.project?.rootDir as string;\n }\n}\n\n@Injectable()\nexport class SrcRendererService extends Renderer {\n get rootDir() {\n return join(...([this.configuration.project?.rootDir, this.configuration.project?.srcDir].filter(Boolean) as string[]));\n }\n}\n\n@Injectable()\nexport class ScriptsRendererService extends Renderer {\n get rootDir() {\n return join(...([this.configuration.project?.rootDir, this.configuration.project?.scriptsDir].filter(Boolean) as string[]));\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CliExeca.js","sourceRoot":"","sources":["../../../src/services/CliExeca.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"CliExeca.js","sourceRoot":"","sources":["../../../src/services/CliExeca.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,kCAAkC,CAAC;AAE1C,6DAA6D;AAC7D,aAAa;AACb,OAAO,kBAAkB,MAAM,sCAAsC,CAAC;AACtE,6DAA6D;AAC7D,aAAa;AACb,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,IAAa,QAAQ,GAArB,MAAa,QAAQ;IAArB;QACW,QAAG,GAAG,KAAK,CAAC;IA2BvB,CAAC;IAzBC;;;;;OAKG;IACH,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,IAAc;QAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC,MAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC,MAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC;QAEzE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,IAAc,EAAE,IAAkB;QACrD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,IAAc,EAAE,IAAkB;QAC5D,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAClD,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,IAAkB;QACjD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC;IAC/C,CAAC;CACF,CAAA;AA5BY,QAAQ;IADpB,UAAU,EAAE;GACA,QAAQ,CA4BpB;SA5BY,QAAQ","sourcesContent":["import {Injectable} from \"@tsed/di\";\nimport type {SyncOptions, Options} from \"execa\";\nimport execa from \"execa\";\nimport {filter, merge} from \"rxjs/operators\";\nimport \"any-observable/register/rxjs-all\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport streamToObservable from \"@samverschueren/stream-to-observable\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport split from \"split\";\n\n@Injectable()\nexport class CliExeca {\n readonly raw = execa;\n\n /**\n *\n * @param cmd\n * @param args\n * @param opts\n */\n run(cmd: string, args: string[], opts?: Options) {\n const cp = this.raw(cmd, args, opts);\n const stdout = streamToObservable(cp.stdout!.pipe(split()), {await: cp});\n const stderr = streamToObservable(cp.stderr!.pipe(split()), {await: cp});\n\n return stdout.pipe(merge(stderr)).pipe(filter(Boolean));\n }\n\n runSync(cmd: string, args: string[], opts?: SyncOptions) {\n return this.raw.sync(cmd, args, opts);\n }\n\n async getAsync(cmd: string, args: string[], opts?: SyncOptions) {\n return (await this.raw(cmd, args, opts)).stdout;\n }\n\n get(cmd: string, args: string[], opts?: SyncOptions) {\n return this.raw.sync(cmd, args, opts).stdout;\n }\n}\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Inject, Injectable } from "@tsed/di";
|
|
3
|
-
import { ProjectPackageJson } from "./ProjectPackageJson.js";
|
|
4
2
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
5
3
|
// @ts-ignore
|
|
6
4
|
import runScript from "@npmcli/run-script";
|
|
5
|
+
import { Inject, Injectable } from "@tsed/di";
|
|
6
|
+
import { ProjectPackageJson } from "./ProjectPackageJson.js";
|
|
7
7
|
let CliRunScript = class CliRunScript {
|
|
8
8
|
run(cmd, args, options = {}) {
|
|
9
9
|
return runScript({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CliRunScript.js","sourceRoot":"","sources":["../../../src/services/CliRunScript.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"CliRunScript.js","sourceRoot":"","sources":["../../../src/services/CliRunScript.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,aAAa;AACb,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAGxD,IAAa,YAAY,GAAzB,MAAa,YAAY;IAIvB,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,UAAe,EAAE;QAChD,OAAO,SAAS,CAAC;YACf,KAAK,EAAE,KAAK;YACZ,GAAG,OAAO;YACV,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC/B,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG;YAChD,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;YACjC,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAbC;IADC,MAAM,EAAE;8BACW,kBAAkB;wDAAC;AAF5B,YAAY;IADxB,UAAU,EAAE;GACA,YAAY,CAexB;SAfY,YAAY","sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport runScript from \"@npmcli/run-script\";\nimport {Inject, Injectable} from \"@tsed/di\";\nimport {ProjectPackageJson} from \"./ProjectPackageJson\";\n\n@Injectable()\nexport class CliRunScript {\n @Inject()\n projectPackageJson: ProjectPackageJson;\n\n run(cmd: string, args: string[], options: any = {}) {\n return runScript({\n event: \"run\",\n ...options,\n cmd: `${cmd} ${args.join(\" \")}`,\n path: options.cwd || this.projectPackageJson.dir,\n env: options.env || {},\n stdio: options.stdio || \"inherit\",\n banner: false\n });\n }\n}\n"]}
|
|
@@ -2,8 +2,8 @@ var NpmRegistryClient_1;
|
|
|
2
2
|
import { __decorate, __metadata } from "tslib";
|
|
3
3
|
import { Inject, Injectable } from "@tsed/di";
|
|
4
4
|
import url from "url";
|
|
5
|
-
import { CliHttpClient } from "./CliHttpClient.js";
|
|
6
5
|
import registry_url from "registry-url";
|
|
6
|
+
import { CliHttpClient } from "./CliHttpClient.js";
|
|
7
7
|
const HOST = registry_url();
|
|
8
8
|
const REGEX_REGISTRY_ENFORCED_HTTPS = /^https?:\/\/([^\/]+\.)?(yarnpkg\.com|npmjs\.(org|com))(\/|$)/;
|
|
9
9
|
const REGEX_REGISTRY_PREFIX = /^(https?:)?\/\//i;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NpmRegistryClient.js","sourceRoot":"","sources":["../../../src/services/NpmRegistryClient.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAC5C,OAAO,GAAG,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"NpmRegistryClient.js","sourceRoot":"","sources":["../../../src/services/NpmRegistryClient.ts"],"names":[],"mappings":"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","sourcesContent":["import {Inject, Injectable} from \"@tsed/di\";\nimport url from \"url\";\nimport registry_url from \"registry-url\";\nimport {PackageInfo} from \"../interfaces/PackageJson\";\nimport {CliHttpClient} from \"./CliHttpClient\";\n\nconst HOST = registry_url();\nconst REGEX_REGISTRY_ENFORCED_HTTPS = /^https?:\\/\\/([^\\/]+\\.)?(yarnpkg\\.com|npmjs\\.(org|com))(\\/|$)/;\nconst REGEX_REGISTRY_PREFIX = /^(https?:)?\\/\\//i;\n\nexport function addSuffix(pattern: string, suffix: string): string {\n if (!pattern.endsWith(suffix)) {\n return pattern + suffix;\n }\n\n return pattern;\n}\n\nexport const SCOPE_SEPARATOR = \"%2f\";\n\n@Injectable()\nexport class NpmRegistryClient {\n @Inject(CliHttpClient)\n private httpClient: CliHttpClient;\n\n static escapeName(name: string): string {\n // scoped packages contain slashes and the npm registry expects them to be escaped\n return name.replace(\"/\", SCOPE_SEPARATOR);\n }\n\n async request(pathname: string, opts: any = {}): Promise<any> {\n const registry = opts.registry || HOST;\n const requestUrl = this.getRequestUrl(registry, pathname);\n\n const headers = {\n Accept: opts.unfiltered ? \"application/json\" : \"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*\",\n ...opts.headers\n };\n\n try {\n return await this.httpClient.get(requestUrl, {\n ...opts,\n headers\n });\n } catch (error) {\n if (opts.retry) {\n await new Promise((resolve: any) => setTimeout(resolve, 200));\n opts.retry -= 1;\n opts.unfiltered = true;\n\n return this.request(NpmRegistryClient.escapeName(pathname), opts);\n }\n\n throw error;\n }\n }\n\n getRequestUrl(registry: string, pathname: string): string {\n let resolved = pathname;\n\n if (!REGEX_REGISTRY_PREFIX.test(pathname)) {\n resolved = url.resolve(addSuffix(registry, \"/\"), pathname);\n }\n\n if (REGEX_REGISTRY_ENFORCED_HTTPS.test(resolved)) {\n resolved = resolved.replace(/^http:\\/\\//, \"https://\");\n }\n\n return resolved;\n }\n\n /**\n * Search a module on npm registry\n * @param text\n * @param options\n */\n async search(text: string, options: {size?: number; from?: number; quality?: number; popularity?: number; maintenance?: number} = {}) {\n const {objects: result} = await this.request(`-/v1/search`, {\n headers: {\n \"Accept-Encoding\": \"gzip\"\n },\n qs: {\n text,\n size: 100,\n from: 0,\n quality: 0.65,\n popularity: 0.98,\n maintenance: 0.5,\n ...options\n }\n });\n\n return result;\n }\n\n async info(packageName: string, retry = 0): Promise<PackageInfo> {\n try {\n return await this.request(packageName, {\n headers: {\n \"Accept-Encoding\": \"gzip\"\n },\n unfiltered: false,\n retry\n });\n } catch (er) {\n return retry == 0 ? this.fallback(packageName) : null;\n }\n }\n\n private async fallback(packageName: string) {\n const [{package: pkg}] = await this.search(packageName);\n\n return {\n ...pkg,\n \"dist-tags\": {\n latest: pkg.version\n },\n versions: {\n [pkg.version]: {\n name: packageName,\n version: pkg.version,\n dependencies: {},\n devDependencies: {}\n }\n }\n };\n }\n}\n"]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { isString } from "@tsed/core";
|
|
2
3
|
import { Configuration, Constant, Inject, Injectable } from "@tsed/di";
|
|
3
4
|
import Consolidate from "consolidate";
|
|
4
|
-
import normalizePath from "normalize-path";
|
|
5
5
|
import { existsSync } from "fs-extra";
|
|
6
|
+
import normalizePath from "normalize-path";
|
|
6
7
|
import globby from "globby";
|
|
7
8
|
import { dirname, join, relative } from "path";
|
|
8
9
|
import { Observable } from "rxjs";
|
|
9
10
|
import { CliFs } from "./CliFs.js";
|
|
10
11
|
import "../utils/hbs.js";
|
|
11
|
-
import { isString } from "@tsed/core";
|
|
12
12
|
import { insertImport } from "../utils/renderer/insertImport.js";
|
|
13
13
|
import { insertAfter } from "../utils/renderer/insertAfter.js";
|
|
14
14
|
export class Renderer {
|
|
@@ -65,11 +65,13 @@ export class Renderer {
|
|
|
65
65
|
const { templateDir } = this.mapOptions(path, options);
|
|
66
66
|
return existsSync(join(templateDir, path));
|
|
67
67
|
}
|
|
68
|
-
scan(pattern, options = {}) {
|
|
69
|
-
|
|
68
|
+
async scan(pattern, options = {}) {
|
|
69
|
+
const result = await globby(pattern.map((s) => normalizePath(s)), {
|
|
70
70
|
...options,
|
|
71
|
+
objectMode: true,
|
|
71
72
|
cwd: this.rootDir
|
|
72
73
|
});
|
|
74
|
+
return result.map((entry) => entry.path);
|
|
73
75
|
}
|
|
74
76
|
relativeFrom(path) {
|
|
75
77
|
return relative(dirname(join(this.rootDir, path)), this.rootDir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../src/services/Renderer.ts"],"names":[],"mappings":"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","sourcesContent":["import {Configuration, Constant, Inject, Injectable} from \"@tsed/di\";\nimport Consolidate from \"consolidate\";\nimport normalizePath from \"normalize-path\";\nimport {existsSync} from \"fs-extra\";\nimport globby from \"globby\";\nimport {dirname, join, relative} from \"path\";\nimport {Observable} from \"rxjs\";\nimport {CliFs} from \"./CliFs\";\nimport \"../utils/hbs\";\nimport {isString} from \"@tsed/core\";\nimport {insertImport} from \"../utils/renderer/insertImport\";\nimport {insertAfter} from \"../utils/renderer/insertAfter\";\n\nexport interface RenderOptions {\n path: string;\n templateDir: string;\n rootDir: string;\n output: string;\n baseDir: string;\n basename: string;\n}\n\nexport abstract class Renderer {\n @Configuration()\n protected configuration: Configuration;\n\n @Constant(\"templateDir\")\n templateDir: string;\n\n @Inject()\n fs: CliFs;\n\n abstract get rootDir(): string;\n\n async render(path: string, data: any, options: Partial<RenderOptions> = {}) {\n const {output, templateDir, rootDir} = this.mapOptions(path, options);\n let content = \"\";\n\n const file = normalizePath(join(templateDir, path));\n\n if (path.endsWith(\".hbs\")) {\n content = await Consolidate.handlebars(file, data);\n } else {\n content = await this.fs.readFile(file, {encoding: \"utf8\"});\n }\n\n return this.write(content, {output, rootDir});\n }\n\n async renderAll(paths: (string | RenderOptions)[], data: any, options: Partial<RenderOptions> = {}) {\n let count = 0;\n\n const mapOptions = (opts: string | RenderOptions): Partial<RenderOptions> & {path: string} => {\n if (isString(opts)) {\n return {...options, path: opts};\n }\n\n return {\n ...options,\n ...opts\n };\n };\n\n return new Observable((observer) => {\n observer.next(`[${count}/${paths.length}] Rendering files...`);\n\n const promises = paths\n .filter(Boolean)\n .map(mapOptions)\n .map(async ({path, ...opts}) => {\n await this.render(path, data, opts);\n\n count++;\n observer.next(`[${count}/${paths.length}] Rendering files...`);\n });\n\n Promise.all(promises)\n .then(() => {\n observer.next(`[${count}/${paths.length}] Rendering files...`);\n observer.complete();\n })\n .catch((err) => {\n observer.error(err);\n });\n });\n }\n\n async write(content: string, options: any) {\n const {output, rootDir = this.rootDir} = options;\n const outputFile = join(...[rootDir, output].filter(Boolean));\n\n await this.fs.ensureDir(dirname(outputFile));\n\n return this.fs.writeFile(outputFile, content, {encoding: \"utf8\"});\n }\n\n templateExists(path: string, options: Partial<RenderOptions> = {}) {\n const {templateDir} = this.mapOptions(path, options);\n\n return existsSync(join(templateDir, path));\n }\n\n scan(pattern: string[], options: any = {}) {\n return globby(\n pattern.map((s: string) => normalizePath(s)),\n {\n ...options,\n cwd: this.rootDir\n }\n );\n }\n\n relativeFrom(path: string) {\n return relative(dirname(join(this.rootDir, path)), this.rootDir);\n }\n\n async update(path: string, actions: {type?: string; content: string; pattern?: RegExp}[]) {\n path = join(this.rootDir, path);\n if (!this.fs.exists(path)) {\n return;\n }\n\n const content: string = actions.reduce((fileContent, action) => {\n switch (action.type) {\n case \"import\":\n return insertImport(fileContent, action.content);\n case \"insert-after\":\n return insertAfter(fileContent, action.content, action.pattern!);\n default:\n break;\n }\n\n return fileContent;\n }, await this.fs.readFile(path, {encoding: \"utf8\"}));\n\n return this.fs.writeFile(path, content, {encoding: \"utf8\"});\n }\n\n protected mapOptions(path: string, options: Partial<RenderOptions>) {\n const {templateDir = this.templateDir, rootDir = this.rootDir} = options;\n let {output = path} = options;\n\n if (options.baseDir) {\n output = normalizePath(join(\"/\", relative(options.baseDir, path)));\n }\n\n if (options.basename) {\n output = normalizePath(join(dirname(output), options.basename));\n }\n\n output = output.replace(/\\.hbs$/, \"\");\n\n return {output, templateDir, rootDir};\n }\n}\n\n@Injectable()\nexport class RootRendererService extends Renderer {\n get rootDir() {\n return this.configuration.project?.rootDir as string;\n }\n}\n\n@Injectable()\nexport class SrcRendererService extends Renderer {\n get rootDir() {\n return join(...([this.configuration.project?.rootDir, this.configuration.project?.srcDir].filter(Boolean) as string[]));\n }\n}\n\n@Injectable()\nexport class ScriptsRendererService extends Renderer {\n get rootDir() {\n return join(...([this.configuration.project?.rootDir, this.configuration.project?.scriptsDir].filter(Boolean) as string[]));\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../src/services/Renderer.ts"],"names":[],"mappings":"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","sourcesContent":["import {isString} from \"@tsed/core\";\nimport {Configuration, Constant, Inject, Injectable} from \"@tsed/di\";\nimport Consolidate from \"consolidate\";\nimport {existsSync} from \"fs-extra\";\nimport normalizePath from \"normalize-path\";\nimport globby from \"globby\";\nimport {dirname, join, relative} from \"path\";\nimport {Observable} from \"rxjs\";\nimport {CliFs} from \"./CliFs\";\nimport \"../utils/hbs\";\nimport {insertImport} from \"../utils/renderer/insertImport\";\nimport {insertAfter} from \"../utils/renderer/insertAfter\";\n\nexport interface RenderOptions {\n path: string;\n templateDir: string;\n rootDir: string;\n output: string;\n baseDir: string;\n basename: string;\n}\n\nexport abstract class Renderer {\n @Configuration()\n protected configuration: Configuration;\n\n @Constant(\"templateDir\")\n templateDir: string;\n\n @Inject()\n fs: CliFs;\n\n abstract get rootDir(): string;\n\n async render(path: string, data: any, options: Partial<RenderOptions> = {}) {\n const {output, templateDir, rootDir} = this.mapOptions(path, options);\n let content = \"\";\n\n const file = normalizePath(join(templateDir, path));\n\n if (path.endsWith(\".hbs\")) {\n content = await Consolidate.handlebars(file, data);\n } else {\n content = await this.fs.readFile(file, {encoding: \"utf8\"});\n }\n\n return this.write(content, {output, rootDir});\n }\n\n async renderAll(paths: (string | RenderOptions)[], data: any, options: Partial<RenderOptions> = {}) {\n let count = 0;\n\n const mapOptions = (opts: string | RenderOptions): Partial<RenderOptions> & {path: string} => {\n if (isString(opts)) {\n return {...options, path: opts};\n }\n\n return {\n ...options,\n ...opts\n };\n };\n\n return new Observable((observer) => {\n observer.next(`[${count}/${paths.length}] Rendering files...`);\n\n const promises = paths\n .filter(Boolean)\n .map(mapOptions)\n .map(async ({path, ...opts}) => {\n await this.render(path, data, opts);\n\n count++;\n observer.next(`[${count}/${paths.length}] Rendering files...`);\n });\n\n Promise.all(promises)\n .then(() => {\n observer.next(`[${count}/${paths.length}] Rendering files...`);\n observer.complete();\n })\n .catch((err) => {\n observer.error(err);\n });\n });\n }\n\n async write(content: string, options: any) {\n const {output, rootDir = this.rootDir} = options;\n const outputFile = join(...[rootDir, output].filter(Boolean));\n\n await this.fs.ensureDir(dirname(outputFile));\n\n return this.fs.writeFile(outputFile, content, {encoding: \"utf8\"});\n }\n\n templateExists(path: string, options: Partial<RenderOptions> = {}) {\n const {templateDir} = this.mapOptions(path, options);\n\n return existsSync(join(templateDir, path));\n }\n\n async scan(pattern: string[], options: any = {}): Promise<string[]> {\n const result = await globby(\n pattern.map((s: string) => normalizePath(s)),\n {\n ...options,\n objectMode: true,\n cwd: this.rootDir\n }\n );\n\n return result.map((entry) => entry.path);\n }\n\n relativeFrom(path: string) {\n return relative(dirname(join(this.rootDir, path)), this.rootDir);\n }\n\n async update(path: string, actions: {type?: string; content: string; pattern?: RegExp}[]) {\n path = join(this.rootDir, path);\n if (!this.fs.exists(path)) {\n return;\n }\n\n const content: string = actions.reduce((fileContent, action) => {\n switch (action.type) {\n case \"import\":\n return insertImport(fileContent, action.content);\n case \"insert-after\":\n return insertAfter(fileContent, action.content, action.pattern!);\n default:\n break;\n }\n\n return fileContent;\n }, await this.fs.readFile(path, {encoding: \"utf8\"}));\n\n return this.fs.writeFile(path, content, {encoding: \"utf8\"});\n }\n\n protected mapOptions(path: string, options: Partial<RenderOptions>) {\n const {templateDir = this.templateDir, rootDir = this.rootDir} = options;\n let {output = path} = options;\n\n if (options.baseDir) {\n output = normalizePath(join(\"/\", relative(options.baseDir, path)));\n }\n\n if (options.basename) {\n output = normalizePath(join(dirname(output), options.basename));\n }\n\n output = output.replace(/\\.hbs$/, \"\");\n\n return {output, templateDir, rootDir};\n }\n}\n\n@Injectable()\nexport class RootRendererService extends Renderer {\n get rootDir() {\n return this.configuration.project?.rootDir as string;\n }\n}\n\n@Injectable()\nexport class SrcRendererService extends Renderer {\n get rootDir() {\n return join(...([this.configuration.project?.rootDir, this.configuration.project?.srcDir].filter(Boolean) as string[]));\n }\n}\n\n@Injectable()\nexport class ScriptsRendererService extends Renderer {\n get rootDir() {\n return join(...([this.configuration.project?.rootDir, this.configuration.project?.scriptsDir].filter(Boolean) as string[]));\n }\n}\n"]}
|
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
import type { SyncOptions, Options } from "execa";
|
|
2
3
|
import execa from "execa";
|
|
3
4
|
import "any-observable/register/rxjs-all";
|
|
4
5
|
export declare class CliExeca {
|
|
5
6
|
readonly raw: {
|
|
6
|
-
(file: string, arguments?: readonly string[] | undefined, options?:
|
|
7
|
-
(file: string, arguments?: readonly string[] | undefined, options?:
|
|
8
|
-
(file: string, options?:
|
|
9
|
-
(file: string, options?:
|
|
10
|
-
sync(file: string, arguments?: readonly string[] | undefined, options?:
|
|
11
|
-
sync(file: string, arguments?: readonly string[] | undefined, options?:
|
|
12
|
-
sync(file: string, options?:
|
|
13
|
-
sync(file: string, options?:
|
|
14
|
-
command(command: string, options?:
|
|
15
|
-
command(command: string, options?:
|
|
16
|
-
commandSync(command: string, options?:
|
|
17
|
-
commandSync(command: string, options?:
|
|
7
|
+
(file: string, arguments?: readonly string[] | undefined, options?: Options<string> | undefined): execa.ExecaChildProcess<string>;
|
|
8
|
+
(file: string, arguments?: readonly string[] | undefined, options?: Options<null> | undefined): execa.ExecaChildProcess<Buffer>;
|
|
9
|
+
(file: string, options?: Options<string> | undefined): execa.ExecaChildProcess<string>;
|
|
10
|
+
(file: string, options?: Options<null> | undefined): execa.ExecaChildProcess<Buffer>;
|
|
11
|
+
sync(file: string, arguments?: readonly string[] | undefined, options?: SyncOptions<string> | undefined): execa.ExecaSyncReturnValue<string>;
|
|
12
|
+
sync(file: string, arguments?: readonly string[] | undefined, options?: SyncOptions<null> | undefined): execa.ExecaSyncReturnValue<Buffer>;
|
|
13
|
+
sync(file: string, options?: SyncOptions<string> | undefined): execa.ExecaSyncReturnValue<string>;
|
|
14
|
+
sync(file: string, options?: SyncOptions<null> | undefined): execa.ExecaSyncReturnValue<Buffer>;
|
|
15
|
+
command(command: string, options?: Options<string> | undefined): execa.ExecaChildProcess<string>;
|
|
16
|
+
command(command: string, options?: Options<null> | undefined): execa.ExecaChildProcess<Buffer>;
|
|
17
|
+
commandSync(command: string, options?: SyncOptions<string> | undefined): execa.ExecaSyncReturnValue<string>;
|
|
18
|
+
commandSync(command: string, options?: SyncOptions<null> | undefined): execa.ExecaSyncReturnValue<Buffer>;
|
|
18
19
|
node(scriptPath: string, arguments?: readonly string[] | undefined, options?: execa.NodeOptions<string> | undefined): execa.ExecaChildProcess<string>;
|
|
19
|
-
node(scriptPath: string, arguments?: readonly string[] | undefined, options?:
|
|
20
|
-
node(scriptPath: string, options?:
|
|
21
|
-
node(scriptPath: string, options?:
|
|
20
|
+
node(scriptPath: string, arguments?: readonly string[] | undefined, options?: Options<null> | undefined): execa.ExecaChildProcess<Buffer>;
|
|
21
|
+
node(scriptPath: string, options?: Options<string> | undefined): execa.ExecaChildProcess<string>;
|
|
22
|
+
node(scriptPath: string, options?: Options<null> | undefined): execa.ExecaChildProcess<Buffer>;
|
|
22
23
|
};
|
|
23
24
|
/**
|
|
24
25
|
*
|
|
@@ -26,8 +27,8 @@ export declare class CliExeca {
|
|
|
26
27
|
* @param args
|
|
27
28
|
* @param opts
|
|
28
29
|
*/
|
|
29
|
-
run(cmd: string, args: string[], opts?:
|
|
30
|
-
runSync(cmd: string, args: string[], opts?:
|
|
31
|
-
getAsync(cmd: string, args: string[], opts?:
|
|
32
|
-
get(cmd: string, args: string[], opts?:
|
|
30
|
+
run(cmd: string, args: string[], opts?: Options): any;
|
|
31
|
+
runSync(cmd: string, args: string[], opts?: SyncOptions): execa.ExecaSyncReturnValue<string>;
|
|
32
|
+
getAsync(cmd: string, args: string[], opts?: SyncOptions): Promise<string>;
|
|
33
|
+
get(cmd: string, args: string[], opts?: SyncOptions): string;
|
|
33
34
|
}
|
|
@@ -18,6 +18,6 @@ export declare class CliHttpClient extends CliHttpLogClient {
|
|
|
18
18
|
delete<T = any>(endpoint: string, options?: CliHttpClientOptions): Promise<T>;
|
|
19
19
|
protected getRequestParameters(method: Method, endpoint: string, options: CliHttpClientOptions): CliHttpClientOptions;
|
|
20
20
|
protected configureProxy(endpoint: string, options: CliHttpClientOptions): void;
|
|
21
|
-
protected send(options: AxiosRequestConfig): Promise<import("axios").AxiosResponse<any>>;
|
|
21
|
+
protected send(options: AxiosRequestConfig): Promise<import("axios").AxiosResponse<any, any>>;
|
|
22
22
|
protected mapResponse(result: any, options: CliHttpClientOptions): any;
|
|
23
23
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsed/cli-core",
|
|
3
|
-
"version": "3.21.0-rc.
|
|
3
|
+
"version": "3.21.0-rc.4",
|
|
4
4
|
"description": "Build your CLI with TypeScript and Decorators",
|
|
5
5
|
"source": "./src/index.ts",
|
|
6
6
|
"main": "./lib/cjs/index.js",
|
|
@@ -28,33 +28,33 @@
|
|
|
28
28
|
"listr"
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@npmcli/run-script": "3.0.
|
|
31
|
+
"@npmcli/run-script": "3.0.1",
|
|
32
32
|
"@samverschueren/stream-to-observable": "^0.3.1",
|
|
33
|
-
"@tsed/logger": ">=6.
|
|
33
|
+
"@tsed/logger": ">=6.1.1",
|
|
34
34
|
"any-observable": "0.5.1",
|
|
35
|
-
"axios": "0.
|
|
35
|
+
"axios": "0.26.1",
|
|
36
36
|
"chalk": "4.1.0",
|
|
37
37
|
"change-case": "^4.1.2",
|
|
38
|
-
"commander": "
|
|
38
|
+
"commander": "9.1.0",
|
|
39
39
|
"consolidate": "0.16.0",
|
|
40
40
|
"create-frame": "1.0.0",
|
|
41
41
|
"enquirer": "2.3.6",
|
|
42
|
-
"execa": "5.
|
|
43
|
-
"figures": "
|
|
42
|
+
"execa": "5.1.1",
|
|
43
|
+
"figures": "4.0.0",
|
|
44
44
|
"filedirname": "2.7.0",
|
|
45
45
|
"fs-extra": "10.1.0",
|
|
46
|
-
"globby": "11.0
|
|
46
|
+
"globby": "11.1.0",
|
|
47
47
|
"handlebars": "4.7.7",
|
|
48
48
|
"handlebars-utils": "1.0.6",
|
|
49
|
-
"inquirer": "8.2.
|
|
50
|
-
"inquirer-autocomplete-prompt": "
|
|
49
|
+
"inquirer": "8.2.1",
|
|
50
|
+
"inquirer-autocomplete-prompt": "2.0.0",
|
|
51
51
|
"js-yaml": "4.1.0",
|
|
52
|
-
"listr2": "
|
|
52
|
+
"listr2": "4.0.5",
|
|
53
53
|
"module-alias": "2.2.2",
|
|
54
54
|
"normalize-path": "3.0.0",
|
|
55
55
|
"read-pkg-up": "7.0.1",
|
|
56
56
|
"registry-url": "5.1.0",
|
|
57
|
-
"rxjs": "^
|
|
57
|
+
"rxjs": "^7.5.5",
|
|
58
58
|
"semver": "7.3.5",
|
|
59
59
|
"split": "1.0.1",
|
|
60
60
|
"tslib": "2.3.1",
|
|
@@ -65,17 +65,17 @@
|
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@types/axios": "0.14.0",
|
|
67
67
|
"@types/commander": "2.12.2",
|
|
68
|
-
"@types/consolidate": "0.14.
|
|
68
|
+
"@types/consolidate": "0.14.1",
|
|
69
69
|
"@types/figures": "3.0.1",
|
|
70
70
|
"@types/fs-extra": "9.0.13",
|
|
71
71
|
"@types/globby": "9.1.0",
|
|
72
|
-
"@types/inquirer": "8.2.
|
|
73
|
-
"@types/js-yaml": "4.0.
|
|
72
|
+
"@types/inquirer": "8.2.0",
|
|
73
|
+
"@types/js-yaml": "4.0.5",
|
|
74
74
|
"@types/normalize-path": "^3.0.0",
|
|
75
75
|
"@types/read-pkg-up": "6.0.0",
|
|
76
|
-
"@types/semver": "7.3.
|
|
76
|
+
"@types/semver": "7.3.9",
|
|
77
77
|
"@types/tunnel": "0.0.3",
|
|
78
|
-
"@types/update-notifier": "5.
|
|
78
|
+
"@types/update-notifier": "5.1.0",
|
|
79
79
|
"@types/url-parse": "^1.4.3"
|
|
80
80
|
},
|
|
81
81
|
"peerDependencies": {
|