@tsed/cli-plugin-typeorm 3.20.17 → 3.21.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/{CliPluginTypeORMModule.js → cjs/CliPluginTypeORMModule.js} +0 -0
- package/lib/cjs/CliPluginTypeORMModule.js.map +1 -0
- package/lib/{hooks → cjs/hooks}/TypeORMGenerateHook.js +0 -0
- package/lib/cjs/hooks/TypeORMGenerateHook.js.map +1 -0
- package/lib/{hooks → cjs/hooks}/TypeORMInitHook.js +0 -0
- package/lib/cjs/hooks/TypeORMInitHook.js.map +1 -0
- package/lib/{index.js → cjs/index.js} +1 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/package.json +3 -0
- package/lib/cjs/utils/templateDir.js +13 -0
- package/lib/cjs/utils/templateDir.js.map +1 -0
- package/lib/esm/CliPluginTypeORMModule.js +29 -0
- package/lib/esm/CliPluginTypeORMModule.js.map +1 -0
- package/lib/esm/hooks/TypeORMGenerateHook.js +109 -0
- package/lib/esm/hooks/TypeORMGenerateHook.js.map +1 -0
- package/lib/esm/hooks/TypeORMInitHook.js +68 -0
- package/lib/esm/hooks/TypeORMInitHook.js.map +1 -0
- package/lib/esm/index.js +6 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/package.json +3 -0
- package/lib/esm/utils/templateDir.js +9 -0
- package/lib/esm/utils/templateDir.js.map +1 -0
- package/lib/{CliPluginTypeORMModule.d.ts → types/CliPluginTypeORMModule.d.ts} +0 -0
- package/lib/{hooks → types/hooks}/TypeORMGenerateHook.d.ts +0 -0
- package/lib/{hooks → types/hooks}/TypeORMInitHook.d.ts +1 -1
- package/lib/{index.d.ts → types/index.d.ts} +1 -0
- package/lib/{utils → types/utils}/templateDir.d.ts +0 -0
- package/package.json +22 -10
- package/tsconfig.compile.esm.json +21 -0
- package/lib/CliPluginTypeORMModule.js.map +0 -1
- package/lib/hooks/TypeORMGenerateHook.js.map +0 -1
- package/lib/hooks/TypeORMInitHook.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/utils/templateDir.js +0 -6
- package/lib/utils/templateDir.js.map +0 -1
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliPluginTypeORMModule.js","sourceRoot":"","sources":["../../src/CliPluginTypeORMModule.ts"],"names":[],"mappings":";;;;AAAA,6CAAiE;AACjE,iCAAgC;AAChC,qEAAgE;AAChE,6DAAwD;AAKxD,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IAKjC,OAAO;QACL,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;YAC/B,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AARC;IADC,IAAA,WAAM,GAAE;sCACI,6BAAkB;2DAAC;AAGhC;IADC,IAAA,gBAAK,EAAC,0BAA0B,CAAC;;;;qDAKjC;AATU,sBAAsB;IAHlC,IAAA,iBAAM,EAAC;QACN,OAAO,EAAE,CAAC,iCAAe,EAAE,yCAAmB,CAAC;KAChD,CAAC;GACW,sBAAsB,CAUlC;AAVY,wDAAsB","sourcesContent":["import {Module, OnAdd, ProjectPackageJson} from \"@tsed/cli-core\";\nimport {Inject} from \"@tsed/di\";\nimport {TypeORMGenerateHook} from \"./hooks/TypeORMGenerateHook\";\nimport {TypeORMInitHook} from \"./hooks/TypeORMInitHook\";\n\n@Module({\n imports: [TypeORMInitHook, TypeORMGenerateHook]\n})\nexport class CliPluginTypeORMModule {\n @Inject()\n packageJson: ProjectPackageJson;\n\n @OnAdd(\"@tsed/cli-plugin-typeorm\")\n install() {\n this.packageJson.addDependencies({\n typeorm: \"latest\"\n });\n }\n}\n"]}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeORMGenerateHook.js","sourceRoot":"","sources":["../../../src/hooks/TypeORMGenerateHook.ts"],"names":[],"mappings":"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","sourcesContent":["import {FEATURES_TYPEORM_CONNECTION_TYPES, GenerateCmdContext, ProvidersInfoService} from \"@tsed/cli\";\nimport {CliDockerComposeYaml, Inject, OnExec, OnPrompt, ProjectPackageJson, SrcRendererService, Tasks} from \"@tsed/cli-core\";\nimport {Injectable} from \"@tsed/di\";\nimport {TEMPLATE_DIR} from \"../utils/templateDir\";\nimport {constantCase} from \"change-case\";\n\nexport interface TypeORMGenerateOptions extends GenerateCmdContext {\n typeormDataSource: string;\n datasourceName: string;\n}\n\n@Injectable()\nexport class TypeORMGenerateHook {\n @Inject()\n protected projectPackageJson: ProjectPackageJson;\n\n @Inject()\n protected srcRenderService: SrcRendererService;\n\n @Inject()\n protected cliDockerComposeYaml: CliDockerComposeYaml;\n\n constructor(private providersInfoService: ProvidersInfoService) {\n providersInfoService.add(\n {\n name: \"TypeORM Datasource\",\n value: \"typeorm:datasource\",\n model: \"{{symbolName}}.datasource\"\n },\n TypeORMGenerateHook\n );\n }\n\n @OnPrompt(\"generate\")\n async onGeneratePrompt() {\n const list = FEATURES_TYPEORM_CONNECTION_TYPES.map((item) => {\n return {\n name: item.name,\n value: item.value.type\n };\n });\n\n return [\n {\n type: \"autocomplete\",\n name: \"typeormDataSource\",\n message: \"Which database type?\",\n when(state: any) {\n return state.type === \"typeorm:datasource\";\n },\n source: async (state: any, keyword: string) => {\n if (keyword) {\n return list.filter((item) => item.name.toLowerCase().includes(keyword.toLowerCase()));\n }\n\n return list;\n }\n }\n ];\n }\n\n @OnExec(\"generate\")\n onGenerateExec(ctx: TypeORMGenerateOptions): Tasks {\n if (this.providersInfoService.isMyProvider(ctx.type, TypeORMGenerateHook)) {\n return this.generateDataSourceTasks(ctx);\n }\n\n return [];\n }\n\n generateDataSourceTasks(ctx: TypeORMGenerateOptions) {\n const {typeormDataSource, symbolPath, name} = ctx;\n\n if (!typeormDataSource) {\n return [];\n }\n\n const databaseType = FEATURES_TYPEORM_CONNECTION_TYPES.find((item) => item.value.type === typeormDataSource);\n const database = typeormDataSource.split(\":\").at(-1)!;\n\n if (databaseType?.value?.dependencies) {\n this.projectPackageJson.addDependencies(databaseType?.value.dependencies || {});\n }\n\n const symbolName = ctx.symbolName.replace(\"Datasource\", \"DataSource\");\n\n return [\n {\n title: `Generate TypeORM datasource file to '${symbolPath}.ts'`,\n task: () =>\n this.srcRenderService.render(\n \"datasource.hbs\",\n {\n name,\n database,\n symbolName,\n tokenName: constantCase(symbolName)\n },\n {\n templateDir: TEMPLATE_DIR,\n output: `${ctx.symbolPath}.ts`,\n rootDir: this.srcRenderService.rootDir\n }\n )\n },\n {\n title: \"Generate docker-compose configuration\",\n task: () => this.cliDockerComposeYaml.addDatabaseService(name, database)\n }\n ];\n }\n}\n"]}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeORMInitHook.js","sourceRoot":"","sources":["../../../src/hooks/TypeORMInitHook.ts"],"names":[],"mappings":";;;;AACA,6CAQwB;AACxB,iCAAoC;AACpC,6CAAuC;AAEvC,SAAS,WAAW,CAAC,GAAmB;;IACtC,OAAO,CAAA,MAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,0CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,KAAI,EAAE,CAAC;AAC5F,CAAC;AAGD,IAAa,eAAe,GAA5B,MAAa,eAAe;IAiB1B,MAAM,CAAC,GAAmB;;QACxB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAE7B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,EAAE,CAAC;SACX;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE;YAC1C,GAAG,GAAG;YACN,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,IAAA,wBAAU,EAAC,QAAQ,CAAC;YAC1B,iBAAiB,EAAE,MAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,0CAAE,IAAI;SACpF,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;YAC1B,OAAO,EAAE,0BAA0B;SACpC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,GAAmB;QACjC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,kBAAkB,CAAC,GAAmB;QACpC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;CACF,CAAA;AA/CC;IADC,IAAA,iBAAM,GAAE;sCACa,qBAAU;mDAAC;AAGjC;IADC,IAAA,iBAAM,GAAE;sCACc,6BAAkB;oDAAC;AAG1C;IADC,IAAA,iBAAM,GAAE;sCACe,8BAAmB;qDAAC;AAG5C;IADC,IAAA,iBAAM,GAAE;sCACc,6BAAkB;oDAAC;AAG1C;IADC,IAAA,iBAAM,GAAE;sCACuB,+BAAoB;6DAAC;AAGrD;IADC,IAAA,iBAAM,EAAC,MAAM,CAAC;;;;6CAkBd;AAlCU,eAAe;IAD3B,IAAA,eAAU,GAAE;GACA,eAAe,CAiD3B;AAjDY,0CAAe","sourcesContent":["import {InitCmdContext} from \"@tsed/cli\";\nimport {\n CliDockerComposeYaml,\n CliService,\n Inject,\n OnExec,\n ProjectPackageJson,\n RootRendererService,\n SrcRendererService\n} from \"@tsed/cli-core\";\nimport {Injectable} from \"@tsed/di\";\nimport {pascalCase} from \"change-case\";\n\nfunction getDatabase(ctx: InitCmdContext) {\n return ctx.features.find(({type}) => type.includes(\"typeorm:\"))?.type.split(\":\")[1] || \"\";\n}\n\n@Injectable()\nexport class TypeORMInitHook {\n @Inject()\n protected cliService: CliService;\n\n @Inject()\n protected packageJson: ProjectPackageJson;\n\n @Inject()\n protected rootRenderer: RootRendererService;\n\n @Inject()\n protected srcRenderer: SrcRendererService;\n\n @Inject()\n protected cliDockerComposeYaml: CliDockerComposeYaml;\n\n @OnExec(\"init\")\n onExec(ctx: InitCmdContext) {\n this.addScripts();\n this.addDependencies(ctx);\n this.addDevDependencies(ctx);\n\n const database = getDatabase(ctx);\n\n if (!database) {\n return [];\n }\n\n return this.cliService.getTasks(\"generate\", {\n ...ctx,\n type: \"typeorm:dataSource\",\n name: pascalCase(database),\n typeormDataSource: ctx.features.find(({type}) => type.startsWith(\"typeorm:\"))?.type\n });\n }\n\n addScripts() {\n this.packageJson.addScripts({\n typeorm: \"typeorm-ts-node-commonjs\"\n });\n }\n\n addDependencies(ctx: InitCmdContext) {\n this.packageJson.addDependencies({}, ctx);\n }\n\n addDevDependencies(ctx: InitCmdContext) {\n this.packageJson.addDevDependencies({}, ctx);\n }\n}\n"]}
|
|
@@ -4,5 +4,6 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
const CliPluginTypeORMModule_1 = require("./CliPluginTypeORMModule");
|
|
5
5
|
tslib_1.__exportStar(require("./hooks/TypeORMInitHook"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./hooks/TypeORMGenerateHook"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./utils/templateDir"), exports);
|
|
7
8
|
exports.default = CliPluginTypeORMModule_1.CliPluginTypeORMModule;
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,qEAAgE;AAEhE,kEAAwC;AACxC,sEAA4C;AAC5C,8DAAoC;AAEpC,kBAAe,+CAAsB,CAAC","sourcesContent":["import {CliPluginTypeORMModule} from \"./CliPluginTypeORMModule\";\n\nexport * from \"./hooks/TypeORMInitHook\";\nexport * from \"./hooks/TypeORMGenerateHook\";\nexport * from \"./utils/templateDir\";\n\nexport default CliPluginTypeORMModule;\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TEMPLATE_DIR = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const read_pkg_up_1 = tslib_1.__importDefault(require("read-pkg-up"));
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const filedirname_1 = tslib_1.__importDefault(require("filedirname"));
|
|
8
|
+
const [, dir] = (0, filedirname_1.default)();
|
|
9
|
+
const { path } = read_pkg_up_1.default.sync({
|
|
10
|
+
cwd: (0, path_1.join)(dir, "..", "..")
|
|
11
|
+
});
|
|
12
|
+
exports.TEMPLATE_DIR = (0, path_1.join)((0, path_1.dirname)(path), "templates");
|
|
13
|
+
//# sourceMappingURL=templateDir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templateDir.js","sourceRoot":"","sources":["../../../src/utils/templateDir.ts"],"names":[],"mappings":";;;;AAAA,sEAAoC;AACpC,+BAAmC;AACnC,sEAAsC;AACtC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,IAAA,qBAAW,GAAE,CAAC;AAE9B,MAAM,EAAC,IAAI,EAAC,GAAG,qBAAS,CAAC,IAAI,CAAC;IAC5B,GAAG,EAAE,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;CAC3B,CAAE,CAAC;AAES,QAAA,YAAY,GAAG,IAAA,WAAI,EAAC,IAAA,cAAO,EAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC","sourcesContent":["import readPkgUp from \"read-pkg-up\";\nimport {dirname, join} from \"path\";\nimport filedirname from \"filedirname\";\nconst [, dir] = filedirname();\n\nconst {path} = readPkgUp.sync({\n cwd: join(dir, \"..\", \"..\")\n})!;\n\nexport const TEMPLATE_DIR = join(dirname(path), \"templates\");\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Module, OnAdd, ProjectPackageJson } from "@tsed/cli-core";
|
|
3
|
+
import { Inject } from "@tsed/di";
|
|
4
|
+
import { TypeORMGenerateHook } from "./hooks/TypeORMGenerateHook.js";
|
|
5
|
+
import { TypeORMInitHook } from "./hooks/TypeORMInitHook.js";
|
|
6
|
+
let CliPluginTypeORMModule = class CliPluginTypeORMModule {
|
|
7
|
+
install() {
|
|
8
|
+
this.packageJson.addDependencies({
|
|
9
|
+
typeorm: "latest"
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
__decorate([
|
|
14
|
+
Inject(),
|
|
15
|
+
__metadata("design:type", ProjectPackageJson)
|
|
16
|
+
], CliPluginTypeORMModule.prototype, "packageJson", void 0);
|
|
17
|
+
__decorate([
|
|
18
|
+
OnAdd("@tsed/cli-plugin-typeorm"),
|
|
19
|
+
__metadata("design:type", Function),
|
|
20
|
+
__metadata("design:paramtypes", []),
|
|
21
|
+
__metadata("design:returntype", void 0)
|
|
22
|
+
], CliPluginTypeORMModule.prototype, "install", null);
|
|
23
|
+
CliPluginTypeORMModule = __decorate([
|
|
24
|
+
Module({
|
|
25
|
+
imports: [TypeORMInitHook, TypeORMGenerateHook]
|
|
26
|
+
})
|
|
27
|
+
], CliPluginTypeORMModule);
|
|
28
|
+
export { CliPluginTypeORMModule };
|
|
29
|
+
//# sourceMappingURL=CliPluginTypeORMModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliPluginTypeORMModule.js","sourceRoot":"","sources":["../../src/CliPluginTypeORMModule.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAKxD,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IAKjC,OAAO;QACL,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;YAC/B,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AARC;IADC,MAAM,EAAE;8BACI,kBAAkB;2DAAC;AAGhC;IADC,KAAK,CAAC,0BAA0B,CAAC;;;;qDAKjC;AATU,sBAAsB;IAHlC,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,eAAe,EAAE,mBAAmB,CAAC;KAChD,CAAC;GACW,sBAAsB,CAUlC;SAVY,sBAAsB","sourcesContent":["import {Module, OnAdd, ProjectPackageJson} from \"@tsed/cli-core\";\nimport {Inject} from \"@tsed/di\";\nimport {TypeORMGenerateHook} from \"./hooks/TypeORMGenerateHook\";\nimport {TypeORMInitHook} from \"./hooks/TypeORMInitHook\";\n\n@Module({\n imports: [TypeORMInitHook, TypeORMGenerateHook]\n})\nexport class CliPluginTypeORMModule {\n @Inject()\n packageJson: ProjectPackageJson;\n\n @OnAdd(\"@tsed/cli-plugin-typeorm\")\n install() {\n this.packageJson.addDependencies({\n typeorm: \"latest\"\n });\n }\n}\n"]}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
var TypeORMGenerateHook_1;
|
|
2
|
+
import { __decorate, __metadata } from "tslib";
|
|
3
|
+
import { FEATURES_TYPEORM_CONNECTION_TYPES, ProvidersInfoService } from "@tsed/cli";
|
|
4
|
+
import { CliDockerComposeYaml, Inject, OnExec, OnPrompt, ProjectPackageJson, SrcRendererService } from "@tsed/cli-core";
|
|
5
|
+
import { Injectable } from "@tsed/di";
|
|
6
|
+
import { TEMPLATE_DIR } from "../utils/templateDir.js";
|
|
7
|
+
import { constantCase } from "change-case";
|
|
8
|
+
let TypeORMGenerateHook = TypeORMGenerateHook_1 = class TypeORMGenerateHook {
|
|
9
|
+
constructor(providersInfoService) {
|
|
10
|
+
this.providersInfoService = providersInfoService;
|
|
11
|
+
providersInfoService.add({
|
|
12
|
+
name: "TypeORM Datasource",
|
|
13
|
+
value: "typeorm:datasource",
|
|
14
|
+
model: "{{symbolName}}.datasource"
|
|
15
|
+
}, TypeORMGenerateHook_1);
|
|
16
|
+
}
|
|
17
|
+
async onGeneratePrompt() {
|
|
18
|
+
const list = FEATURES_TYPEORM_CONNECTION_TYPES.map((item) => {
|
|
19
|
+
return {
|
|
20
|
+
name: item.name,
|
|
21
|
+
value: item.value.type
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
return [
|
|
25
|
+
{
|
|
26
|
+
type: "autocomplete",
|
|
27
|
+
name: "typeormDataSource",
|
|
28
|
+
message: "Which database type?",
|
|
29
|
+
when(state) {
|
|
30
|
+
return state.type === "typeorm:datasource";
|
|
31
|
+
},
|
|
32
|
+
source: async (state, keyword) => {
|
|
33
|
+
if (keyword) {
|
|
34
|
+
return list.filter((item) => item.name.toLowerCase().includes(keyword.toLowerCase()));
|
|
35
|
+
}
|
|
36
|
+
return list;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
];
|
|
40
|
+
}
|
|
41
|
+
onGenerateExec(ctx) {
|
|
42
|
+
if (this.providersInfoService.isMyProvider(ctx.type, TypeORMGenerateHook_1)) {
|
|
43
|
+
return this.generateDataSourceTasks(ctx);
|
|
44
|
+
}
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
47
|
+
generateDataSourceTasks(ctx) {
|
|
48
|
+
var _a;
|
|
49
|
+
const { typeormDataSource, symbolPath, name } = ctx;
|
|
50
|
+
if (!typeormDataSource) {
|
|
51
|
+
return [];
|
|
52
|
+
}
|
|
53
|
+
const databaseType = FEATURES_TYPEORM_CONNECTION_TYPES.find((item) => item.value.type === typeormDataSource);
|
|
54
|
+
const database = typeormDataSource.split(":").at(-1);
|
|
55
|
+
if ((_a = databaseType === null || databaseType === void 0 ? void 0 : databaseType.value) === null || _a === void 0 ? void 0 : _a.dependencies) {
|
|
56
|
+
this.projectPackageJson.addDependencies((databaseType === null || databaseType === void 0 ? void 0 : databaseType.value.dependencies) || {});
|
|
57
|
+
}
|
|
58
|
+
const symbolName = ctx.symbolName.replace("Datasource", "DataSource");
|
|
59
|
+
return [
|
|
60
|
+
{
|
|
61
|
+
title: `Generate TypeORM datasource file to '${symbolPath}.ts'`,
|
|
62
|
+
task: () => this.srcRenderService.render("datasource.hbs", {
|
|
63
|
+
name,
|
|
64
|
+
database,
|
|
65
|
+
symbolName,
|
|
66
|
+
tokenName: constantCase(symbolName)
|
|
67
|
+
}, {
|
|
68
|
+
templateDir: TEMPLATE_DIR,
|
|
69
|
+
output: `${ctx.symbolPath}.ts`,
|
|
70
|
+
rootDir: this.srcRenderService.rootDir
|
|
71
|
+
})
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
title: "Generate docker-compose configuration",
|
|
75
|
+
task: () => this.cliDockerComposeYaml.addDatabaseService(name, database)
|
|
76
|
+
}
|
|
77
|
+
];
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
__decorate([
|
|
81
|
+
Inject(),
|
|
82
|
+
__metadata("design:type", ProjectPackageJson)
|
|
83
|
+
], TypeORMGenerateHook.prototype, "projectPackageJson", void 0);
|
|
84
|
+
__decorate([
|
|
85
|
+
Inject(),
|
|
86
|
+
__metadata("design:type", SrcRendererService)
|
|
87
|
+
], TypeORMGenerateHook.prototype, "srcRenderService", void 0);
|
|
88
|
+
__decorate([
|
|
89
|
+
Inject(),
|
|
90
|
+
__metadata("design:type", CliDockerComposeYaml)
|
|
91
|
+
], TypeORMGenerateHook.prototype, "cliDockerComposeYaml", void 0);
|
|
92
|
+
__decorate([
|
|
93
|
+
OnPrompt("generate"),
|
|
94
|
+
__metadata("design:type", Function),
|
|
95
|
+
__metadata("design:paramtypes", []),
|
|
96
|
+
__metadata("design:returntype", Promise)
|
|
97
|
+
], TypeORMGenerateHook.prototype, "onGeneratePrompt", null);
|
|
98
|
+
__decorate([
|
|
99
|
+
OnExec("generate"),
|
|
100
|
+
__metadata("design:type", Function),
|
|
101
|
+
__metadata("design:paramtypes", [Object]),
|
|
102
|
+
__metadata("design:returntype", Array)
|
|
103
|
+
], TypeORMGenerateHook.prototype, "onGenerateExec", null);
|
|
104
|
+
TypeORMGenerateHook = TypeORMGenerateHook_1 = __decorate([
|
|
105
|
+
Injectable(),
|
|
106
|
+
__metadata("design:paramtypes", [ProvidersInfoService])
|
|
107
|
+
], TypeORMGenerateHook);
|
|
108
|
+
export { TypeORMGenerateHook };
|
|
109
|
+
//# sourceMappingURL=TypeORMGenerateHook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeORMGenerateHook.js","sourceRoot":"","sources":["../../../src/hooks/TypeORMGenerateHook.ts"],"names":[],"mappings":"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","sourcesContent":["import {FEATURES_TYPEORM_CONNECTION_TYPES, GenerateCmdContext, ProvidersInfoService} from \"@tsed/cli\";\nimport {CliDockerComposeYaml, Inject, OnExec, OnPrompt, ProjectPackageJson, SrcRendererService, Tasks} from \"@tsed/cli-core\";\nimport {Injectable} from \"@tsed/di\";\nimport {TEMPLATE_DIR} from \"../utils/templateDir\";\nimport {constantCase} from \"change-case\";\n\nexport interface TypeORMGenerateOptions extends GenerateCmdContext {\n typeormDataSource: string;\n datasourceName: string;\n}\n\n@Injectable()\nexport class TypeORMGenerateHook {\n @Inject()\n protected projectPackageJson: ProjectPackageJson;\n\n @Inject()\n protected srcRenderService: SrcRendererService;\n\n @Inject()\n protected cliDockerComposeYaml: CliDockerComposeYaml;\n\n constructor(private providersInfoService: ProvidersInfoService) {\n providersInfoService.add(\n {\n name: \"TypeORM Datasource\",\n value: \"typeorm:datasource\",\n model: \"{{symbolName}}.datasource\"\n },\n TypeORMGenerateHook\n );\n }\n\n @OnPrompt(\"generate\")\n async onGeneratePrompt() {\n const list = FEATURES_TYPEORM_CONNECTION_TYPES.map((item) => {\n return {\n name: item.name,\n value: item.value.type\n };\n });\n\n return [\n {\n type: \"autocomplete\",\n name: \"typeormDataSource\",\n message: \"Which database type?\",\n when(state: any) {\n return state.type === \"typeorm:datasource\";\n },\n source: async (state: any, keyword: string) => {\n if (keyword) {\n return list.filter((item) => item.name.toLowerCase().includes(keyword.toLowerCase()));\n }\n\n return list;\n }\n }\n ];\n }\n\n @OnExec(\"generate\")\n onGenerateExec(ctx: TypeORMGenerateOptions): Tasks {\n if (this.providersInfoService.isMyProvider(ctx.type, TypeORMGenerateHook)) {\n return this.generateDataSourceTasks(ctx);\n }\n\n return [];\n }\n\n generateDataSourceTasks(ctx: TypeORMGenerateOptions) {\n const {typeormDataSource, symbolPath, name} = ctx;\n\n if (!typeormDataSource) {\n return [];\n }\n\n const databaseType = FEATURES_TYPEORM_CONNECTION_TYPES.find((item) => item.value.type === typeormDataSource);\n const database = typeormDataSource.split(\":\").at(-1)!;\n\n if (databaseType?.value?.dependencies) {\n this.projectPackageJson.addDependencies(databaseType?.value.dependencies || {});\n }\n\n const symbolName = ctx.symbolName.replace(\"Datasource\", \"DataSource\");\n\n return [\n {\n title: `Generate TypeORM datasource file to '${symbolPath}.ts'`,\n task: () =>\n this.srcRenderService.render(\n \"datasource.hbs\",\n {\n name,\n database,\n symbolName,\n tokenName: constantCase(symbolName)\n },\n {\n templateDir: TEMPLATE_DIR,\n output: `${ctx.symbolPath}.ts`,\n rootDir: this.srcRenderService.rootDir\n }\n )\n },\n {\n title: \"Generate docker-compose configuration\",\n task: () => this.cliDockerComposeYaml.addDatabaseService(name, database)\n }\n ];\n }\n}\n"]}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { CliDockerComposeYaml, CliService, Inject, OnExec, ProjectPackageJson, RootRendererService, SrcRendererService } from "@tsed/cli-core";
|
|
3
|
+
import { Injectable } from "@tsed/di";
|
|
4
|
+
import { pascalCase } from "change-case";
|
|
5
|
+
function getDatabase(ctx) {
|
|
6
|
+
var _a;
|
|
7
|
+
return ((_a = ctx.features.find(({ type }) => type.includes("typeorm:"))) === null || _a === void 0 ? void 0 : _a.type.split(":")[1]) || "";
|
|
8
|
+
}
|
|
9
|
+
let TypeORMInitHook = class TypeORMInitHook {
|
|
10
|
+
onExec(ctx) {
|
|
11
|
+
var _a;
|
|
12
|
+
this.addScripts();
|
|
13
|
+
this.addDependencies(ctx);
|
|
14
|
+
this.addDevDependencies(ctx);
|
|
15
|
+
const database = getDatabase(ctx);
|
|
16
|
+
if (!database) {
|
|
17
|
+
return [];
|
|
18
|
+
}
|
|
19
|
+
return this.cliService.getTasks("generate", {
|
|
20
|
+
...ctx,
|
|
21
|
+
type: "typeorm:dataSource",
|
|
22
|
+
name: pascalCase(database),
|
|
23
|
+
typeormDataSource: (_a = ctx.features.find(({ type }) => type.startsWith("typeorm:"))) === null || _a === void 0 ? void 0 : _a.type
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
addScripts() {
|
|
27
|
+
this.packageJson.addScripts({
|
|
28
|
+
typeorm: "typeorm-ts-node-commonjs"
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
addDependencies(ctx) {
|
|
32
|
+
this.packageJson.addDependencies({}, ctx);
|
|
33
|
+
}
|
|
34
|
+
addDevDependencies(ctx) {
|
|
35
|
+
this.packageJson.addDevDependencies({}, ctx);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
__decorate([
|
|
39
|
+
Inject(),
|
|
40
|
+
__metadata("design:type", CliService)
|
|
41
|
+
], TypeORMInitHook.prototype, "cliService", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
Inject(),
|
|
44
|
+
__metadata("design:type", ProjectPackageJson)
|
|
45
|
+
], TypeORMInitHook.prototype, "packageJson", void 0);
|
|
46
|
+
__decorate([
|
|
47
|
+
Inject(),
|
|
48
|
+
__metadata("design:type", RootRendererService)
|
|
49
|
+
], TypeORMInitHook.prototype, "rootRenderer", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
Inject(),
|
|
52
|
+
__metadata("design:type", SrcRendererService)
|
|
53
|
+
], TypeORMInitHook.prototype, "srcRenderer", void 0);
|
|
54
|
+
__decorate([
|
|
55
|
+
Inject(),
|
|
56
|
+
__metadata("design:type", CliDockerComposeYaml)
|
|
57
|
+
], TypeORMInitHook.prototype, "cliDockerComposeYaml", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
OnExec("init"),
|
|
60
|
+
__metadata("design:type", Function),
|
|
61
|
+
__metadata("design:paramtypes", [Object]),
|
|
62
|
+
__metadata("design:returntype", void 0)
|
|
63
|
+
], TypeORMInitHook.prototype, "onExec", null);
|
|
64
|
+
TypeORMInitHook = __decorate([
|
|
65
|
+
Injectable()
|
|
66
|
+
], TypeORMInitHook);
|
|
67
|
+
export { TypeORMInitHook };
|
|
68
|
+
//# sourceMappingURL=TypeORMInitHook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeORMInitHook.js","sourceRoot":"","sources":["../../../src/hooks/TypeORMInitHook.ts"],"names":[],"mappings":";AACA,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,MAAM,EACN,MAAM,EACN,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAEvC,SAAS,WAAW,CAAC,GAAmB;;IACtC,OAAO,CAAA,MAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,0CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,KAAI,EAAE,CAAC;AAC5F,CAAC;AAGD,IAAa,eAAe,GAA5B,MAAa,eAAe;IAiB1B,MAAM,CAAC,GAAmB;;QACxB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAE7B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,EAAE,CAAC;SACX;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE;YAC1C,GAAG,GAAG;YACN,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;YAC1B,iBAAiB,EAAE,MAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,0CAAE,IAAI;SACpF,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;YAC1B,OAAO,EAAE,0BAA0B;SACpC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,GAAmB;QACjC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,kBAAkB,CAAC,GAAmB;QACpC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;CACF,CAAA;AA/CC;IADC,MAAM,EAAE;8BACa,UAAU;mDAAC;AAGjC;IADC,MAAM,EAAE;8BACc,kBAAkB;oDAAC;AAG1C;IADC,MAAM,EAAE;8BACe,mBAAmB;qDAAC;AAG5C;IADC,MAAM,EAAE;8BACc,kBAAkB;oDAAC;AAG1C;IADC,MAAM,EAAE;8BACuB,oBAAoB;6DAAC;AAGrD;IADC,MAAM,CAAC,MAAM,CAAC;;;;6CAkBd;AAlCU,eAAe;IAD3B,UAAU,EAAE;GACA,eAAe,CAiD3B;SAjDY,eAAe","sourcesContent":["import {InitCmdContext} from \"@tsed/cli\";\nimport {\n CliDockerComposeYaml,\n CliService,\n Inject,\n OnExec,\n ProjectPackageJson,\n RootRendererService,\n SrcRendererService\n} from \"@tsed/cli-core\";\nimport {Injectable} from \"@tsed/di\";\nimport {pascalCase} from \"change-case\";\n\nfunction getDatabase(ctx: InitCmdContext) {\n return ctx.features.find(({type}) => type.includes(\"typeorm:\"))?.type.split(\":\")[1] || \"\";\n}\n\n@Injectable()\nexport class TypeORMInitHook {\n @Inject()\n protected cliService: CliService;\n\n @Inject()\n protected packageJson: ProjectPackageJson;\n\n @Inject()\n protected rootRenderer: RootRendererService;\n\n @Inject()\n protected srcRenderer: SrcRendererService;\n\n @Inject()\n protected cliDockerComposeYaml: CliDockerComposeYaml;\n\n @OnExec(\"init\")\n onExec(ctx: InitCmdContext) {\n this.addScripts();\n this.addDependencies(ctx);\n this.addDevDependencies(ctx);\n\n const database = getDatabase(ctx);\n\n if (!database) {\n return [];\n }\n\n return this.cliService.getTasks(\"generate\", {\n ...ctx,\n type: \"typeorm:dataSource\",\n name: pascalCase(database),\n typeormDataSource: ctx.features.find(({type}) => type.startsWith(\"typeorm:\"))?.type\n });\n }\n\n addScripts() {\n this.packageJson.addScripts({\n typeorm: \"typeorm-ts-node-commonjs\"\n });\n }\n\n addDependencies(ctx: InitCmdContext) {\n this.packageJson.addDependencies({}, ctx);\n }\n\n addDevDependencies(ctx: InitCmdContext) {\n this.packageJson.addDevDependencies({}, ctx);\n }\n}\n"]}
|
package/lib/esm/index.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { CliPluginTypeORMModule } from "./CliPluginTypeORMModule.js";
|
|
2
|
+
export * from "./hooks/TypeORMInitHook.js";
|
|
3
|
+
export * from "./hooks/TypeORMGenerateHook.js";
|
|
4
|
+
export * from "./utils/templateDir.js";
|
|
5
|
+
export default CliPluginTypeORMModule;
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAEhE,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AAEpC,eAAe,sBAAsB,CAAC","sourcesContent":["import {CliPluginTypeORMModule} from \"./CliPluginTypeORMModule\";\n\nexport * from \"./hooks/TypeORMInitHook\";\nexport * from \"./hooks/TypeORMGenerateHook\";\nexport * from \"./utils/templateDir\";\n\nexport default CliPluginTypeORMModule;\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import readPkgUp from "read-pkg-up";
|
|
2
|
+
import { dirname, join } from "path";
|
|
3
|
+
import filedirname from "filedirname";
|
|
4
|
+
const [, dir] = filedirname();
|
|
5
|
+
const { path } = readPkgUp.sync({
|
|
6
|
+
cwd: join(dir, "..", "..")
|
|
7
|
+
});
|
|
8
|
+
export const TEMPLATE_DIR = join(dirname(path), "templates");
|
|
9
|
+
//# sourceMappingURL=templateDir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templateDir.js","sourceRoot":"","sources":["../../../src/utils/templateDir.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAC,OAAO,EAAE,IAAI,EAAC,MAAM,MAAM,CAAC;AACnC,OAAO,WAAW,MAAM,aAAa,CAAC;AACtC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,WAAW,EAAE,CAAC;AAE9B,MAAM,EAAC,IAAI,EAAC,GAAG,SAAS,CAAC,IAAI,CAAC;IAC5B,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;CAC3B,CAAE,CAAC;AAEJ,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC","sourcesContent":["import readPkgUp from \"read-pkg-up\";\nimport {dirname, join} from \"path\";\nimport filedirname from \"filedirname\";\nconst [, dir] = filedirname();\n\nconst {path} = readPkgUp.sync({\n cwd: join(dir, \"..\", \"..\")\n})!;\n\nexport const TEMPLATE_DIR = join(dirname(path), \"templates\");\n"]}
|
|
File without changes
|
|
File without changes
|
|
@@ -6,7 +6,7 @@ export declare class TypeORMInitHook {
|
|
|
6
6
|
protected rootRenderer: RootRendererService;
|
|
7
7
|
protected srcRenderer: SrcRendererService;
|
|
8
8
|
protected cliDockerComposeYaml: CliDockerComposeYaml;
|
|
9
|
-
onExec(ctx: InitCmdContext):
|
|
9
|
+
onExec(ctx: InitCmdContext): never[] | Promise<any[]>;
|
|
10
10
|
addScripts(): void;
|
|
11
11
|
addDependencies(ctx: InitCmdContext): void;
|
|
12
12
|
addDevDependencies(ctx: InitCmdContext): void;
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,20 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsed/cli-plugin-typeorm",
|
|
3
|
-
"version": "3.
|
|
4
|
-
"main": "./lib/index.js",
|
|
5
|
-
"typings": "./lib/index.d.ts",
|
|
3
|
+
"version": "3.21.0-rc.3",
|
|
6
4
|
"description": "Ts.ED CLI plugin. Add TypeORM support",
|
|
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
|
"dependencies": {
|
|
8
21
|
"change-case": "4.1.2",
|
|
9
22
|
"tslib": "2.3.1"
|
|
10
23
|
},
|
|
11
24
|
"devDependencies": {
|
|
12
|
-
"@tsed/cli": "3.
|
|
13
|
-
"@tsed/cli-core": "3.
|
|
14
|
-
},
|
|
15
|
-
"scripts": {
|
|
16
|
-
"build": "tsc --build tsconfig.compile.json",
|
|
17
|
-
"build:doc": "tsc --build tsconfig.doc.json"
|
|
25
|
+
"@tsed/cli": "3.21.0-rc.3",
|
|
26
|
+
"@tsed/cli-core": "3.21.0-rc.3"
|
|
18
27
|
},
|
|
19
28
|
"peerDependencies": {},
|
|
20
29
|
"repository": "https://github.com/tsedio/tsed-cli",
|
|
@@ -23,5 +32,8 @@
|
|
|
23
32
|
},
|
|
24
33
|
"homepage": "https://github.com/tsedio/tsed-cli/tree/master/packages/cli-plugin-typeorm",
|
|
25
34
|
"author": "Romain Lenzotti",
|
|
26
|
-
"license": "MIT"
|
|
35
|
+
"license": "MIT",
|
|
36
|
+
"publishConfig": {
|
|
37
|
+
"tag": "rc"
|
|
38
|
+
}
|
|
27
39
|
}
|
|
@@ -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":"CliPluginTypeORMModule.js","sourceRoot":"","sources":["../src/CliPluginTypeORMModule.ts"],"names":[],"mappings":";;;;AAAA,6CAAiE;AACjE,iCAAgC;AAChC,qEAAgE;AAChE,6DAAwD;AAKxD,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IAKjC,OAAO;QACL,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;YAC/B,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AARC;IADC,IAAA,WAAM,GAAE;sCACI,6BAAkB;2DAAC;AAGhC;IADC,IAAA,gBAAK,EAAC,0BAA0B,CAAC;;;;qDAKjC;AATU,sBAAsB;IAHlC,IAAA,iBAAM,EAAC;QACN,OAAO,EAAE,CAAC,iCAAe,EAAE,yCAAmB,CAAC;KAChD,CAAC;GACW,sBAAsB,CAUlC;AAVY,wDAAsB","sourcesContent":["import {Module, OnAdd, ProjectPackageJson} from \"@tsed/cli-core\";\nimport {Inject} from \"@tsed/di\";\nimport {TypeORMGenerateHook} from \"./hooks/TypeORMGenerateHook\";\nimport {TypeORMInitHook} from \"./hooks/TypeORMInitHook\";\n\n@Module({\n imports: [TypeORMInitHook, TypeORMGenerateHook]\n})\nexport class CliPluginTypeORMModule {\n @Inject()\n packageJson: ProjectPackageJson;\n\n @OnAdd(\"@tsed/cli-plugin-typeorm\")\n install() {\n this.packageJson.addDependencies({\n typeorm: \"latest\"\n });\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TypeORMGenerateHook.js","sourceRoot":"","sources":["../../src/hooks/TypeORMGenerateHook.ts"],"names":[],"mappings":"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","sourcesContent":["import {FEATURES_TYPEORM_CONNECTION_TYPES, GenerateCmdContext, ProvidersInfoService} from \"@tsed/cli\";\nimport {CliDockerComposeYaml, Inject, OnExec, OnPrompt, ProjectPackageJson, SrcRendererService, Tasks} from \"@tsed/cli-core\";\nimport {Injectable} from \"@tsed/di\";\nimport {TEMPLATE_DIR} from \"../utils/templateDir\";\nimport {constantCase} from \"change-case\";\n\nexport interface TypeORMGenerateOptions extends GenerateCmdContext {\n typeormDataSource: string;\n datasourceName: string;\n}\n\n@Injectable()\nexport class TypeORMGenerateHook {\n @Inject()\n protected projectPackageJson: ProjectPackageJson;\n\n @Inject()\n protected srcRenderService: SrcRendererService;\n\n @Inject()\n protected cliDockerComposeYaml: CliDockerComposeYaml;\n\n constructor(private providersInfoService: ProvidersInfoService) {\n providersInfoService.add(\n {\n name: \"TypeORM Datasource\",\n value: \"typeorm:datasource\",\n model: \"{{symbolName}}.datasource\"\n },\n TypeORMGenerateHook\n );\n }\n\n @OnPrompt(\"generate\")\n async onGeneratePrompt() {\n const list = FEATURES_TYPEORM_CONNECTION_TYPES.map((item) => {\n return {\n name: item.name,\n value: item.value.type\n };\n });\n\n return [\n {\n type: \"autocomplete\",\n name: \"typeormDataSource\",\n message: \"Which database type?\",\n when(state: any) {\n return state.type === \"typeorm:datasource\";\n },\n source: async (state: any, keyword: string) => {\n if (keyword) {\n return list.filter((item) => item.name.toLowerCase().includes(keyword.toLowerCase()));\n }\n\n return list;\n }\n }\n ];\n }\n\n @OnExec(\"generate\")\n onGenerateExec(ctx: TypeORMGenerateOptions): Tasks {\n if (this.providersInfoService.isMyProvider(ctx.type, TypeORMGenerateHook)) {\n return this.generateDataSourceTasks(ctx);\n }\n\n return [];\n }\n\n generateDataSourceTasks(ctx: TypeORMGenerateOptions) {\n const {typeormDataSource, symbolPath, name} = ctx;\n\n if (!typeormDataSource) {\n return [];\n }\n\n const databaseType = FEATURES_TYPEORM_CONNECTION_TYPES.find((item) => item.value.type === typeormDataSource);\n const database = typeormDataSource.split(\":\").at(-1)!;\n\n if (databaseType?.value?.dependencies) {\n this.projectPackageJson.addDependencies(databaseType?.value.dependencies || {});\n }\n\n const symbolName = ctx.symbolName.replace(\"Datasource\", \"DataSource\");\n\n return [\n {\n title: `Generate TypeORM datasource file to '${symbolPath}.ts'`,\n task: () =>\n this.srcRenderService.render(\n \"datasource.hbs\",\n {\n name,\n database,\n symbolName,\n tokenName: constantCase(symbolName)\n },\n {\n templateDir: TEMPLATE_DIR,\n output: `${ctx.symbolPath}.ts`,\n rootDir: this.srcRenderService.rootDir\n }\n )\n },\n {\n title: \"Generate docker-compose configuration\",\n task: () => this.cliDockerComposeYaml.addDatabaseService(name, database)\n }\n ];\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TypeORMInitHook.js","sourceRoot":"","sources":["../../src/hooks/TypeORMInitHook.ts"],"names":[],"mappings":";;;;AACA,6CAQwB;AACxB,iCAAoC;AACpC,6CAAuC;AAEvC,SAAS,WAAW,CAAC,GAAmB;;IACtC,OAAO,CAAA,MAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,0CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,KAAI,EAAE,CAAC;AAC5F,CAAC;AAGD,IAAa,eAAe,GAA5B,MAAa,eAAe;IAiB1B,MAAM,CAAC,GAAmB;;QACxB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAE7B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,EAAE,CAAC;SACX;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE;YAC1C,GAAG,GAAG;YACN,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,IAAA,wBAAU,EAAC,QAAQ,CAAC;YAC1B,iBAAiB,EAAE,MAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,0CAAE,IAAI;SACpF,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;YAC1B,OAAO,EAAE,0BAA0B;SACpC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,GAAmB;QACjC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,kBAAkB,CAAC,GAAmB;QACpC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;CACF,CAAA;AA/CC;IADC,IAAA,iBAAM,GAAE;sCACa,qBAAU;mDAAC;AAGjC;IADC,IAAA,iBAAM,GAAE;sCACc,6BAAkB;oDAAC;AAG1C;IADC,IAAA,iBAAM,GAAE;sCACe,8BAAmB;qDAAC;AAG5C;IADC,IAAA,iBAAM,GAAE;sCACc,6BAAkB;oDAAC;AAG1C;IADC,IAAA,iBAAM,GAAE;sCACuB,+BAAoB;6DAAC;AAGrD;IADC,IAAA,iBAAM,EAAC,MAAM,CAAC;;;;6CAkBd;AAlCU,eAAe;IAD3B,IAAA,eAAU,GAAE;GACA,eAAe,CAiD3B;AAjDY,0CAAe","sourcesContent":["import {InitCmdContext} from \"@tsed/cli\";\nimport {\n CliDockerComposeYaml,\n CliService,\n Inject,\n OnExec,\n ProjectPackageJson,\n RootRendererService,\n SrcRendererService\n} from \"@tsed/cli-core\";\nimport {Injectable} from \"@tsed/di\";\nimport {pascalCase} from \"change-case\";\n\nfunction getDatabase(ctx: InitCmdContext) {\n return ctx.features.find(({type}) => type.includes(\"typeorm:\"))?.type.split(\":\")[1] || \"\";\n}\n\n@Injectable()\nexport class TypeORMInitHook {\n @Inject()\n protected cliService: CliService;\n\n @Inject()\n protected packageJson: ProjectPackageJson;\n\n @Inject()\n protected rootRenderer: RootRendererService;\n\n @Inject()\n protected srcRenderer: SrcRendererService;\n\n @Inject()\n protected cliDockerComposeYaml: CliDockerComposeYaml;\n\n @OnExec(\"init\")\n onExec(ctx: InitCmdContext) {\n this.addScripts();\n this.addDependencies(ctx);\n this.addDevDependencies(ctx);\n\n const database = getDatabase(ctx);\n\n if (!database) {\n return [];\n }\n\n return this.cliService.getTasks(\"generate\", {\n ...ctx,\n type: \"typeorm:dataSource\",\n name: pascalCase(database),\n typeormDataSource: ctx.features.find(({type}) => type.startsWith(\"typeorm:\"))?.type\n });\n }\n\n addScripts() {\n this.packageJson.addScripts({\n typeorm: \"typeorm-ts-node-commonjs\"\n });\n }\n\n addDependencies(ctx: InitCmdContext) {\n this.packageJson.addDependencies({}, ctx);\n }\n\n addDevDependencies(ctx: InitCmdContext) {\n this.packageJson.addDevDependencies({}, ctx);\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,qEAAgE;AAEhE,kEAAwC;AACxC,sEAA4C;AAE5C,kBAAe,+CAAsB,CAAC","sourcesContent":["import {CliPluginTypeORMModule} from \"./CliPluginTypeORMModule\";\n\nexport * from \"./hooks/TypeORMInitHook\";\nexport * from \"./hooks/TypeORMGenerateHook\";\n\nexport default CliPluginTypeORMModule;\n"]}
|
package/lib/utils/templateDir.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"templateDir.js","sourceRoot":"","sources":["../../src/utils/templateDir.ts"],"names":[],"mappings":";;;AAAA,+BAA6B;AAEhB,QAAA,YAAY,GAAG,IAAA,cAAO,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC","sourcesContent":["import {resolve} from \"path\";\n\nexport const TEMPLATE_DIR = resolve(__dirname, \"..\", \"..\", \"templates\");\n"]}
|