@tsed/cli-plugin-mongoose 3.20.14 → 3.21.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/lib/{CliPluginMongooseModule.js → cjs/CliPluginMongooseModule.js} +0 -0
  2. package/lib/cjs/CliPluginMongooseModule.js.map +1 -0
  3. package/lib/{hooks → cjs/hooks}/MongooseGenerateHook.js +4 -2
  4. package/lib/cjs/hooks/MongooseGenerateHook.js.map +1 -0
  5. package/lib/{hooks → cjs/hooks}/MongooseInitHook.js +0 -0
  6. package/lib/cjs/hooks/MongooseInitHook.js.map +1 -0
  7. package/lib/{index.js → cjs/index.js} +1 -0
  8. package/lib/cjs/index.js.map +1 -0
  9. package/lib/cjs/package.json +3 -0
  10. package/lib/{services → cjs/services}/CliMongoose.js +0 -0
  11. package/lib/cjs/services/CliMongoose.js.map +1 -0
  12. package/lib/cjs/utils/templateDir.js +13 -0
  13. package/lib/cjs/utils/templateDir.js.map +1 -0
  14. package/lib/esm/CliPluginMongooseModule.js +34 -0
  15. package/lib/esm/CliPluginMongooseModule.js.map +1 -0
  16. package/lib/esm/hooks/MongooseGenerateHook.js +102 -0
  17. package/lib/esm/hooks/MongooseGenerateHook.js.map +1 -0
  18. package/lib/esm/hooks/MongooseInitHook.js +63 -0
  19. package/lib/esm/hooks/MongooseInitHook.js.map +1 -0
  20. package/lib/esm/index.js +7 -0
  21. package/lib/esm/index.js.map +1 -0
  22. package/lib/esm/package.json +3 -0
  23. package/lib/esm/services/CliMongoose.js +49 -0
  24. package/lib/esm/services/CliMongoose.js.map +1 -0
  25. package/lib/esm/utils/templateDir.js +9 -0
  26. package/lib/esm/utils/templateDir.js.map +1 -0
  27. package/lib/{CliPluginMongooseModule.d.ts → types/CliPluginMongooseModule.d.ts} +0 -0
  28. package/lib/{hooks → types/hooks}/MongooseGenerateHook.d.ts +0 -0
  29. package/lib/{hooks → types/hooks}/MongooseInitHook.d.ts +0 -0
  30. package/lib/{index.d.ts → types/index.d.ts} +1 -0
  31. package/lib/{services → types/services}/CliMongoose.d.ts +0 -0
  32. package/lib/{utils → types/utils}/templateDir.d.ts +0 -0
  33. package/package.json +22 -10
  34. package/tsconfig.compile.esm.json +12 -0
  35. package/lib/CliPluginMongooseModule.js.map +0 -1
  36. package/lib/hooks/MongooseGenerateHook.js.map +0 -1
  37. package/lib/hooks/MongooseInitHook.js.map +0 -1
  38. package/lib/index.js.map +0 -1
  39. package/lib/services/CliMongoose.js.map +0 -1
  40. package/lib/utils/templateDir.js +0 -6
  41. package/lib/utils/templateDir.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliPluginMongooseModule.js","sourceRoot":"","sources":["../../src/CliPluginMongooseModule.ts"],"names":[],"mappings":";;;;AAAA,6CAAiE;AACjE,iCAAgC;AAChC,uEAAkE;AAClE,+DAA0D;AAC1D,wDAAmD;AAKnD,IAAa,uBAAuB,GAApC,MAAa,uBAAuB;IAKlC,OAAO;QACL,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;YAC/B,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC;YAC/D,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC;YAClC,wBAAwB,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC;SACxE,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAbC;IADC,IAAA,WAAM,GAAE;sCACI,6BAAkB;4DAAC;AAGhC;IADC,IAAA,gBAAK,EAAC,2BAA2B,CAAC;;;;sDAUlC;AAdU,uBAAuB;IAHnC,IAAA,iBAAM,EAAC;QACN,OAAO,EAAE,CAAC,mCAAgB,EAAE,2CAAoB,EAAE,yBAAW,CAAC;KAC/D,CAAC;GACW,uBAAuB,CAenC;AAfY,0DAAuB","sourcesContent":["import {Module, OnAdd, ProjectPackageJson} from \"@tsed/cli-core\";\nimport {Inject} from \"@tsed/di\";\nimport {MongooseGenerateHook} from \"./hooks/MongooseGenerateHook\";\nimport {MongooseInitHook} from \"./hooks/MongooseInitHook\";\nimport {CliMongoose} from \"./services/CliMongoose\";\n\n@Module({\n imports: [MongooseInitHook, MongooseGenerateHook, CliMongoose]\n})\nexport class CliPluginMongooseModule {\n @Inject()\n packageJson: ProjectPackageJson;\n\n @OnAdd(\"@tsed/cli-plugin-mongoose\")\n install() {\n this.packageJson.addDependencies({\n \"@tsed/mongoose\": this.packageJson.dependencies[\"@tsed/common\"],\n mongoose: \"latest\"\n });\n\n this.packageJson.addDevDependencies({\n \"@tsed/testing-mongoose\": this.packageJson.dependencies[\"@tsed/common\"]\n });\n }\n}\n"]}
@@ -6,10 +6,12 @@ const tslib_1 = require("tslib");
6
6
  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
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
10
+ // @ts-ignore
11
+ const pluralize_1 = require("pluralize");
9
12
  const change_case_1 = require("change-case");
10
13
  const CliMongoose_1 = require("../services/CliMongoose");
11
14
  const templateDir_1 = require("../utils/templateDir");
12
- const { plural } = require("pluralize");
13
15
  let MongooseGenerateHook = MongooseGenerateHook_1 = class MongooseGenerateHook {
14
16
  constructor(providersInfoService) {
15
17
  this.providersInfoService = providersInfoService;
@@ -48,7 +50,7 @@ let MongooseGenerateHook = MongooseGenerateHook_1 = class MongooseGenerateHook {
48
50
  const template = `mongoose.${type.split(":")[1]}.hbs`;
49
51
  const newCtx = {
50
52
  ...ctx,
51
- collectionName: plural((0, change_case_1.camelCase)(symbolName.replace(/Schema|Model/gi, "")))
53
+ collectionName: (0, pluralize_1.plural)((0, change_case_1.camelCase)(symbolName.replace(/Schema|Model/gi, "")))
52
54
  };
53
55
  return [
54
56
  {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongooseGenerateHook.js","sourceRoot":"","sources":["../../../src/hooks/MongooseGenerateHook.ts"],"names":[],"mappings":"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","sourcesContent":["import {GenerateCmdContext, ProvidersInfoService} from \"@tsed/cli\";\nimport {CliDockerComposeYaml, Inject, OnExec, ProjectPackageJson, SrcRendererService, Tasks} from \"@tsed/cli-core\";\nimport {Injectable} from \"@tsed/di\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport {plural} from \"pluralize\";\nimport {camelCase, paramCase} from \"change-case\";\nimport {CliMongoose} from \"../services/CliMongoose\";\nimport {TEMPLATE_DIR} from \"../utils/templateDir\";\n\n@Injectable()\nexport class MongooseGenerateHook {\n @Inject()\n projectPackageJson: ProjectPackageJson;\n\n @Inject()\n srcRenderService: SrcRendererService;\n\n @Inject()\n cliMongoose: CliMongoose;\n\n packages: any[];\n @Inject()\n protected cliDockerComposeYaml: CliDockerComposeYaml;\n\n constructor(private providersInfoService: ProvidersInfoService) {\n providersInfoService\n .add(\n {\n name: \"Mongoose model\",\n value: \"mongoose:model\",\n model: \"{{symbolName}}.model\",\n baseDir: \"models\"\n },\n MongooseGenerateHook\n )\n .add(\n {\n name: \"Mongoose schema\",\n value: \"mongoose:schema\",\n model: \"{{symbolName}}.schema\",\n baseDir: \"models\"\n },\n MongooseGenerateHook\n )\n .add(\n {\n name: \"Mongoose connection\",\n value: \"mongoose:connection\"\n },\n MongooseGenerateHook\n );\n }\n\n @OnExec(\"generate\")\n onGenerateExec(ctx: GenerateCmdContext): Tasks {\n if (this.providersInfoService.isMyProvider(ctx.type, MongooseGenerateHook)) {\n switch (ctx.type) {\n case \"mongoose:connection\":\n return this.generateConnection(ctx);\n case \"mongoose:model\":\n case \"mongoose:schema\":\n return this.generateTemplate(ctx);\n }\n }\n\n return [];\n }\n\n private generateTemplate(ctx: GenerateCmdContext) {\n const {symbolPath, type, symbolName} = ctx;\n const template = `mongoose.${type.split(\":\")[1]}.hbs`;\n const newCtx = {\n ...ctx,\n collectionName: plural(camelCase(symbolName.replace(/Schema|Model/gi, \"\")))\n };\n\n return [\n {\n title: `Generate ${ctx.type} file to '${symbolPath}.ts'`,\n task: () =>\n this.srcRenderService.render(template, newCtx, {\n output: `${symbolPath}.ts`,\n templateDir: TEMPLATE_DIR\n })\n }\n ];\n }\n\n private generateConnection(ctx: GenerateCmdContext) {\n return [\n {\n title: `Generate Mongoose configuration file to '${paramCase(ctx.name)}.config.ts'`,\n task: () => this.cliMongoose.writeConfig(ctx.name, ctx)\n },\n {\n title: \"Generate docker-compose configuration\",\n task: async () => this.cliDockerComposeYaml.addDatabaseService(ctx.name, \"mongodb\")\n }\n ];\n }\n}\n"]}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongooseInitHook.js","sourceRoot":"","sources":["../../../src/hooks/MongooseInitHook.ts"],"names":[],"mappings":";;;;AACA,6CAAiI;AACjI,iCAAoC;AACpC,yDAAoD;AAGpD,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAiB3B,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,OAAO;YACL;gBACE,KAAK,EAAE,iCAAiC;gBACxC,IAAI,EAAE,KAAK,IAAI,EAAE,CACf,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,EAAE;oBACtC,UAAU,EAAE,kBAAkB;iBAC/B,CAAC;aACL;YACD;gBACE,KAAK,EAAE,uCAAuC;gBAC9C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC;aACrF;SACF,CAAC;IACJ,CAAC;IAED,UAAU;QACR,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAClC,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,IAAA,iBAAM,GAAE;sCACI,yBAAW;qDAAC;AAGzB;IADC,IAAA,iBAAM,GAAE;sCACc,6BAAkB;qDAAC;AAG1C;IADC,IAAA,iBAAM,GAAE;sCACe,8BAAmB;sDAAC;AAG5C;IADC,IAAA,iBAAM,GAAE;sCACc,6BAAkB;qDAAC;AAG1C;IADC,IAAA,iBAAM,GAAE;sCACuB,+BAAoB;8DAAC;AAGrD;IADC,IAAA,iBAAM,EAAC,MAAM,CAAC;;;;8CAmBd;AAnCU,gBAAgB;IAD5B,IAAA,eAAU,GAAE;GACA,gBAAgB,CAgD5B;AAhDY,4CAAgB","sourcesContent":["import {InitCmdContext} from \"@tsed/cli\";\nimport {CliDockerComposeYaml, Inject, OnExec, ProjectPackageJson, RootRendererService, SrcRendererService} from \"@tsed/cli-core\";\nimport {Injectable} from \"@tsed/di\";\nimport {CliMongoose} from \"../services/CliMongoose\";\n\n@Injectable()\nexport class MongooseInitHook {\n @Inject()\n cliMongoose: CliMongoose;\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 return [\n {\n title: \"Generate Mongoose configuration\",\n task: async () =>\n this.cliMongoose.writeConfig(\"default\", {\n symbolName: \"MONGOOSE_DEFAULT\"\n })\n },\n {\n title: \"Generate docker-compose configuration\",\n task: async () => this.cliDockerComposeYaml.addDatabaseService(\"mongodb\", \"mongodb\")\n }\n ];\n }\n\n addScripts() {\n this.packageJson.addScripts({});\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"]}
@@ -5,5 +5,6 @@ const CliPluginMongooseModule_1 = require("./CliPluginMongooseModule");
5
5
  tslib_1.__exportStar(require("./hooks/MongooseInitHook"), exports);
6
6
  tslib_1.__exportStar(require("./hooks/MongooseGenerateHook"), exports);
7
7
  tslib_1.__exportStar(require("./services/CliMongoose"), exports);
8
+ tslib_1.__exportStar(require("./utils/templateDir"), exports);
8
9
  exports.default = CliPluginMongooseModule_1.CliPluginMongooseModule;
9
10
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,uEAAkE;AAElE,mEAAyC;AACzC,uEAA6C;AAC7C,iEAAuC;AACvC,8DAAoC;AAEpC,kBAAe,iDAAuB,CAAC","sourcesContent":["import {CliPluginMongooseModule} from \"./CliPluginMongooseModule\";\n\nexport * from \"./hooks/MongooseInitHook\";\nexport * from \"./hooks/MongooseGenerateHook\";\nexport * from \"./services/CliMongoose\";\nexport * from \"./utils/templateDir\";\n\nexport default CliPluginMongooseModule;\n"]}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliMongoose.js","sourceRoot":"","sources":["../../../src/services/CliMongoose.ts"],"names":[],"mappings":";;;;AAAA,6CAA0F;AAC1F,6CAA+D;AAC/D,+BAAoC;AACpC,sDAAkD;AAGlD,IAAa,WAAW,GAAxB,MAAa,WAAW;IAOtB,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,UAAe,EAAE;QAC/C,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAC3B,YAAY,EACZ;YACE,GAAG,OAAO;YACV,UAAU,EAAE,IAAA,0BAAY,EAAC,IAAI,CAAC;YAC9B,IAAI,EAAE,IAAA,uBAAS,EAAC,IAAI,CAAC;SACtB,EACD;YACE,MAAM,EAAE,GAAG,IAAA,uBAAS,EAAC,IAAI,CAAC,YAAY;YACtC,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC;YAC7D,WAAW,EAAE,0BAAY;SAC1B,CACF,CAAC;QAEF,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAE1E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAChC,MAAM,IAAI,GAAG,IAAA,eAAQ,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAE1D,OAAO;gBACL,IAAI;gBACJ,UAAU,EAAE,IAAA,uBAAS,EAAC,IAAI,CAAC;aAC5B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAC5B,WAAW,EACX;YACE,OAAO;SACR,EACD;YACE,WAAW,EAAE,0BAAY;YACzB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC;SAC9D,CACF,CAAC;IACJ,CAAC;CACF,CAAA;AA/CC;IADC,IAAA,iBAAM,GAAE;sCACW,6BAAkB;uDAAC;AAGvC;IADC,IAAA,iBAAM,GAAE;sCACc,6BAAkB;gDAAC;AAL/B,WAAW;IADvB,IAAA,qBAAU,GAAE;GACA,WAAW,CAiDvB;AAjDY,kCAAW","sourcesContent":["import {Inject, Injectable, ProjectPackageJson, SrcRendererService} from \"@tsed/cli-core\";\nimport {camelCase, constantCase, paramCase} from \"change-case\";\nimport {basename, join} from \"path\";\nimport {TEMPLATE_DIR} from \"../utils/templateDir\";\n\n@Injectable()\nexport class CliMongoose {\n @Inject()\n projectPackageJson: ProjectPackageJson;\n\n @Inject()\n protected srcRenderer: SrcRendererService;\n\n async writeConfig(name: string, options: any = {}) {\n await this.srcRenderer.render(\n \"config.hbs\",\n {\n ...options,\n symbolName: constantCase(name),\n name: paramCase(name)\n },\n {\n output: `${paramCase(name)}.config.ts`,\n rootDir: join(this.srcRenderer.rootDir, \"config\", \"mongoose\"),\n templateDir: TEMPLATE_DIR\n }\n );\n\n return this.regenerateIndexConfig();\n }\n\n async regenerateIndexConfig() {\n const list = await this.srcRenderer.scan([\"config/mongoose/*.config.ts\"]);\n\n const configs = list.map((file) => {\n const name = basename(file).replace(/\\.config\\.ts/gi, \"\");\n\n return {\n name,\n symbolName: camelCase(name)\n };\n });\n\n return this.srcRenderer.render(\n \"index.hbs\",\n {\n configs\n },\n {\n templateDir: TEMPLATE_DIR,\n output: \"index.ts\",\n rootDir: join(this.srcRenderer.rootDir, \"config\", \"mongoose\")\n }\n );\n }\n}\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: 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,GAAG;CACT,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: dir\n})!;\n\nexport const TEMPLATE_DIR = join(dirname(path), \"templates\");\n"]}
@@ -0,0 +1,34 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Module, OnAdd, ProjectPackageJson } from "@tsed/cli-core";
3
+ import { Inject } from "@tsed/di";
4
+ import { MongooseGenerateHook } from "./hooks/MongooseGenerateHook.js";
5
+ import { MongooseInitHook } from "./hooks/MongooseInitHook.js";
6
+ import { CliMongoose } from "./services/CliMongoose.js";
7
+ let CliPluginMongooseModule = class CliPluginMongooseModule {
8
+ install() {
9
+ this.packageJson.addDependencies({
10
+ "@tsed/mongoose": this.packageJson.dependencies["@tsed/common"],
11
+ mongoose: "latest"
12
+ });
13
+ this.packageJson.addDevDependencies({
14
+ "@tsed/testing-mongoose": this.packageJson.dependencies["@tsed/common"]
15
+ });
16
+ }
17
+ };
18
+ __decorate([
19
+ Inject(),
20
+ __metadata("design:type", ProjectPackageJson)
21
+ ], CliPluginMongooseModule.prototype, "packageJson", void 0);
22
+ __decorate([
23
+ OnAdd("@tsed/cli-plugin-mongoose"),
24
+ __metadata("design:type", Function),
25
+ __metadata("design:paramtypes", []),
26
+ __metadata("design:returntype", void 0)
27
+ ], CliPluginMongooseModule.prototype, "install", null);
28
+ CliPluginMongooseModule = __decorate([
29
+ Module({
30
+ imports: [MongooseInitHook, MongooseGenerateHook, CliMongoose]
31
+ })
32
+ ], CliPluginMongooseModule);
33
+ export { CliPluginMongooseModule };
34
+ //# sourceMappingURL=CliPluginMongooseModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliPluginMongooseModule.js","sourceRoot":"","sources":["../../src/CliPluginMongooseModule.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,oBAAoB,EAAC,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAC;AAKnD,IAAa,uBAAuB,GAApC,MAAa,uBAAuB;IAKlC,OAAO;QACL,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;YAC/B,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC;YAC/D,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC;YAClC,wBAAwB,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC;SACxE,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAbC;IADC,MAAM,EAAE;8BACI,kBAAkB;4DAAC;AAGhC;IADC,KAAK,CAAC,2BAA2B,CAAC;;;;sDAUlC;AAdU,uBAAuB;IAHnC,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,WAAW,CAAC;KAC/D,CAAC;GACW,uBAAuB,CAenC;SAfY,uBAAuB","sourcesContent":["import {Module, OnAdd, ProjectPackageJson} from \"@tsed/cli-core\";\nimport {Inject} from \"@tsed/di\";\nimport {MongooseGenerateHook} from \"./hooks/MongooseGenerateHook\";\nimport {MongooseInitHook} from \"./hooks/MongooseInitHook\";\nimport {CliMongoose} from \"./services/CliMongoose\";\n\n@Module({\n imports: [MongooseInitHook, MongooseGenerateHook, CliMongoose]\n})\nexport class CliPluginMongooseModule {\n @Inject()\n packageJson: ProjectPackageJson;\n\n @OnAdd(\"@tsed/cli-plugin-mongoose\")\n install() {\n this.packageJson.addDependencies({\n \"@tsed/mongoose\": this.packageJson.dependencies[\"@tsed/common\"],\n mongoose: \"latest\"\n });\n\n this.packageJson.addDevDependencies({\n \"@tsed/testing-mongoose\": this.packageJson.dependencies[\"@tsed/common\"]\n });\n }\n}\n"]}
@@ -0,0 +1,102 @@
1
+ var MongooseGenerateHook_1;
2
+ import { __decorate, __metadata } from "tslib";
3
+ import { ProvidersInfoService } from "@tsed/cli";
4
+ import { CliDockerComposeYaml, Inject, OnExec, ProjectPackageJson, SrcRendererService } from "@tsed/cli-core";
5
+ import { Injectable } from "@tsed/di";
6
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
7
+ // @ts-ignore
8
+ import { plural } from "pluralize";
9
+ import { camelCase, paramCase } from "change-case";
10
+ import { CliMongoose } from "../services/CliMongoose.js";
11
+ import { TEMPLATE_DIR } from "../utils/templateDir.js";
12
+ let MongooseGenerateHook = MongooseGenerateHook_1 = class MongooseGenerateHook {
13
+ constructor(providersInfoService) {
14
+ this.providersInfoService = providersInfoService;
15
+ providersInfoService
16
+ .add({
17
+ name: "Mongoose model",
18
+ value: "mongoose:model",
19
+ model: "{{symbolName}}.model",
20
+ baseDir: "models"
21
+ }, MongooseGenerateHook_1)
22
+ .add({
23
+ name: "Mongoose schema",
24
+ value: "mongoose:schema",
25
+ model: "{{symbolName}}.schema",
26
+ baseDir: "models"
27
+ }, MongooseGenerateHook_1)
28
+ .add({
29
+ name: "Mongoose connection",
30
+ value: "mongoose:connection"
31
+ }, MongooseGenerateHook_1);
32
+ }
33
+ onGenerateExec(ctx) {
34
+ if (this.providersInfoService.isMyProvider(ctx.type, MongooseGenerateHook_1)) {
35
+ switch (ctx.type) {
36
+ case "mongoose:connection":
37
+ return this.generateConnection(ctx);
38
+ case "mongoose:model":
39
+ case "mongoose:schema":
40
+ return this.generateTemplate(ctx);
41
+ }
42
+ }
43
+ return [];
44
+ }
45
+ generateTemplate(ctx) {
46
+ const { symbolPath, type, symbolName } = ctx;
47
+ const template = `mongoose.${type.split(":")[1]}.hbs`;
48
+ const newCtx = {
49
+ ...ctx,
50
+ collectionName: plural(camelCase(symbolName.replace(/Schema|Model/gi, "")))
51
+ };
52
+ return [
53
+ {
54
+ title: `Generate ${ctx.type} file to '${symbolPath}.ts'`,
55
+ task: () => this.srcRenderService.render(template, newCtx, {
56
+ output: `${symbolPath}.ts`,
57
+ templateDir: TEMPLATE_DIR
58
+ })
59
+ }
60
+ ];
61
+ }
62
+ generateConnection(ctx) {
63
+ return [
64
+ {
65
+ title: `Generate Mongoose configuration file to '${paramCase(ctx.name)}.config.ts'`,
66
+ task: () => this.cliMongoose.writeConfig(ctx.name, ctx)
67
+ },
68
+ {
69
+ title: "Generate docker-compose configuration",
70
+ task: async () => this.cliDockerComposeYaml.addDatabaseService(ctx.name, "mongodb")
71
+ }
72
+ ];
73
+ }
74
+ };
75
+ __decorate([
76
+ Inject(),
77
+ __metadata("design:type", ProjectPackageJson)
78
+ ], MongooseGenerateHook.prototype, "projectPackageJson", void 0);
79
+ __decorate([
80
+ Inject(),
81
+ __metadata("design:type", SrcRendererService)
82
+ ], MongooseGenerateHook.prototype, "srcRenderService", void 0);
83
+ __decorate([
84
+ Inject(),
85
+ __metadata("design:type", CliMongoose)
86
+ ], MongooseGenerateHook.prototype, "cliMongoose", void 0);
87
+ __decorate([
88
+ Inject(),
89
+ __metadata("design:type", CliDockerComposeYaml)
90
+ ], MongooseGenerateHook.prototype, "cliDockerComposeYaml", void 0);
91
+ __decorate([
92
+ OnExec("generate"),
93
+ __metadata("design:type", Function),
94
+ __metadata("design:paramtypes", [Object]),
95
+ __metadata("design:returntype", Array)
96
+ ], MongooseGenerateHook.prototype, "onGenerateExec", null);
97
+ MongooseGenerateHook = MongooseGenerateHook_1 = __decorate([
98
+ Injectable(),
99
+ __metadata("design:paramtypes", [ProvidersInfoService])
100
+ ], MongooseGenerateHook);
101
+ export { MongooseGenerateHook };
102
+ //# sourceMappingURL=MongooseGenerateHook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongooseGenerateHook.js","sourceRoot":"","sources":["../../../src/hooks/MongooseGenerateHook.ts"],"names":[],"mappings":"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","sourcesContent":["import {GenerateCmdContext, ProvidersInfoService} from \"@tsed/cli\";\nimport {CliDockerComposeYaml, Inject, OnExec, ProjectPackageJson, SrcRendererService, Tasks} from \"@tsed/cli-core\";\nimport {Injectable} from \"@tsed/di\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport {plural} from \"pluralize\";\nimport {camelCase, paramCase} from \"change-case\";\nimport {CliMongoose} from \"../services/CliMongoose\";\nimport {TEMPLATE_DIR} from \"../utils/templateDir\";\n\n@Injectable()\nexport class MongooseGenerateHook {\n @Inject()\n projectPackageJson: ProjectPackageJson;\n\n @Inject()\n srcRenderService: SrcRendererService;\n\n @Inject()\n cliMongoose: CliMongoose;\n\n packages: any[];\n @Inject()\n protected cliDockerComposeYaml: CliDockerComposeYaml;\n\n constructor(private providersInfoService: ProvidersInfoService) {\n providersInfoService\n .add(\n {\n name: \"Mongoose model\",\n value: \"mongoose:model\",\n model: \"{{symbolName}}.model\",\n baseDir: \"models\"\n },\n MongooseGenerateHook\n )\n .add(\n {\n name: \"Mongoose schema\",\n value: \"mongoose:schema\",\n model: \"{{symbolName}}.schema\",\n baseDir: \"models\"\n },\n MongooseGenerateHook\n )\n .add(\n {\n name: \"Mongoose connection\",\n value: \"mongoose:connection\"\n },\n MongooseGenerateHook\n );\n }\n\n @OnExec(\"generate\")\n onGenerateExec(ctx: GenerateCmdContext): Tasks {\n if (this.providersInfoService.isMyProvider(ctx.type, MongooseGenerateHook)) {\n switch (ctx.type) {\n case \"mongoose:connection\":\n return this.generateConnection(ctx);\n case \"mongoose:model\":\n case \"mongoose:schema\":\n return this.generateTemplate(ctx);\n }\n }\n\n return [];\n }\n\n private generateTemplate(ctx: GenerateCmdContext) {\n const {symbolPath, type, symbolName} = ctx;\n const template = `mongoose.${type.split(\":\")[1]}.hbs`;\n const newCtx = {\n ...ctx,\n collectionName: plural(camelCase(symbolName.replace(/Schema|Model/gi, \"\")))\n };\n\n return [\n {\n title: `Generate ${ctx.type} file to '${symbolPath}.ts'`,\n task: () =>\n this.srcRenderService.render(template, newCtx, {\n output: `${symbolPath}.ts`,\n templateDir: TEMPLATE_DIR\n })\n }\n ];\n }\n\n private generateConnection(ctx: GenerateCmdContext) {\n return [\n {\n title: `Generate Mongoose configuration file to '${paramCase(ctx.name)}.config.ts'`,\n task: () => this.cliMongoose.writeConfig(ctx.name, ctx)\n },\n {\n title: \"Generate docker-compose configuration\",\n task: async () => this.cliDockerComposeYaml.addDatabaseService(ctx.name, \"mongodb\")\n }\n ];\n }\n}\n"]}
@@ -0,0 +1,63 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { CliDockerComposeYaml, Inject, OnExec, ProjectPackageJson, RootRendererService, SrcRendererService } from "@tsed/cli-core";
3
+ import { Injectable } from "@tsed/di";
4
+ import { CliMongoose } from "../services/CliMongoose.js";
5
+ let MongooseInitHook = class MongooseInitHook {
6
+ onExec(ctx) {
7
+ this.addScripts();
8
+ this.addDependencies(ctx);
9
+ this.addDevDependencies(ctx);
10
+ return [
11
+ {
12
+ title: "Generate Mongoose configuration",
13
+ task: async () => this.cliMongoose.writeConfig("default", {
14
+ symbolName: "MONGOOSE_DEFAULT"
15
+ })
16
+ },
17
+ {
18
+ title: "Generate docker-compose configuration",
19
+ task: async () => this.cliDockerComposeYaml.addDatabaseService("mongodb", "mongodb")
20
+ }
21
+ ];
22
+ }
23
+ addScripts() {
24
+ this.packageJson.addScripts({});
25
+ }
26
+ addDependencies(ctx) {
27
+ this.packageJson.addDependencies({}, ctx);
28
+ }
29
+ addDevDependencies(ctx) {
30
+ this.packageJson.addDevDependencies({}, ctx);
31
+ }
32
+ };
33
+ __decorate([
34
+ Inject(),
35
+ __metadata("design:type", CliMongoose)
36
+ ], MongooseInitHook.prototype, "cliMongoose", void 0);
37
+ __decorate([
38
+ Inject(),
39
+ __metadata("design:type", ProjectPackageJson)
40
+ ], MongooseInitHook.prototype, "packageJson", void 0);
41
+ __decorate([
42
+ Inject(),
43
+ __metadata("design:type", RootRendererService)
44
+ ], MongooseInitHook.prototype, "rootRenderer", void 0);
45
+ __decorate([
46
+ Inject(),
47
+ __metadata("design:type", SrcRendererService)
48
+ ], MongooseInitHook.prototype, "srcRenderer", void 0);
49
+ __decorate([
50
+ Inject(),
51
+ __metadata("design:type", CliDockerComposeYaml)
52
+ ], MongooseInitHook.prototype, "cliDockerComposeYaml", void 0);
53
+ __decorate([
54
+ OnExec("init"),
55
+ __metadata("design:type", Function),
56
+ __metadata("design:paramtypes", [Object]),
57
+ __metadata("design:returntype", void 0)
58
+ ], MongooseInitHook.prototype, "onExec", null);
59
+ MongooseInitHook = __decorate([
60
+ Injectable()
61
+ ], MongooseInitHook);
62
+ export { MongooseInitHook };
63
+ //# sourceMappingURL=MongooseInitHook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongooseInitHook.js","sourceRoot":"","sources":["../../../src/hooks/MongooseInitHook.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,oBAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AACjI,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAGpD,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAiB3B,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,OAAO;YACL;gBACE,KAAK,EAAE,iCAAiC;gBACxC,IAAI,EAAE,KAAK,IAAI,EAAE,CACf,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,EAAE;oBACtC,UAAU,EAAE,kBAAkB;iBAC/B,CAAC;aACL;YACD;gBACE,KAAK,EAAE,uCAAuC;gBAC9C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC;aACrF;SACF,CAAC;IACJ,CAAC;IAED,UAAU;QACR,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAClC,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,MAAM,EAAE;8BACI,WAAW;qDAAC;AAGzB;IADC,MAAM,EAAE;8BACc,kBAAkB;qDAAC;AAG1C;IADC,MAAM,EAAE;8BACe,mBAAmB;sDAAC;AAG5C;IADC,MAAM,EAAE;8BACc,kBAAkB;qDAAC;AAG1C;IADC,MAAM,EAAE;8BACuB,oBAAoB;8DAAC;AAGrD;IADC,MAAM,CAAC,MAAM,CAAC;;;;8CAmBd;AAnCU,gBAAgB;IAD5B,UAAU,EAAE;GACA,gBAAgB,CAgD5B;SAhDY,gBAAgB","sourcesContent":["import {InitCmdContext} from \"@tsed/cli\";\nimport {CliDockerComposeYaml, Inject, OnExec, ProjectPackageJson, RootRendererService, SrcRendererService} from \"@tsed/cli-core\";\nimport {Injectable} from \"@tsed/di\";\nimport {CliMongoose} from \"../services/CliMongoose\";\n\n@Injectable()\nexport class MongooseInitHook {\n @Inject()\n cliMongoose: CliMongoose;\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 return [\n {\n title: \"Generate Mongoose configuration\",\n task: async () =>\n this.cliMongoose.writeConfig(\"default\", {\n symbolName: \"MONGOOSE_DEFAULT\"\n })\n },\n {\n title: \"Generate docker-compose configuration\",\n task: async () => this.cliDockerComposeYaml.addDatabaseService(\"mongodb\", \"mongodb\")\n }\n ];\n }\n\n addScripts() {\n this.packageJson.addScripts({});\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"]}
@@ -0,0 +1,7 @@
1
+ import { CliPluginMongooseModule } from "./CliPluginMongooseModule.js";
2
+ export * from "./hooks/MongooseInitHook.js";
3
+ export * from "./hooks/MongooseGenerateHook.js";
4
+ export * from "./services/CliMongoose.js";
5
+ export * from "./utils/templateDir.js";
6
+ export default CliPluginMongooseModule;
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,uBAAuB,EAAC,MAAM,2BAA2B,CAAC;AAElE,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAEpC,eAAe,uBAAuB,CAAC","sourcesContent":["import {CliPluginMongooseModule} from \"./CliPluginMongooseModule\";\n\nexport * from \"./hooks/MongooseInitHook\";\nexport * from \"./hooks/MongooseGenerateHook\";\nexport * from \"./services/CliMongoose\";\nexport * from \"./utils/templateDir\";\n\nexport default CliPluginMongooseModule;\n"]}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -0,0 +1,49 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Inject, Injectable, ProjectPackageJson, SrcRendererService } from "@tsed/cli-core";
3
+ import { camelCase, constantCase, paramCase } from "change-case";
4
+ import { basename, join } from "path";
5
+ import { TEMPLATE_DIR } from "../utils/templateDir.js";
6
+ let CliMongoose = class CliMongoose {
7
+ async writeConfig(name, options = {}) {
8
+ await this.srcRenderer.render("config.hbs", {
9
+ ...options,
10
+ symbolName: constantCase(name),
11
+ name: paramCase(name)
12
+ }, {
13
+ output: `${paramCase(name)}.config.ts`,
14
+ rootDir: join(this.srcRenderer.rootDir, "config", "mongoose"),
15
+ templateDir: TEMPLATE_DIR
16
+ });
17
+ return this.regenerateIndexConfig();
18
+ }
19
+ async regenerateIndexConfig() {
20
+ const list = await this.srcRenderer.scan(["config/mongoose/*.config.ts"]);
21
+ const configs = list.map((file) => {
22
+ const name = basename(file).replace(/\.config\.ts/gi, "");
23
+ return {
24
+ name,
25
+ symbolName: camelCase(name)
26
+ };
27
+ });
28
+ return this.srcRenderer.render("index.hbs", {
29
+ configs
30
+ }, {
31
+ templateDir: TEMPLATE_DIR,
32
+ output: "index.ts",
33
+ rootDir: join(this.srcRenderer.rootDir, "config", "mongoose")
34
+ });
35
+ }
36
+ };
37
+ __decorate([
38
+ Inject(),
39
+ __metadata("design:type", ProjectPackageJson)
40
+ ], CliMongoose.prototype, "projectPackageJson", void 0);
41
+ __decorate([
42
+ Inject(),
43
+ __metadata("design:type", SrcRendererService)
44
+ ], CliMongoose.prototype, "srcRenderer", void 0);
45
+ CliMongoose = __decorate([
46
+ Injectable()
47
+ ], CliMongoose);
48
+ export { CliMongoose };
49
+ //# sourceMappingURL=CliMongoose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliMongoose.js","sourceRoot":"","sources":["../../../src/services/CliMongoose.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAC,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAC,MAAM,MAAM,CAAC;AACpC,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAGlD,IAAa,WAAW,GAAxB,MAAa,WAAW;IAOtB,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,UAAe,EAAE;QAC/C,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAC3B,YAAY,EACZ;YACE,GAAG,OAAO;YACV,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC;YAC9B,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;SACtB,EACD;YACE,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY;YACtC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC;YAC7D,WAAW,EAAE,YAAY;SAC1B,CACF,CAAC;QAEF,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAE1E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAE1D,OAAO;gBACL,IAAI;gBACJ,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC;aAC5B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAC5B,WAAW,EACX;YACE,OAAO;SACR,EACD;YACE,WAAW,EAAE,YAAY;YACzB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC;SAC9D,CACF,CAAC;IACJ,CAAC;CACF,CAAA;AA/CC;IADC,MAAM,EAAE;8BACW,kBAAkB;uDAAC;AAGvC;IADC,MAAM,EAAE;8BACc,kBAAkB;gDAAC;AAL/B,WAAW;IADvB,UAAU,EAAE;GACA,WAAW,CAiDvB;SAjDY,WAAW","sourcesContent":["import {Inject, Injectable, ProjectPackageJson, SrcRendererService} from \"@tsed/cli-core\";\nimport {camelCase, constantCase, paramCase} from \"change-case\";\nimport {basename, join} from \"path\";\nimport {TEMPLATE_DIR} from \"../utils/templateDir\";\n\n@Injectable()\nexport class CliMongoose {\n @Inject()\n projectPackageJson: ProjectPackageJson;\n\n @Inject()\n protected srcRenderer: SrcRendererService;\n\n async writeConfig(name: string, options: any = {}) {\n await this.srcRenderer.render(\n \"config.hbs\",\n {\n ...options,\n symbolName: constantCase(name),\n name: paramCase(name)\n },\n {\n output: `${paramCase(name)}.config.ts`,\n rootDir: join(this.srcRenderer.rootDir, \"config\", \"mongoose\"),\n templateDir: TEMPLATE_DIR\n }\n );\n\n return this.regenerateIndexConfig();\n }\n\n async regenerateIndexConfig() {\n const list = await this.srcRenderer.scan([\"config/mongoose/*.config.ts\"]);\n\n const configs = list.map((file) => {\n const name = basename(file).replace(/\\.config\\.ts/gi, \"\");\n\n return {\n name,\n symbolName: camelCase(name)\n };\n });\n\n return this.srcRenderer.render(\n \"index.hbs\",\n {\n configs\n },\n {\n templateDir: TEMPLATE_DIR,\n output: \"index.ts\",\n rootDir: join(this.srcRenderer.rootDir, \"config\", \"mongoose\")\n }\n );\n }\n}\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: 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,GAAG;CACT,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: dir\n})!;\n\nexport const TEMPLATE_DIR = join(dirname(path), \"templates\");\n"]}
File without changes
@@ -2,4 +2,5 @@ import { CliPluginMongooseModule } from "./CliPluginMongooseModule";
2
2
  export * from "./hooks/MongooseInitHook";
3
3
  export * from "./hooks/MongooseGenerateHook";
4
4
  export * from "./services/CliMongoose";
5
+ export * from "./utils/templateDir";
5
6
  export default CliPluginMongooseModule;
File without changes
package/package.json CHANGED
@@ -1,21 +1,30 @@
1
1
  {
2
2
  "name": "@tsed/cli-plugin-mongoose",
3
- "version": "3.20.14",
4
- "main": "./lib/index.js",
5
- "typings": "./lib/index.d.ts",
3
+ "version": "3.21.0-rc.1",
6
4
  "description": "Ts.ED CLI plugin. Add Mongoose 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
  "pluralize": "8.0.0",
10
23
  "tslib": "2.3.1"
11
24
  },
12
25
  "devDependencies": {
13
- "@tsed/cli": "3.20.14",
14
- "@tsed/cli-core": "3.20.14"
15
- },
16
- "scripts": {
17
- "build": "tsc --build tsconfig.compile.json",
18
- "build:doc": "tsc --build tsconfig.doc.json"
26
+ "@tsed/cli": "3.21.0-rc.1",
27
+ "@tsed/cli-core": "3.21.0-rc.1"
19
28
  },
20
29
  "peerDependencies": {},
21
30
  "repository": "https://github.com/tsedio/tsed-cli",
@@ -24,5 +33,8 @@
24
33
  },
25
34
  "homepage": "https://github.com/tsedio/tsed-cli/tree/master/packages/cli-plugin-mongoose",
26
35
  "author": "Romain Lenzotti",
27
- "license": "MIT"
36
+ "license": "MIT",
37
+ "publishConfig": {
38
+ "tag": "rc"
39
+ }
28
40
  }
@@ -0,0 +1,12 @@
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": ["node_modules", "test", "lib", "coverage", ".nyc_output", "**/*.spec.ts", "jest.config.js"]
12
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"CliPluginMongooseModule.js","sourceRoot":"","sources":["../src/CliPluginMongooseModule.ts"],"names":[],"mappings":";;;;AAAA,6CAAiE;AACjE,iCAAgC;AAChC,uEAAkE;AAClE,+DAA0D;AAC1D,wDAAmD;AAKnD,IAAa,uBAAuB,GAApC,MAAa,uBAAuB;IAKlC,OAAO;QACL,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;YAC/B,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC;YAC/D,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC;YAClC,wBAAwB,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC;SACxE,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAbC;IADC,IAAA,WAAM,GAAE;sCACI,6BAAkB;4DAAC;AAGhC;IADC,IAAA,gBAAK,EAAC,2BAA2B,CAAC;;;;sDAUlC;AAdU,uBAAuB;IAHnC,IAAA,iBAAM,EAAC;QACN,OAAO,EAAE,CAAC,mCAAgB,EAAE,2CAAoB,EAAE,yBAAW,CAAC;KAC/D,CAAC;GACW,uBAAuB,CAenC;AAfY,0DAAuB","sourcesContent":["import {Module, OnAdd, ProjectPackageJson} from \"@tsed/cli-core\";\nimport {Inject} from \"@tsed/di\";\nimport {MongooseGenerateHook} from \"./hooks/MongooseGenerateHook\";\nimport {MongooseInitHook} from \"./hooks/MongooseInitHook\";\nimport {CliMongoose} from \"./services/CliMongoose\";\n\n@Module({\n imports: [MongooseInitHook, MongooseGenerateHook, CliMongoose]\n})\nexport class CliPluginMongooseModule {\n @Inject()\n packageJson: ProjectPackageJson;\n\n @OnAdd(\"@tsed/cli-plugin-mongoose\")\n install() {\n this.packageJson.addDependencies({\n \"@tsed/mongoose\": this.packageJson.dependencies[\"@tsed/common\"],\n mongoose: \"latest\"\n });\n\n this.packageJson.addDevDependencies({\n \"@tsed/testing-mongoose\": this.packageJson.dependencies[\"@tsed/common\"]\n });\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MongooseGenerateHook.js","sourceRoot":"","sources":["../../src/hooks/MongooseGenerateHook.ts"],"names":[],"mappings":"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","sourcesContent":["import {GenerateCmdContext, ProvidersInfoService} from \"@tsed/cli\";\nimport {CliDockerComposeYaml, Inject, OnExec, ProjectPackageJson, SrcRendererService, Tasks} from \"@tsed/cli-core\";\nimport {Injectable} from \"@tsed/di\";\nimport {camelCase, paramCase} from \"change-case\";\nimport {CliMongoose} from \"../services/CliMongoose\";\nimport {TEMPLATE_DIR} from \"../utils/templateDir\";\n\nconst {plural} = require(\"pluralize\");\n\n@Injectable()\nexport class MongooseGenerateHook {\n @Inject()\n projectPackageJson: ProjectPackageJson;\n\n @Inject()\n srcRenderService: SrcRendererService;\n\n @Inject()\n cliMongoose: CliMongoose;\n\n packages: any[];\n @Inject()\n protected cliDockerComposeYaml: CliDockerComposeYaml;\n\n constructor(private providersInfoService: ProvidersInfoService) {\n providersInfoService\n .add(\n {\n name: \"Mongoose model\",\n value: \"mongoose:model\",\n model: \"{{symbolName}}.model\",\n baseDir: \"models\"\n },\n MongooseGenerateHook\n )\n .add(\n {\n name: \"Mongoose schema\",\n value: \"mongoose:schema\",\n model: \"{{symbolName}}.schema\",\n baseDir: \"models\"\n },\n MongooseGenerateHook\n )\n .add(\n {\n name: \"Mongoose connection\",\n value: \"mongoose:connection\"\n },\n MongooseGenerateHook\n );\n }\n\n @OnExec(\"generate\")\n onGenerateExec(ctx: GenerateCmdContext): Tasks {\n if (this.providersInfoService.isMyProvider(ctx.type, MongooseGenerateHook)) {\n switch (ctx.type) {\n case \"mongoose:connection\":\n return this.generateConnection(ctx);\n case \"mongoose:model\":\n case \"mongoose:schema\":\n return this.generateTemplate(ctx);\n }\n }\n\n return [];\n }\n\n private generateTemplate(ctx: GenerateCmdContext) {\n const {symbolPath, type, symbolName} = ctx;\n const template = `mongoose.${type.split(\":\")[1]}.hbs`;\n const newCtx = {\n ...ctx,\n collectionName: plural(camelCase(symbolName.replace(/Schema|Model/gi, \"\")))\n };\n\n return [\n {\n title: `Generate ${ctx.type} file to '${symbolPath}.ts'`,\n task: () =>\n this.srcRenderService.render(template, newCtx, {\n output: `${symbolPath}.ts`,\n templateDir: TEMPLATE_DIR\n })\n }\n ];\n }\n\n private generateConnection(ctx: GenerateCmdContext) {\n return [\n {\n title: `Generate Mongoose configuration file to '${paramCase(ctx.name)}.config.ts'`,\n task: () => this.cliMongoose.writeConfig(ctx.name, ctx)\n },\n {\n title: \"Generate docker-compose configuration\",\n task: async () => this.cliDockerComposeYaml.addDatabaseService(ctx.name, \"mongodb\")\n }\n ];\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MongooseInitHook.js","sourceRoot":"","sources":["../../src/hooks/MongooseInitHook.ts"],"names":[],"mappings":";;;;AACA,6CAAiI;AACjI,iCAAoC;AACpC,yDAAoD;AAGpD,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAiB3B,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,OAAO;YACL;gBACE,KAAK,EAAE,iCAAiC;gBACxC,IAAI,EAAE,KAAK,IAAI,EAAE,CACf,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,EAAE;oBACtC,UAAU,EAAE,kBAAkB;iBAC/B,CAAC;aACL;YACD;gBACE,KAAK,EAAE,uCAAuC;gBAC9C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC;aACrF;SACF,CAAC;IACJ,CAAC;IAED,UAAU;QACR,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAClC,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,IAAA,iBAAM,GAAE;sCACI,yBAAW;qDAAC;AAGzB;IADC,IAAA,iBAAM,GAAE;sCACc,6BAAkB;qDAAC;AAG1C;IADC,IAAA,iBAAM,GAAE;sCACe,8BAAmB;sDAAC;AAG5C;IADC,IAAA,iBAAM,GAAE;sCACc,6BAAkB;qDAAC;AAG1C;IADC,IAAA,iBAAM,GAAE;sCACuB,+BAAoB;8DAAC;AAGrD;IADC,IAAA,iBAAM,EAAC,MAAM,CAAC;;;;8CAmBd;AAnCU,gBAAgB;IAD5B,IAAA,eAAU,GAAE;GACA,gBAAgB,CAgD5B;AAhDY,4CAAgB","sourcesContent":["import {InitCmdContext} from \"@tsed/cli\";\nimport {CliDockerComposeYaml, Inject, OnExec, ProjectPackageJson, RootRendererService, SrcRendererService} from \"@tsed/cli-core\";\nimport {Injectable} from \"@tsed/di\";\nimport {CliMongoose} from \"../services/CliMongoose\";\n\n@Injectable()\nexport class MongooseInitHook {\n @Inject()\n cliMongoose: CliMongoose;\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 return [\n {\n title: \"Generate Mongoose configuration\",\n task: async () =>\n this.cliMongoose.writeConfig(\"default\", {\n symbolName: \"MONGOOSE_DEFAULT\"\n })\n },\n {\n title: \"Generate docker-compose configuration\",\n task: async () => this.cliDockerComposeYaml.addDatabaseService(\"mongodb\", \"mongodb\")\n }\n ];\n }\n\n addScripts() {\n this.packageJson.addScripts({});\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,uEAAkE;AAElE,mEAAyC;AACzC,uEAA6C;AAC7C,iEAAuC;AAEvC,kBAAe,iDAAuB,CAAC","sourcesContent":["import {CliPluginMongooseModule} from \"./CliPluginMongooseModule\";\n\nexport * from \"./hooks/MongooseInitHook\";\nexport * from \"./hooks/MongooseGenerateHook\";\nexport * from \"./services/CliMongoose\";\n\nexport default CliPluginMongooseModule;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CliMongoose.js","sourceRoot":"","sources":["../../src/services/CliMongoose.ts"],"names":[],"mappings":";;;;AAAA,6CAA0F;AAC1F,6CAA+D;AAC/D,+BAAoC;AACpC,sDAAkD;AAGlD,IAAa,WAAW,GAAxB,MAAa,WAAW;IAOtB,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,UAAe,EAAE;QAC/C,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAC3B,YAAY,EACZ;YACE,GAAG,OAAO;YACV,UAAU,EAAE,IAAA,0BAAY,EAAC,IAAI,CAAC;YAC9B,IAAI,EAAE,IAAA,uBAAS,EAAC,IAAI,CAAC;SACtB,EACD;YACE,MAAM,EAAE,GAAG,IAAA,uBAAS,EAAC,IAAI,CAAC,YAAY;YACtC,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC;YAC7D,WAAW,EAAE,0BAAY;SAC1B,CACF,CAAC;QAEF,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAE1E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAChC,MAAM,IAAI,GAAG,IAAA,eAAQ,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAE1D,OAAO;gBACL,IAAI;gBACJ,UAAU,EAAE,IAAA,uBAAS,EAAC,IAAI,CAAC;aAC5B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAC5B,WAAW,EACX;YACE,OAAO;SACR,EACD;YACE,WAAW,EAAE,0BAAY;YACzB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC;SAC9D,CACF,CAAC;IACJ,CAAC;CACF,CAAA;AA/CC;IADC,IAAA,iBAAM,GAAE;sCACW,6BAAkB;uDAAC;AAGvC;IADC,IAAA,iBAAM,GAAE;sCACc,6BAAkB;gDAAC;AAL/B,WAAW;IADvB,IAAA,qBAAU,GAAE;GACA,WAAW,CAiDvB;AAjDY,kCAAW","sourcesContent":["import {Inject, Injectable, ProjectPackageJson, SrcRendererService} from \"@tsed/cli-core\";\nimport {camelCase, constantCase, paramCase} from \"change-case\";\nimport {basename, join} from \"path\";\nimport {TEMPLATE_DIR} from \"../utils/templateDir\";\n\n@Injectable()\nexport class CliMongoose {\n @Inject()\n projectPackageJson: ProjectPackageJson;\n\n @Inject()\n protected srcRenderer: SrcRendererService;\n\n async writeConfig(name: string, options: any = {}) {\n await this.srcRenderer.render(\n \"config.hbs\",\n {\n ...options,\n symbolName: constantCase(name),\n name: paramCase(name)\n },\n {\n output: `${paramCase(name)}.config.ts`,\n rootDir: join(this.srcRenderer.rootDir, \"config\", \"mongoose\"),\n templateDir: TEMPLATE_DIR\n }\n );\n\n return this.regenerateIndexConfig();\n }\n\n async regenerateIndexConfig() {\n const list = await this.srcRenderer.scan([\"config/mongoose/*.config.ts\"]);\n\n const configs = list.map((file) => {\n const name = basename(file).replace(/\\.config\\.ts/gi, \"\");\n\n return {\n name,\n symbolName: camelCase(name)\n };\n });\n\n return this.srcRenderer.render(\n \"index.hbs\",\n {\n configs\n },\n {\n templateDir: TEMPLATE_DIR,\n output: \"index.ts\",\n rootDir: join(this.srcRenderer.rootDir, \"config\", \"mongoose\")\n }\n );\n }\n}\n"]}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TEMPLATE_DIR = void 0;
4
- const path_1 = require("path");
5
- exports.TEMPLATE_DIR = (0, path_1.resolve)(__dirname, "..", "..", "templates");
6
- //# sourceMappingURL=templateDir.js.map
@@ -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"]}