@steroidsjs/nest 1.0.11 → 1.0.15

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.
@@ -0,0 +1,4 @@
1
+ import { DefaultNamingStrategy } from 'typeorm';
2
+ export declare class DatabaseNamingStrategy extends DefaultNamingStrategy {
3
+ joinTableName(firstTableName: string, secondTableName: string, firstPropertyName: string, secondPropertyName: string): string;
4
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DatabaseNamingStrategy = void 0;
4
+ const StringUtils_1 = require("typeorm/util/StringUtils");
5
+ const typeorm_1 = require("typeorm");
6
+ class DatabaseNamingStrategy extends typeorm_1.DefaultNamingStrategy {
7
+ joinTableName(firstTableName, secondTableName, firstPropertyName, secondPropertyName) {
8
+ return (0, StringUtils_1.snakeCase)(firstTableName + '_' + secondTableName);
9
+ }
10
+ }
11
+ exports.DatabaseNamingStrategy = DatabaseNamingStrategy;
12
+ //# sourceMappingURL=DatabaseNamingStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatabaseNamingStrategy.js","sourceRoot":"","sources":["../../../src/infrastructure/base/DatabaseNamingStrategy.ts"],"names":[],"mappings":";;;AAAA,0DAAmD;AACnD,qCAA8C;AAE9C,MAAa,sBAAuB,SAAQ,+BAAqB;IAE7D,aAAa,CAAC,cAAsB,EACtB,eAAuB,EACvB,iBAAyB,EACzB,kBAA0B;QACpC,OAAO,IAAA,uBAAS,EAAC,cAAc,GAAG,GAAG,GAAG,eAAe,CAAC,CAAC;IAC7D,CAAC;CACJ;AARD,wDAQC"}
@@ -5,5 +5,6 @@ export declare class MigrateCommand {
5
5
  index(): Promise<void>;
6
6
  redo(): Promise<void>;
7
7
  show(): Promise<void>;
8
+ dbml2code(path: string): Promise<void>;
8
9
  generate(): Promise<void>;
9
10
  }
@@ -8,11 +8,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.MigrateCommand = void 0;
13
16
  const nestjs_command_1 = require("nestjs-command");
14
17
  const common_1 = require("@nestjs/common");
15
18
  const typeorm_1 = require("typeorm");
19
+ const dbml2code_1 = require("./dbml/dbml2code");
16
20
  const generate_1 = require("./generate");
17
21
  let MigrateCommand = class MigrateCommand {
18
22
  constructor(connection) {
@@ -31,6 +35,9 @@ let MigrateCommand = class MigrateCommand {
31
35
  async show() {
32
36
  await this.connection.showMigrations();
33
37
  }
38
+ async dbml2code(path) {
39
+ await (0, dbml2code_1.dbml2code)(path);
40
+ }
34
41
  async generate() {
35
42
  await (0, generate_1.generate)(this.connection);
36
43
  }
@@ -62,6 +69,20 @@ __decorate([
62
69
  __metadata("design:paramtypes", []),
63
70
  __metadata("design:returntype", Promise)
64
71
  ], MigrateCommand.prototype, "show", null);
72
+ __decorate([
73
+ (0, nestjs_command_1.Command)({
74
+ command: 'migrate:dbml2code <path>',
75
+ describe: 'Generate code from dbml diagram',
76
+ }),
77
+ __param(0, (0, nestjs_command_1.Positional)({
78
+ name: 'path',
79
+ describe: 'Path to *.dbml file',
80
+ type: 'string'
81
+ })),
82
+ __metadata("design:type", Function),
83
+ __metadata("design:paramtypes", [String]),
84
+ __metadata("design:returntype", Promise)
85
+ ], MigrateCommand.prototype, "dbml2code", null);
65
86
  __decorate([
66
87
  (0, nestjs_command_1.Command)({
67
88
  command: 'migrate:generate',
@@ -1 +1 @@
1
- {"version":3,"file":"MigrateCommand.js","sourceRoot":"","sources":["../../../src/infrastructure/commands/MigrateCommand.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAAuC;AACvC,2CAA0C;AAC1C,qCAAmC;AACnC,yCAAoC;AAGpC,IAAa,cAAc,GAA3B,MAAa,cAAc;IACvB,YACY,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAElC,CAAC;IAMD,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YAChC,WAAW,EAAE,MAAM;SACtB,CAAC,CAAC;IACP,CAAC;IAMD,KAAK,CAAC,IAAI;QACN,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;YACpC,WAAW,EAAE,MAAM;SACtB,CAAC,CAAC;IACP,CAAC;IAMD,KAAK,CAAC,IAAI;QACN,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;IAC3C,CAAC;IAMD,KAAK,CAAC,QAAQ;QACV,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;CAEJ,CAAA;AAhCG;IAJC,IAAA,wBAAO,EAAC;QACL,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,gBAAgB;KAC7B,CAAC;;;;2CAKD;AAMD;IAJC,IAAA,wBAAO,EAAC;QACL,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,uBAAuB;KACpC,CAAC;;;;0CAKD;AAMD;IAJC,IAAA,wBAAO,EAAC;QACL,OAAO,EAAE,cAAc;QACvB,QAAQ,EAAE,sBAAsB;KACnC,CAAC;;;;0CAGD;AAMD;IAJC,IAAA,wBAAO,EAAC;QACL,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,0CAA0C;KACvD,CAAC;;;;8CAGD;AAxCQ,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAGe,oBAAU;GAFzB,cAAc,CA0C1B;AA1CY,wCAAc"}
1
+ {"version":3,"file":"MigrateCommand.js","sourceRoot":"","sources":["../../../src/infrastructure/commands/MigrateCommand.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,mDAAmD;AACnD,2CAA0C;AAC1C,qCAAmC;AACnC,gDAA2C;AAC3C,yCAAoC;AAWpC,IAAa,cAAc,GAA3B,MAAa,cAAc;IACvB,YACY,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAElC,CAAC;IAMD,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YAChC,WAAW,EAAE,MAAM;SACtB,CAAC,CAAC;IACP,CAAC;IAMD,KAAK,CAAC,IAAI;QACN,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;YACpC,WAAW,EAAE,MAAM;SACtB,CAAC,CAAC;IACP,CAAC;IAMD,KAAK,CAAC,IAAI;QACN,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;IAC3C,CAAC;IAMD,KAAK,CAAC,SAAS,CAOP,IAAY;QAEhB,MAAM,IAAA,qBAAS,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAMD,KAAK,CAAC,QAAQ;QACV,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;CAEJ,CAAA;AAhDG;IAJC,IAAA,wBAAO,EAAC;QACL,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,gBAAgB;KAC7B,CAAC;;;;2CAKD;AAMD;IAJC,IAAA,wBAAO,EAAC;QACL,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,uBAAuB;KACpC,CAAC;;;;0CAKD;AAMD;IAJC,IAAA,wBAAO,EAAC;QACL,OAAO,EAAE,cAAc;QACvB,QAAQ,EAAE,sBAAsB;KACnC,CAAC;;;;0CAGD;AAMD;IAJC,IAAA,wBAAO,EAAC;QACL,OAAO,EAAE,0BAA0B;QACnC,QAAQ,EAAE,iCAAiC;KAC9C,CAAC;IAEG,WAAA,IAAA,2BAAU,EAAC;QACR,IAAI,EAAE,MAAM;QAEZ,QAAQ,EAAE,qBAAqB;QAC/B,IAAI,EAAE,QAAQ;KACjB,CAAC,CAAA;;;;+CAIL;AAMD;IAJC,IAAA,wBAAO,EAAC;QACL,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,0CAA0C;KACvD,CAAC;;;;8CAGD;AAxDQ,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAGe,oBAAU;GAFzB,cAAc,CA0D1B;AA1DY,wCAAc"}
@@ -0,0 +1 @@
1
+ export declare function dbml2code(path: any): Promise<void>;
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dbml2code = void 0;
4
+ const path_1 = require("path");
5
+ const fs = require("fs");
6
+ const lodash_1 = require("lodash");
7
+ const pluralize = require("pluralize");
8
+ const load_configuration_1 = require("@nestjs/cli/lib/utils/load-configuration");
9
+ const CommandUtils_1 = require("typeorm/commands/CommandUtils");
10
+ const core_1 = require("@dbml/core");
11
+ const templates_1 = require("./templates");
12
+ const relationsMap = {
13
+ '11': 'OneToOne',
14
+ '1*': 'OneToMany',
15
+ '*1': 'ManyToOne',
16
+ '**': 'ManyToMany',
17
+ };
18
+ const determineRelation = (dbmlJson, manyToManyTables, endpointId) => {
19
+ const endpointLeft = dbmlJson.endpoints[endpointId];
20
+ const ref = dbmlJson.refs[endpointLeft.refId];
21
+ const endpointRight = dbmlJson.endpoints[ref.endpointIds.filter(refEndpointId => refEndpointId !== endpointId)[0]];
22
+ const relationLeft = endpointLeft.relation;
23
+ const relationRight = endpointRight.relation;
24
+ let relationType = relationLeft + relationRight;
25
+ let fieldRight = dbmlJson.fields[endpointRight.fieldIds[0]];
26
+ if (relationType === '1*') {
27
+ const manyToManyTable = manyToManyTables.find(table => table.id === fieldRight.tableId);
28
+ if (manyToManyTable) {
29
+ relationType = '**';
30
+ const manyToManyRelationFieldId = manyToManyTable.fieldIds.filter(fieldId => fieldId !== fieldRight.id)[0];
31
+ const manyToManyRelationField = dbmlJson.fields[manyToManyRelationFieldId];
32
+ const manyToManyRelationEndpoint = dbmlJson.endpoints[manyToManyRelationField.endpointIds[0]];
33
+ const manyToManyRelationRef = dbmlJson.refs[manyToManyRelationEndpoint.refId];
34
+ const realRelationEndpoint = dbmlJson.endpoints[manyToManyRelationRef.endpointIds.filter(endpointId => endpointId !== manyToManyRelationEndpoint.id)[0]];
35
+ fieldRight = dbmlJson.fields[realRelationEndpoint.fieldIds[0]];
36
+ }
37
+ }
38
+ return {
39
+ relationType,
40
+ fieldRight,
41
+ };
42
+ };
43
+ const findManyToManyTables = (dbmlJson) => {
44
+ const manyToManyTables = [];
45
+ Object.values(dbmlJson.tables).forEach((table) => {
46
+ if (table.fieldIds.length === 2
47
+ && dbmlJson.fields[table.fieldIds[0]].name.endsWith('Id')
48
+ && dbmlJson.fields[table.fieldIds[1]].name.endsWith('Id')) {
49
+ manyToManyTables.push(table);
50
+ }
51
+ });
52
+ return manyToManyTables;
53
+ };
54
+ const findModules = (tables) => {
55
+ return (0, lodash_1.uniq)(tables.map(table => (0, lodash_1.split)(table.name, '_')[0]));
56
+ };
57
+ const getFieldType = (fieldName, typeName, isPrimaryKey) => {
58
+ const typesMap = {
59
+ varchar: 'string',
60
+ int: 'integer',
61
+ integer: 'integer',
62
+ bool: 'boolean',
63
+ boolean: 'boolean',
64
+ date: 'date',
65
+ datetime: 'dateTime',
66
+ double: 'decimal',
67
+ decimal: 'decimal',
68
+ float: 'decimal',
69
+ text: 'text',
70
+ };
71
+ let fieldType = typesMap[typeName] || 'string';
72
+ if (isPrimaryKey) {
73
+ fieldType = 'primaryKey';
74
+ }
75
+ if (['createTime', 'updateTime'].includes(fieldName)) {
76
+ fieldType = fieldName;
77
+ }
78
+ if (fieldName.indexOf('phone') !== -1) {
79
+ fieldType = 'phone';
80
+ }
81
+ if (fieldName.indexOf('email') !== -1) {
82
+ fieldType = 'email';
83
+ }
84
+ if (fieldName.indexOf('password') !== -1) {
85
+ fieldType = 'password';
86
+ }
87
+ return fieldType;
88
+ };
89
+ const getFieldJsType = (fieldType) => {
90
+ let fieldJsType = 'string';
91
+ if (['integer', 'decimal'].includes(fieldType)) {
92
+ fieldJsType = 'number';
93
+ }
94
+ if (fieldType === 'boolean') {
95
+ fieldJsType = 'boolean';
96
+ }
97
+ if (['createTime', 'updateTime'].includes(fieldType)) {
98
+ fieldJsType = 'Date';
99
+ }
100
+ return fieldJsType;
101
+ };
102
+ const getRelationFieldName = (baseName, relationType, fieldName, relalationTableName) => {
103
+ let relationFieldName = baseName;
104
+ if (relationType.endsWith('Many')) {
105
+ const nameWords = (0, lodash_1.split)(relalationTableName, '_');
106
+ nameWords[nameWords.length - 1] = pluralize.plural(nameWords[nameWords.length - 1]);
107
+ relationFieldName = (0, lodash_1.camelCase)(nameWords.join('_'));
108
+ }
109
+ if (relationType === 'ManyToOne') {
110
+ relationFieldName = fieldName.endsWith('Id') ? fieldName.slice(0, -2) : fieldName.name;
111
+ }
112
+ return relationFieldName;
113
+ };
114
+ async function dbml2code(path) {
115
+ if (!fs.existsSync(path)) {
116
+ throw new Error('Not found file: ' + path);
117
+ }
118
+ const cliConfiguration = await (0, load_configuration_1.loadConfiguration)();
119
+ const sourceRoot = (0, path_1.join)(process.cwd(), cliConfiguration.sourceRoot);
120
+ const dbmlRaw = fs.readFileSync(path, 'utf-8');
121
+ const dbmlJson = JSON.parse(core_1.exporter.export(dbmlRaw, 'json'));
122
+ const relationsWithJoin = [];
123
+ const manyToManyTables = findManyToManyTables(dbmlJson);
124
+ const modules = findModules(Object.values(dbmlJson.tables));
125
+ modules.forEach((moduleName) => {
126
+ [
127
+ '',
128
+ 'domain',
129
+ 'domain/models',
130
+ 'infrastructure',
131
+ 'infrastructure/tables',
132
+ ].forEach(relativeDir => {
133
+ const dirPath = (0, path_1.join)(sourceRoot, moduleName, relativeDir);
134
+ if (!fs.existsSync(dirPath)) {
135
+ fs.mkdirSync(dirPath);
136
+ }
137
+ });
138
+ Object.values(dbmlJson.tables).forEach((table) => {
139
+ if (!table.name.startsWith(moduleName) || manyToManyTables.includes(table)) {
140
+ return;
141
+ }
142
+ const entityName = table.name;
143
+ const modelName = (0, lodash_1.upperFirst)((0, lodash_1.camelCase)(entityName)) + 'Model';
144
+ const tableName = (0, lodash_1.upperFirst)((0, lodash_1.camelCase)(entityName)) + 'Table';
145
+ const tableDescription = table.note;
146
+ const importedFields = [];
147
+ const modelFieldCodes = [];
148
+ const importedModels = [];
149
+ table.fieldIds.forEach(fieldId => {
150
+ const fieldName = dbmlJson.fields[fieldId].name;
151
+ const fieldLabel = dbmlJson.fields[fieldId].note || '';
152
+ let isVirtualField = false;
153
+ if (dbmlJson.fields[fieldId].endpointIds.length > 0) {
154
+ const fieldLeft = dbmlJson.fields[fieldId];
155
+ fieldLeft.endpointIds.forEach(endpointId => {
156
+ let { relationType, fieldRight } = determineRelation(dbmlJson, manyToManyTables, endpointId);
157
+ relationType = relationsMap[relationType];
158
+ const rightTable = dbmlJson.tables[fieldRight.tableId];
159
+ const baseRightName = (0, lodash_1.camelCase)(rightTable.name);
160
+ const modelRightName = (0, lodash_1.upperFirst)(baseRightName) + 'Model';
161
+ let fieldName = getRelationFieldName(baseRightName, relationType, fieldLeft.name, rightTable.name);
162
+ if (relationType === 'ManyToOne') {
163
+ isVirtualField = true;
164
+ }
165
+ let isOwningSide = false;
166
+ if ((relationType === 'OneToOne' && fieldName !== 'id')
167
+ || (relationType === 'ManyToMany'
168
+ && !relationsWithJoin.includes(`${fieldId} - ${fieldRight.id}`))) {
169
+ isOwningSide = true;
170
+ isVirtualField = true;
171
+ relationsWithJoin.push(`${fieldRight.id} - ${fieldId}`);
172
+ }
173
+ importedFields.push('RelationField');
174
+ if (rightTable.name !== table.name) {
175
+ const moduleToImport = (0, lodash_1.split)(rightTable.name, '_')[0];
176
+ importedModels.push({ model: modelRightName, module: moduleToImport });
177
+ }
178
+ modelFieldCodes.push((0, templates_1.templateModelRelation)(fieldLabel, relationType, isOwningSide, modelRightName, fieldName));
179
+ });
180
+ }
181
+ if (isVirtualField && !dbmlJson.fields[fieldId].pk) {
182
+ return;
183
+ }
184
+ const fieldType = getFieldType(fieldName, dbmlJson.fields[fieldId].type.type_name, dbmlJson.fields[fieldId].pk);
185
+ const fieldJsType = getFieldJsType(fieldType);
186
+ const decoratorName = (0, lodash_1.upperFirst)(fieldType) + 'Field';
187
+ importedFields.push(decoratorName);
188
+ modelFieldCodes.push((0, templates_1.templateModelField)(decoratorName, fieldLabel, fieldName, fieldJsType));
189
+ });
190
+ const modulesImports = (0, lodash_1.uniqWith)(importedModels, lodash_1.isEqual).reduce((code, importedModel) => {
191
+ let path = '';
192
+ if (importedModel.module === moduleName) {
193
+ path = `./${importedModel.model}`;
194
+ }
195
+ else {
196
+ path = `../../../${importedModel.module}/domain/models/${importedModel.model}`;
197
+ }
198
+ code += `import { ${importedModel.model} } from '${path}';\n`;
199
+ return code;
200
+ }, '');
201
+ const modelCode = (0, templates_1.templateModel)(importedFields, modulesImports, tableDescription, modelName, modelFieldCodes);
202
+ const modelFilePath = (0, path_1.join)(sourceRoot, moduleName, `domain/models/${modelName}.ts`);
203
+ if (!fs.existsSync(modelFilePath)) {
204
+ CommandUtils_1.CommandUtils.createFile(modelFilePath, modelCode);
205
+ }
206
+ const tableCode = (0, templates_1.templateTable)(modelName, entityName, tableName);
207
+ const tableFilePath = (0, path_1.join)(sourceRoot, moduleName, `infrastructure/tables/${tableName}.ts`);
208
+ if (!fs.existsSync(tableFilePath)) {
209
+ CommandUtils_1.CommandUtils.createFile(tableFilePath, tableCode);
210
+ }
211
+ });
212
+ });
213
+ }
214
+ exports.dbml2code = dbml2code;
215
+ //# sourceMappingURL=dbml2code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dbml2code.js","sourceRoot":"","sources":["../../../../src/infrastructure/commands/dbml/dbml2code.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function templateModel(importedFields: any, modulesImports: any, tableDescription: any, modelName: any, modelFieldCodes: any): string;
2
+ export declare function templateModelField(decoratorName: any, fieldLabel: any, fieldName: any, fieldJsType: any): string;
3
+ export declare function templateModelRelation(fieldLabel: any, relationType: any, isOwningSide: any, modelRightName: any, fieldName: any): string;
4
+ export declare function templateTable(modelName: any, entityName: any, tableName: any): string;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.templateTable = exports.templateModelRelation = exports.templateModelField = exports.templateModel = void 0;
4
+ const lodash_1 = require("lodash");
5
+ function templateModel(importedFields, modulesImports, tableDescription, modelName, modelFieldCodes) {
6
+ return `import {
7
+ ${(0, lodash_1.uniq)(importedFields).map(line => ' ' + line).join(',\n')},
8
+ } from '@steroidsjs/nest/infrastructure/decorators/fields';
9
+ ${modulesImports}
10
+ /**
11
+ * ${tableDescription}
12
+ */
13
+ export class ${modelName} {
14
+ ${modelFieldCodes.join('\n\n')}
15
+ }
16
+ `;
17
+ }
18
+ exports.templateModel = templateModel;
19
+ function templateModelField(decoratorName, fieldLabel, fieldName, fieldJsType) {
20
+ return ` @${decoratorName}({
21
+ label: '${fieldLabel}',
22
+ })
23
+ ${fieldName}: ${fieldJsType};`;
24
+ }
25
+ exports.templateModelField = templateModelField;
26
+ function templateModelRelation(fieldLabel, relationType, isOwningSide, modelRightName, fieldName) {
27
+ return ` @RelationField({
28
+ label: '${fieldLabel}',
29
+ type: '${relationType}',
30
+ isOwningSide: ${isOwningSide},
31
+ modelClass: () => ${modelRightName},
32
+ })
33
+ ${fieldName}: ${modelRightName}${relationType.endsWith('Many') ? '[]' : ''};`;
34
+ }
35
+ exports.templateModelRelation = templateModelRelation;
36
+ function templateTable(modelName, entityName, tableName) {
37
+ return `import {TableFromModel} from '@steroidsjs/nest/infrastructure/decorators/TableFromModel';
38
+ import {DeepPartial} from 'typeorm';
39
+ import {${modelName}} from '../../domain/models/${modelName}';
40
+
41
+ @TableFromModel(${modelName}, '${entityName}')
42
+ export class ${tableName} implements DeepPartial<${modelName}> {}
43
+ `;
44
+ }
45
+ exports.templateTable = templateTable;
46
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../../src/infrastructure/commands/dbml/templates.ts"],"names":[],"mappings":";;;AAAA,mCAEgB;AAEhB,SAAgB,aAAa,CACzB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,eAAe;IAEf,OAAO;EACT,IAAA,aAAK,EAAC,cAAc,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;;EAE5D,cAAc;;KAEX,gBAAgB;;eAEN,SAAS;EACtB,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;;CAE7B,CAAC;AACF,CAAC;AAlBD,sCAkBC;AAED,SAAgB,kBAAkB,CAC9B,aAAa,EACb,UAAU,EACV,SAAS,EACT,WAAW;IAEX,OAAO,QAAQ,aAAa;kBACd,UAAU;;MAEtB,SAAS,KAAK,WAAW,GAAG,CAAC;AACnC,CAAC;AAVD,gDAUC;AAED,SAAgB,qBAAqB,CACjC,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,SAAS;IAET,OAAO;kBACO,UAAU;iBACX,YAAY;wBACL,YAAY;4BACR,cAAc;;MAEpC,SAAS,KAAK,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AAClF,CAAC;AAdD,sDAcC;AAED,SAAgB,aAAa,CACzB,SAAS,EACT,UAAU,EACV,SAAS;IAET,OAAO;;UAED,SAAS,+BAA+B,SAAS;;kBAEzC,SAAS,MAAM,UAAU;eAC5B,SAAS,2BAA2B,SAAS;CAC3D,CAAC;AACF,CAAC;AAZD,sCAYC"}
@@ -40,10 +40,16 @@ ${downSqls.join(`
40
40
  `;
41
41
  };
42
42
  const generate = async (connection) => {
43
+ const junctionTablesMap = {};
43
44
  const classesToTablesMap = connection.entityMetadatas.reduce((obj, entityMeta) => {
44
45
  obj[entityMeta.targetName] = entityMeta.tableName;
46
+ entityMeta.manyToManyRelations.forEach(manyToManyRelation => {
47
+ if (manyToManyRelation.joinTableName) {
48
+ junctionTablesMap[manyToManyRelation.joinTableName] = entityMeta.tableName;
49
+ }
50
+ });
45
51
  return obj;
46
- });
52
+ }, {});
47
53
  const cliConfiguration = await (0, load_configuration_1.loadConfiguration)();
48
54
  const sourceRoot = (0, path_1.join)(process.cwd(), cliConfiguration.sourceRoot);
49
55
  const tablesInfo = {};
@@ -69,16 +75,18 @@ const generate = async (connection) => {
69
75
  const migrationsByTables = {};
70
76
  const sqlInMemory = await (new CustomRdbmsSchemaBuilder_1.CustomRdbmsSchemaBuilder(connection)).log();
71
77
  for (const item of sqlInMemory.upTableQueries) {
72
- if (!migrationsByTables[item.tableName]) {
73
- migrationsByTables[item.tableName] = {
78
+ const tableName = junctionTablesMap[item.tableName] || item.tableName;
79
+ if (!migrationsByTables[tableName]) {
80
+ migrationsByTables[tableName] = {
74
81
  upQueries: [],
75
82
  downQueries: [],
76
83
  };
77
84
  }
78
- migrationsByTables[item.tableName].upQueries.push(' await queryRunner.query(`' + prettifyQuery(item.query.query) + '`' + queryParams(item.query.parameters) + ');');
85
+ migrationsByTables[tableName].upQueries.push(' await queryRunner.query(`' + prettifyQuery(item.query.query) + '`' + queryParams(item.query.parameters) + ');');
79
86
  }
80
87
  for (const item of sqlInMemory.downTableQueries) {
81
- migrationsByTables[item.tableName].downQueries.push(' await queryRunner.query(`' + prettifyQuery(item.query.query) + '`' + queryParams(item.query.parameters) + ');');
88
+ const tableName = junctionTablesMap[item.tableName] || item.tableName;
89
+ migrationsByTables[tableName].downQueries.push(' await queryRunner.query(`' + prettifyQuery(item.query.query) + '`' + queryParams(item.query.parameters) + ');');
82
90
  }
83
91
  const timestamp = new Date().getTime();
84
92
  if (Object.keys(migrationsByTables).length === 0) {
@@ -93,11 +101,17 @@ const generate = async (connection) => {
93
101
  }
94
102
  const tableClassName = tablesInfo[tableName].tableClassName;
95
103
  const moduleDir = tablesInfo[tableName].moduleDir;
96
- const fileContent = getTemplate(tableClassName, timestamp, migrationsByTables[tableName].upQueries, migrationsByTables[tableName].downQueries.reverse());
97
- const fileName = timestamp + '-' + tableClassName + '.ts';
98
- const path = (0, path_1.join)(moduleDir, '/infrastructure/migrations', fileName);
99
- console.log('info', '\t' + path);
100
- await CommandUtils_1.CommandUtils.createFile(path, fileContent);
104
+ const tableDeclarationFileContent = getTemplate(tableClassName, timestamp, migrationsByTables[tableName].upQueries.filter(query => query.includes('CREATE TABLE')), migrationsByTables[tableName].downQueries.filter(query => query.includes('DROP TABLE')).reverse());
105
+ const tableDeclarationFileName = timestamp + '-' + tableClassName + '.ts';
106
+ const tableDeclarationFilePath = (0, path_1.join)(moduleDir, '/infrastructure/migrations', tableDeclarationFileName);
107
+ console.log('info', '\t' + tableDeclarationFilePath);
108
+ await CommandUtils_1.CommandUtils.createFile(tableDeclarationFilePath, tableDeclarationFileContent);
109
+ const nextTimestamp = timestamp + 1;
110
+ const foreignKeysFileContent = getTemplate(tableClassName, nextTimestamp, migrationsByTables[tableName].upQueries.filter(query => !query.includes('CREATE TABLE')), migrationsByTables[tableName].downQueries.filter(query => !query.includes('DROP TABLE')).reverse());
111
+ const foreignKeysFileName = nextTimestamp + '-' + tableClassName + '.ts';
112
+ const foreignKeysFilePath = (0, path_1.join)(moduleDir, '/infrastructure/migrations', foreignKeysFileName);
113
+ console.log('info', '\t' + foreignKeysFilePath);
114
+ await CommandUtils_1.CommandUtils.createFile(foreignKeysFilePath, foreignKeysFileContent);
101
115
  }
102
116
  }
103
117
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/infrastructure/commands/generate/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/infrastructure/commands/generate/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,6 @@
1
1
  import { IBaseFieldOptions } from './BaseField';
2
- export declare function FileField(options?: IBaseFieldOptions): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
2
+ interface IFileField extends IBaseFieldOptions {
3
+ multiple?: boolean;
4
+ }
5
+ export declare function FileField(options?: IFileField): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
6
+ export {};
@@ -7,10 +7,10 @@ const class_validator_1 = require("class-validator");
7
7
  const BaseField_1 = require("./BaseField");
8
8
  function FileField(options = {}) {
9
9
  return (0, common_1.applyDecorators)((0, BaseField_1.BaseField)(Object.assign(Object.assign({}, options), { decoratorName: 'FileField', appType: 'file' })), (0, typeorm_1.Column)({
10
- type: 'integer',
10
+ type: options.multiple ? 'simple-array' : 'integer',
11
11
  default: options.defaultValue,
12
12
  nullable: options.nullable,
13
- }), (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsInt)());
13
+ }), (0, class_validator_1.IsOptional)(), options.multiple ? (0, class_validator_1.IsArray)() : (0, class_validator_1.IsInt)());
14
14
  }
15
15
  exports.FileField = FileField;
16
16
  //# sourceMappingURL=FileField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/FileField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,qDAAkD;AAClD,2CAAyD;AAEzD,SAAgB,SAAS,CAAC,UAA6B,EAAE;IACrD,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,kCACF,OAAO,KACV,aAAa,EAAE,WAAW,EAC1B,OAAO,EAAE,MAAM,IACjB,EACF,IAAA,gBAAM,EAAC;QACH,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,OAAO,CAAC,YAAY;QAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC7B,CAAC,EACF,IAAA,4BAAU,GAAE,EACZ,IAAA,uBAAK,GAAE,CACV,CAAC;AACN,CAAC;AAfD,8BAeC"}
1
+ {"version":3,"file":"FileField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/FileField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,qDAA2D;AAC3D,2CAAyD;AAMzD,SAAgB,SAAS,CAAC,UAAsB,EAAE;IAC9C,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,kCACF,OAAO,KACV,aAAa,EAAE,WAAW,EAC1B,OAAO,EAAE,MAAM,IACjB,EACF,IAAA,gBAAM,EAAC;QACH,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;QACnD,OAAO,EAAE,OAAO,CAAC,YAAY;QAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC7B,CAAC,EACF,IAAA,4BAAU,GAAE,EACZ,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAA,yBAAO,GAAE,CAAC,CAAC,CAAC,IAAA,uBAAK,GAAE,CACzC,CAAC;AACN,CAAC;AAfD,8BAeC"}
@@ -1,6 +1,6 @@
1
1
  export { BooleanField } from './BooleanField';
2
- export { CreateTimeField } from './CreateTimeField';
3
2
  export { CoordinateField } from './CoordinateField';
3
+ export { CreateTimeField } from './CreateTimeField';
4
4
  export { DateField } from './DateField';
5
5
  export { DateTimeField } from './DateTimeField';
6
6
  export { DecimalField } from './DecimalField';
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RelationField = exports.UpdateTimeField = exports.UidField = exports.TimeField = exports.TextField = exports.StringField = exports.PrimaryKeyField = exports.PhoneField = exports.PasswordField = exports.IntegerField = exports.HtmlField = exports.FileField = exports.EnumField = exports.EmailField = exports.DecimalField = exports.DateTimeField = exports.DateField = exports.CoordinateField = exports.CreateTimeField = exports.BooleanField = void 0;
3
+ exports.RelationField = exports.UpdateTimeField = exports.UidField = exports.TimeField = exports.TextField = exports.StringField = exports.PrimaryKeyField = exports.PhoneField = exports.PasswordField = exports.IntegerField = exports.HtmlField = exports.FileField = exports.EnumField = exports.EmailField = exports.DecimalField = exports.DateTimeField = exports.DateField = exports.CreateTimeField = exports.CoordinateField = exports.BooleanField = void 0;
4
4
  var BooleanField_1 = require("./BooleanField");
5
5
  Object.defineProperty(exports, "BooleanField", { enumerable: true, get: function () { return BooleanField_1.BooleanField; } });
6
- var CreateTimeField_1 = require("./CreateTimeField");
7
- Object.defineProperty(exports, "CreateTimeField", { enumerable: true, get: function () { return CreateTimeField_1.CreateTimeField; } });
8
6
  var CoordinateField_1 = require("./CoordinateField");
9
7
  Object.defineProperty(exports, "CoordinateField", { enumerable: true, get: function () { return CoordinateField_1.CoordinateField; } });
8
+ var CreateTimeField_1 = require("./CreateTimeField");
9
+ Object.defineProperty(exports, "CreateTimeField", { enumerable: true, get: function () { return CreateTimeField_1.CreateTimeField; } });
10
10
  var DateField_1 = require("./DateField");
11
11
  Object.defineProperty(exports, "DateField", { enumerable: true, get: function () { return DateField_1.DateField; } });
12
12
  var DateTimeField_1 = require("./DateTimeField");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/nest",
3
- "version": "1.0.11",
3
+ "version": "1.0.15",
4
4
  "scripts": {
5
5
  "build": "tsc && copyfiles ./{package.json,LICENSE,README.md} dist/"
6
6
  },
@@ -17,6 +17,7 @@
17
17
  "url": "https://github.com/steroids/nest/issues"
18
18
  },
19
19
  "dependencies": {
20
+ "@dbml/core": "^2.3.1",
20
21
  "@nestjs/cli": "^8.1.6",
21
22
  "@nestjs/common": "^8.0.0",
22
23
  "@nestjs/config": "^1.1.5",
@@ -29,6 +30,8 @@
29
30
  "express": "^4.17.2",
30
31
  "lodash": "^4.17.21",
31
32
  "nestjs-command": "^3.1.1",
33
+ "pluralize": "^8.0.0",
34
+ "typedi": "^0.10.0",
32
35
  "typeorm": "^0.2.41",
33
36
  "uuid": "^8.3.2"
34
37
  },