@tsed/cli-plugin-typeorm 3.20.3 → 3.20.6

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.
@@ -7,6 +7,7 @@ const cli_1 = require("@tsed/cli");
7
7
  const cli_core_1 = require("@tsed/cli-core");
8
8
  const di_1 = require("@tsed/di");
9
9
  const templateDir_1 = require("../utils/templateDir");
10
+ const change_case_1 = require("change-case");
10
11
  let TypeORMGenerateHook = TypeORMGenerateHook_1 = class TypeORMGenerateHook {
11
12
  constructor(providersInfoService) {
12
13
  this.providersInfoService = providersInfoService;
@@ -49,29 +50,32 @@ let TypeORMGenerateHook = TypeORMGenerateHook_1 = class TypeORMGenerateHook {
49
50
  generateDataSourceTasks(ctx) {
50
51
  var _a;
51
52
  const { typeormDataSource, symbolPath, name } = ctx;
52
- const connection = cli_1.FEATURES_TYPEORM_CONNECTION_TYPES.find((item) => item.value.type === typeormDataSource);
53
- if ((_a = connection === null || connection === void 0 ? void 0 : connection.value) === null || _a === void 0 ? void 0 : _a.dependencies) {
54
- this.projectPackageJson.addDependencies((connection === null || connection === void 0 ? void 0 : connection.value.dependencies) || {});
53
+ if (!typeormDataSource) {
54
+ return [];
55
55
  }
56
+ const databaseType = cli_1.FEATURES_TYPEORM_CONNECTION_TYPES.find((item) => item.value.type === typeormDataSource);
56
57
  const database = typeormDataSource.split(":").at(-1);
58
+ if ((_a = databaseType === null || databaseType === void 0 ? void 0 : databaseType.value) === null || _a === void 0 ? void 0 : _a.dependencies) {
59
+ this.projectPackageJson.addDependencies((databaseType === null || databaseType === void 0 ? void 0 : databaseType.value.dependencies) || {});
60
+ }
61
+ const symbolName = ctx.symbolName.replace("Datasource", "DataSource");
57
62
  return [
58
63
  {
59
- title: `Generate TypeORM connection file to '${symbolPath}.ts'`,
60
- task: () => {
61
- return this.srcRenderService.render("datasource.hbs", {
62
- name,
63
- database,
64
- symbolName: ctx.symbolName.replace("Datasource", "DataSource")
65
- }, {
66
- templateDir: templateDir_1.TEMPLATE_DIR,
67
- output: `${ctx.symbolPath}.ts`,
68
- rootDir: this.srcRenderService.rootDir
69
- });
70
- }
64
+ title: `Generate TypeORM datasource file to '${symbolPath}.ts'`,
65
+ task: () => this.srcRenderService.render("datasource.hbs", {
66
+ name,
67
+ database,
68
+ symbolName,
69
+ tokenName: change_case_1.constantCase(symbolName)
70
+ }, {
71
+ templateDir: templateDir_1.TEMPLATE_DIR,
72
+ output: `${ctx.symbolPath}.ts`,
73
+ rootDir: this.srcRenderService.rootDir
74
+ })
71
75
  },
72
76
  {
73
77
  title: "Generate docker-compose configuration",
74
- task: async () => this.cliDockerComposeYaml.addDatabaseService(name, database)
78
+ task: () => this.cliDockerComposeYaml.addDatabaseService(name, database)
75
79
  }
76
80
  ];
77
81
  }
@@ -1 +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\";\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 const connection = FEATURES_TYPEORM_CONNECTION_TYPES.find((item) => item.value.type === typeormDataSource);\n\n if (connection?.value?.dependencies) {\n this.projectPackageJson.addDependencies(connection?.value.dependencies || {});\n }\n\n const database = typeormDataSource.split(\":\").at(-1)!;\n\n return [\n {\n title: `Generate TypeORM connection file to '${symbolPath}.ts'`,\n task: () => {\n return this.srcRenderService.render(\n \"datasource.hbs\",\n {\n name,\n database,\n symbolName: ctx.symbolName.replace(\"Datasource\", \"DataSource\")\n },\n {\n templateDir: TEMPLATE_DIR,\n output: `${ctx.symbolPath}.ts`,\n rootDir: this.srcRenderService.rootDir\n }\n );\n }\n },\n {\n title: \"Generate docker-compose configuration\",\n task: async () => this.cliDockerComposeYaml.addDatabaseService(name, database)\n }\n ];\n }\n}\n"]}
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"]}
@@ -11,6 +11,7 @@ function getDatabase(ctx) {
11
11
  }
12
12
  let TypeORMInitHook = class TypeORMInitHook {
13
13
  onExec(ctx) {
14
+ var _a;
14
15
  this.addScripts();
15
16
  this.addDependencies(ctx);
16
17
  this.addDevDependencies(ctx);
@@ -21,7 +22,8 @@ let TypeORMInitHook = class TypeORMInitHook {
21
22
  return this.cliService.getTasks("generate", {
22
23
  ...ctx,
23
24
  type: "typeorm:dataSource",
24
- name: change_case_1.pascalCase(database)
25
+ name: change_case_1.pascalCase(database),
26
+ typeormDataSource: (_a = ctx.features.find(({ type }) => type.startsWith("typeorm:"))) === null || _a === void 0 ? void 0 : _a.type
25
27
  });
26
28
  }
27
29
  addScripts() {
@@ -1 +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,wBAAU,CAAC,QAAQ,CAAC;SAC3B,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;AA9CC;IADC,iBAAM,EAAE;sCACa,qBAAU;mDAAC;AAGjC;IADC,iBAAM,EAAE;sCACc,6BAAkB;oDAAC;AAG1C;IADC,iBAAM,EAAE;sCACe,8BAAmB;qDAAC;AAG5C;IADC,iBAAM,EAAE;sCACc,6BAAkB;oDAAC;AAG1C;IADC,iBAAM,EAAE;sCACuB,+BAAoB;6DAAC;AAGrD;IADC,iBAAM,CAAC,MAAM,CAAC;;;;6CAiBd;AAjCU,eAAe;IAD3B,eAAU,EAAE;GACA,eAAe,CAgD3B;AAhDY,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 });\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"]}
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,wBAAU,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,iBAAM,EAAE;sCACa,qBAAU;mDAAC;AAGjC;IADC,iBAAM,EAAE;sCACc,6BAAkB;oDAAC;AAG1C;IADC,iBAAM,EAAE;sCACe,8BAAmB;qDAAC;AAG5C;IADC,iBAAM,EAAE;sCACc,6BAAkB;oDAAC;AAG1C;IADC,iBAAM,EAAE;sCACuB,+BAAoB;6DAAC;AAGrD;IADC,iBAAM,CAAC,MAAM,CAAC;;;;6CAkBd;AAlCU,eAAe;IAD3B,eAAU,EAAE;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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsed/cli-plugin-typeorm",
3
- "version": "3.20.3",
3
+ "version": "3.20.6",
4
4
  "main": "./lib/index.js",
5
5
  "typings": "./lib/index.d.ts",
6
6
  "description": "Ts.ED CLI plugin. Add TypeORM support",
@@ -9,8 +9,8 @@
9
9
  "tslib": "2.3.1"
10
10
  },
11
11
  "devDependencies": {
12
- "@tsed/cli": "3.20.3",
13
- "@tsed/cli-core": "3.20.3"
12
+ "@tsed/cli": "3.20.6",
13
+ "@tsed/cli-core": "3.20.6"
14
14
  },
15
15
  "scripts": {
16
16
  "build": "tsc --build tsconfig.compile.json",
@@ -1,8 +1,8 @@
1
- import {Configuration, registerProvider} from "@tsed/di";
2
- import {createConnection} from "@tsed/typeorm";
1
+ import {registerProvider} from "@tsed/di";
3
2
  import {DataSource} from "typeorm";
4
3
  import {Logger} from "@tsed/logger";
5
4
 
5
+ export const {{tokenName}} = Symbol.for({{symbolName}})
6
6
  export const {{symbolName}} = new DataSource({
7
7
  type: "{{database}}",
8
8
  {{#switch database}}
@@ -60,13 +60,13 @@ export const {{symbolName}} = new DataSource({
60
60
  });
61
61
 
62
62
  registerProvider<DataSource>({
63
- provide: {{symbolName}},
63
+ provide: {{tokenName}},
64
64
  type: "typeorm:datasource",
65
65
  deps: [Logger],
66
66
  async useAsyncFactory(logger: Logger) {
67
67
  await {{symbolName}}.initialize();
68
68
 
69
- logger.info('Connected with typeorm to database: {{name}}');
69
+ logger.info("Connected with typeorm to database: {{name}}");
70
70
 
71
71
  return {{symbolName}};
72
72
  },