@tsed/cli-plugin-mongoose 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/{CliPluginMongooseModule.js → cjs/CliPluginMongooseModule.js} +0 -0
- package/lib/cjs/CliPluginMongooseModule.js.map +1 -0
- package/lib/{hooks → cjs/hooks}/MongooseGenerateHook.js +4 -2
- package/lib/cjs/hooks/MongooseGenerateHook.js.map +1 -0
- package/lib/{hooks → cjs/hooks}/MongooseInitHook.js +0 -0
- package/lib/cjs/hooks/MongooseInitHook.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/{services → cjs/services}/CliMongoose.js +0 -0
- package/lib/cjs/services/CliMongoose.js.map +1 -0
- package/lib/cjs/utils/templateDir.js +13 -0
- package/lib/cjs/utils/templateDir.js.map +1 -0
- package/lib/esm/CliPluginMongooseModule.js +34 -0
- package/lib/esm/CliPluginMongooseModule.js.map +1 -0
- package/lib/esm/hooks/MongooseGenerateHook.js +102 -0
- package/lib/esm/hooks/MongooseGenerateHook.js.map +1 -0
- package/lib/esm/hooks/MongooseInitHook.js +63 -0
- package/lib/esm/hooks/MongooseInitHook.js.map +1 -0
- package/lib/esm/index.js +7 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/package.json +3 -0
- package/lib/esm/services/CliMongoose.js +49 -0
- package/lib/esm/services/CliMongoose.js.map +1 -0
- package/lib/esm/utils/templateDir.js +9 -0
- package/lib/esm/utils/templateDir.js.map +1 -0
- package/lib/{CliPluginMongooseModule.d.ts → types/CliPluginMongooseModule.d.ts} +0 -0
- package/lib/{hooks → types/hooks}/MongooseGenerateHook.d.ts +0 -0
- package/lib/{hooks → types/hooks}/MongooseInitHook.d.ts +0 -0
- package/lib/{index.d.ts → types/index.d.ts} +1 -0
- package/lib/{services → types/services}/CliMongoose.d.ts +0 -0
- package/lib/{utils → types/utils}/templateDir.d.ts +0 -0
- package/package.json +22 -10
- package/tsconfig.compile.esm.json +12 -0
- package/lib/CliPluginMongooseModule.js.map +0 -1
- package/lib/hooks/MongooseGenerateHook.js.map +0 -1
- package/lib/hooks/MongooseInitHook.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/services/CliMongoose.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":"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"]}
|
|
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: (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,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"]}
|
package/lib/esm/index.js
ADDED
|
@@ -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,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: 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
|
|
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
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,21 +1,30 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsed/cli-plugin-mongoose",
|
|
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 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.
|
|
14
|
-
"@tsed/cli-core": "3.
|
|
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.3",
|
|
27
|
+
"@tsed/cli-core": "3.21.0-rc.3"
|
|
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"]}
|
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"]}
|