@solidstarters/solid-code-builder 1.0.32 → 1.0.34
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/dist/code-builder/index.d.ts +0 -4
- package/dist/code-builder/index.js +3 -4
- package/dist/code-builder/index.js.map +1 -1
- package/dist/code-builder/lib/field/FieldManager.d.ts +2 -1
- package/dist/code-builder/lib/field/FieldManager.js +3 -3
- package/dist/code-builder/lib/field/FieldManager.js.map +1 -1
- package/dist/code-builder/lib/field/db-helpers.d.ts +5 -0
- package/dist/code-builder/lib/field/db-helpers.js +22 -0
- package/dist/code-builder/lib/field/db-helpers.js.map +1 -0
- package/dist/code-builder/lib/field/decorator-managers/entity/ColumnDecoratorManager.d.ts +1 -2
- package/dist/code-builder/lib/field/decorator-managers/entity/ManyToOneDecoratorManager.js +5 -3
- package/dist/code-builder/lib/field/decorator-managers/entity/ManyToOneDecoratorManager.js.map +1 -1
- package/dist/code-builder/lib/field/decorator-managers/entity/PrimaryColumnDecoratorManager.d.ts +11 -0
- package/dist/code-builder/lib/field/decorator-managers/entity/PrimaryColumnDecoratorManager.js +16 -0
- package/dist/code-builder/lib/field/decorator-managers/entity/PrimaryColumnDecoratorManager.js.map +1 -0
- package/dist/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.d.ts +6 -1
- package/dist/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.js +18 -3
- package/dist/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.js.map +1 -1
- package/dist/code-builder/lib/field/field-managers/long-text/LongTextFieldHandler.d.ts +2 -1
- package/dist/code-builder/lib/field/field-managers/long-text/LongTextFieldHandler.js +2 -2
- package/dist/code-builder/lib/field/field-managers/long-text/LongTextFieldHandler.js.map +1 -1
- package/dist/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.d.ts +2 -1
- package/dist/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.js +22 -2
- package/dist/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.js.map +1 -1
- package/dist/code-builder/lib/field/field-managers/rich-text/RichTextFieldHandler.d.ts +2 -1
- package/dist/code-builder/lib/field/field-managers/rich-text/RichTextFieldHandler.js +2 -2
- package/dist/code-builder/lib/field/field-managers/rich-text/RichTextFieldHandler.js.map +1 -1
- package/dist/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.d.ts +2 -1
- package/dist/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.js +21 -2
- package/dist/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.js.map +1 -1
- package/dist/code-builder/lib/model/helpers.d.ts +1 -1
- package/dist/code-builder/lib/model/helpers.js +4 -4
- package/dist/code-builder/lib/model/helpers.js.map +1 -1
- package/dist/code-builder/lib/model/refresh-model.schema.json +15 -0
- package/dist/files/generate-model/entities/__model@dasherize__.entity.ts +2 -2
- package/dist/files/generate-model/repositories/__model@dasherize__.repository.ts +2 -0
- package/files/generate-model/entities/__model@dasherize__.entity.ts +2 -2
- package/files/generate-model/repositories/__model@dasherize__.repository.ts +2 -0
- package/package.json +1 -1
- package/src/code-builder/index.ts +8 -5
- package/src/code-builder/lib/field/FieldManager.ts +4 -2
- package/src/code-builder/lib/field/db-helpers.ts +22 -0
- package/src/code-builder/lib/field/decorator-managers/entity/ColumnDecoratorManager.ts +1 -1
- package/src/code-builder/lib/field/decorator-managers/entity/ManyToOneDecoratorManager.ts +8 -6
- package/src/code-builder/lib/field/decorator-managers/entity/PrimaryColumnDecoratorManager.ts +18 -0
- package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.ts +24 -3
- package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldHandler.ts +5 -2
- package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.ts +36 -6
- package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldHandler.ts +5 -2
- package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.ts +33 -6
- package/src/code-builder/lib/model/helpers.ts +5 -3
- package/src/code-builder/lib/model/refresh-model.schema.json +15 -0
package/dist/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.d.ts
CHANGED
|
@@ -2,9 +2,10 @@ import { Tree } from '@angular-devkit/schematics';
|
|
|
2
2
|
import ts from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript';
|
|
3
3
|
import { FieldManager, FieldType } from '../../FieldManager';
|
|
4
4
|
import { BaseFieldManagerForEntity } from '../base/BaseFieldManagerForEntity';
|
|
5
|
+
import { SupportedDatabases } from '../../db-helpers';
|
|
5
6
|
export declare class RichTextFieldManagerForEntity extends BaseFieldManagerForEntity implements FieldManager {
|
|
6
7
|
source: ts.SourceFile;
|
|
7
|
-
constructor(tree: Tree, moduleName: string, modelName: string, field: any, modelEnableSoftDelete: any);
|
|
8
|
+
constructor(tree: Tree, moduleName: string, modelName: string, field: any, modelEnableSoftDelete: any, dataSourceType?: SupportedDatabases);
|
|
8
9
|
fieldType(): FieldType;
|
|
9
10
|
protected additionalColumnDecoratorOptions(): Map<string, any>;
|
|
10
11
|
protected additionalColumnDecoratorOptionExpressions(): Map<string, ts.Expression | null>;
|
package/dist/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.js
CHANGED
|
@@ -6,10 +6,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.RichTextFieldManagerForEntity = void 0;
|
|
7
7
|
const typescript_1 = __importDefault(require("@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript"));
|
|
8
8
|
const BaseFieldManagerForEntity_1 = require("../base/BaseFieldManagerForEntity");
|
|
9
|
+
const db_helpers_1 = require("../../db-helpers");
|
|
9
10
|
//FIXME Implementation pending
|
|
10
11
|
class RichTextFieldManagerForEntity extends BaseFieldManagerForEntity_1.BaseFieldManagerForEntity {
|
|
11
|
-
constructor(tree, moduleName, modelName, field, modelEnableSoftDelete) {
|
|
12
|
-
super(tree, moduleName, modelName, field, modelEnableSoftDelete);
|
|
12
|
+
constructor(tree, moduleName, modelName, field, modelEnableSoftDelete, dataSourceType) {
|
|
13
|
+
super(tree, moduleName, modelName, field, modelEnableSoftDelete, dataSourceType);
|
|
13
14
|
}
|
|
14
15
|
fieldType() {
|
|
15
16
|
return {
|
|
@@ -20,12 +21,30 @@ class RichTextFieldManagerForEntity extends BaseFieldManagerForEntity_1.BaseFiel
|
|
|
20
21
|
additionalColumnDecoratorOptions() {
|
|
21
22
|
var _a, _b;
|
|
22
23
|
const options = new Map();
|
|
24
|
+
if (this.field.max) {
|
|
25
|
+
options.set('length', (0, db_helpers_1.transformColumnOptionForDatabase)('length', this.field.max, this.field.ormType, this.dataSourceType));
|
|
26
|
+
}
|
|
23
27
|
options.set('default', (_b = (_a = this.defaultValueInitializer(this.field.defaultValue)) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : null);
|
|
24
28
|
return options;
|
|
25
29
|
}
|
|
26
30
|
additionalColumnDecoratorOptionExpressions() {
|
|
27
31
|
var _a, _b;
|
|
28
32
|
const options = new Map();
|
|
33
|
+
if (this.field.max) {
|
|
34
|
+
const lengthValue = (0, db_helpers_1.transformColumnOptionForDatabase)('length', this.field.max, this.field.ormType, this.dataSourceType);
|
|
35
|
+
if (typeof lengthValue === 'number') {
|
|
36
|
+
options.set('length', typescript_1.default.factory.createNumericLiteral(lengthValue));
|
|
37
|
+
}
|
|
38
|
+
else if (typeof lengthValue === 'string') {
|
|
39
|
+
options.set('length', typescript_1.default.factory.createStringLiteral(lengthValue));
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
options.set('length', null);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
options.set('length', null);
|
|
47
|
+
}
|
|
29
48
|
options.set('default', (_b = (_a = this.defaultValueInitializer(this.field.defaultValue)) === null || _a === void 0 ? void 0 : _a.expression) !== null && _b !== void 0 ? _b : null);
|
|
30
49
|
return options;
|
|
31
50
|
}
|
package/dist/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RichTextFieldManagerForEntity.js","sourceRoot":"","sources":["../../../../../../src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.ts"],"names":[],"mappings":";;;;;;AACA,gIAAgG;AAEhG,iFAA8E;
|
|
1
|
+
{"version":3,"file":"RichTextFieldManagerForEntity.js","sourceRoot":"","sources":["../../../../../../src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.ts"],"names":[],"mappings":";;;;;;AACA,gIAAgG;AAEhG,iFAA8E;AAC9E,iDAAwF;AAExF,8BAA8B;AAC9B,MAAa,6BACX,SAAQ,qDAAyB;IAIjC,YAAY,IAAU,EAAE,UAAkB,EAAE,SAAiB,EAAE,KAAU,EAAE,qBAA0B,EAAE,cAAmC;QACxI,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,qBAAqB,EAAE,cAAc,CAAC,CAAC;IACnF,CAAC;IAED,SAAS;QACP,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,MAAW,EAAE,EAAE,CAAC,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,oBAAE,CAAC,UAAU,CAAC,aAAa,CAAC;SACrF,CAAC;IACJ,CAAC;IAEkB,gCAAgC;;QACjD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAe,CAAC;QACvC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAA,6CAAgC,EACpD,QAAQ,EACR,IAAI,CAAC,KAAK,CAAC,GAAG,EACd,IAAI,CAAC,KAAK,CAAC,OAAO,EAClB,IAAI,CAAC,cAAc,CACpB,CACA,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAA,MAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,0CAAE,KAAK,mCAAI,IAAI,CAAC,CAAC;QAC7F,OAAO,OAAO,CAAC;IACjB,CAAC;IAEkB,0CAA0C;;QAC3D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgC,CAAC;QACxD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACnB,MAAM,WAAW,GAAG,IAAA,6CAAgC,EAClD,QAAQ,EACR,IAAI,CAAC,KAAK,CAAC,GAAG,EACd,IAAI,CAAC,KAAK,CAAC,OAAO,EAClB,IAAI,CAAC,cAAc,CACpB,CAAC;YAEF,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;YACtE,CAAC;iBAAM,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAA,MAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,0CAAE,UAAU,mCAAI,IAAI,CAAC,CAAC;QAClG,OAAO,OAAO,CAAA;IAChB,CAAC;CAEF;AAvDD,sEAuDC"}
|
|
@@ -52,6 +52,6 @@ export declare function handleUpdateChecksums(tree: any, moduleName: string, ...
|
|
|
52
52
|
export declare function removeUnusedImports(tree: Tree, filePath: string): string;
|
|
53
53
|
export declare function takeBackupIfChecksumsMismatch(tree: Tree, moduleName: string): void;
|
|
54
54
|
export declare function calculateModuleFileImportPath(moduleName: string, internalPath: string): string;
|
|
55
|
-
export declare function
|
|
55
|
+
export declare function outputEntitySuperClassImport(isLegacyTable?: boolean, isLegacyTableWithId?: boolean, parentModel?: string | null, parentModule?: string): string;
|
|
56
56
|
export declare function outputParentImportPathForDto(parentModel: string | null | undefined, parentModule: string | null | undefined, context: string): string;
|
|
57
57
|
export declare function unSnakeCase(name: string): string;
|
|
@@ -52,7 +52,7 @@ exports.handleUpdateChecksums = handleUpdateChecksums;
|
|
|
52
52
|
exports.removeUnusedImports = removeUnusedImports;
|
|
53
53
|
exports.takeBackupIfChecksumsMismatch = takeBackupIfChecksumsMismatch;
|
|
54
54
|
exports.calculateModuleFileImportPath = calculateModuleFileImportPath;
|
|
55
|
-
exports.
|
|
55
|
+
exports.outputEntitySuperClassImport = outputEntitySuperClassImport;
|
|
56
56
|
exports.outputParentImportPathForDto = outputParentImportPathForDto;
|
|
57
57
|
exports.unSnakeCase = unSnakeCase;
|
|
58
58
|
const strings_1 = require("@angular-devkit/core/src/utils/strings");
|
|
@@ -294,7 +294,7 @@ function removeField(tree, options, field) {
|
|
|
294
294
|
}
|
|
295
295
|
function updateField(tree, options, field) {
|
|
296
296
|
try {
|
|
297
|
-
const fieldHandler = (0, FieldManager_1.getFieldHandler)(tree, options.module, options.model, field, options.modelEnableSoftDelete);
|
|
297
|
+
const fieldHandler = (0, FieldManager_1.getFieldHandler)(tree, options.module, options.model, field, options.modelEnableSoftDelete, options.dataSourceType);
|
|
298
298
|
const entityFieldChanges = fieldHandler.updateEntityField();
|
|
299
299
|
// console.log('entityFieldChanges:', entityFieldChanges.map((change) => change.changes));
|
|
300
300
|
applyFieldChanges(tree, options.module, entityFieldChanges, options === null || options === void 0 ? void 0 : options.generateChecksum);
|
|
@@ -458,9 +458,9 @@ function takeBackupIfChecksumsMismatch(tree, moduleName) {
|
|
|
458
458
|
function calculateModuleFileImportPath(moduleName, internalPath) {
|
|
459
459
|
return (moduleName === exports.SOLID_CORE_MODULE_NAME) ? internalPath : exports.SOLID_CORE_MODULE_NPM_PACKAGE_NAME;
|
|
460
460
|
}
|
|
461
|
-
function
|
|
461
|
+
function outputEntitySuperClassImport(isLegacyTable = false, isLegacyTableWithId = false, parentModel = null, parentModule = "solid-core") {
|
|
462
462
|
let importPath = exports.SOLID_CORE_MODULE_NPM_PACKAGE_NAME;
|
|
463
|
-
let importSymbol = "CommonEntity";
|
|
463
|
+
let importSymbol = isLegacyTableWithId ? "LegacyCommonWithIdEntity" : isLegacyTable ? "LegacyCommonEntity" : "CommonEntity";
|
|
464
464
|
if (parentModel != null) {
|
|
465
465
|
importPath = parentModule === exports.SOLID_CORE_MODULE_NAME ? exports.SOLID_CORE_MODULE_NPM_PACKAGE_NAME : `src/${(0, strings_1.dasherize)(parentModule)}/entities/${(0, strings_1.dasherize)(parentModel)}.entity.ts`;
|
|
466
466
|
importSymbol = `${(0, strings_1.classify)(parentModel)}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/code-builder/lib/model/helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/code-builder/lib/model/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,21 @@
|
|
|
37
37
|
"description": "Whether the draft publish workflow is enabled for the model",
|
|
38
38
|
"default": "false"
|
|
39
39
|
},
|
|
40
|
+
"isLegacyTable": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"description": "Indicates whether the table is a legacy table",
|
|
43
|
+
"default": "false"
|
|
44
|
+
},
|
|
45
|
+
"isLegacyTableWithId": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"description": "Indicates whether the legacy table has an 'id' column",
|
|
48
|
+
"default": "false"
|
|
49
|
+
},
|
|
50
|
+
"dataSourceType": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"description": "The data source type of the model",
|
|
53
|
+
"enum": ["postgres", "mssql"]
|
|
54
|
+
},
|
|
40
55
|
"fields": {
|
|
41
56
|
"oneOf": [
|
|
42
57
|
{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<%=
|
|
1
|
+
<%= outputEntitySuperClassImport(isLegacyTable, isLegacyTableWithId, parentModel, parentModule) %>
|
|
2
2
|
import { <%= parentModel ? `ChildEntity` : `Entity` %> } from 'typeorm'
|
|
3
3
|
|
|
4
4
|
<%= parentModel ? `@ChildEntity()` : `@Entity(${table ? `'${table}'` : ''})` %>
|
|
5
|
-
export class <%= classify(model) %> extends <%= parentModel ? `${classify(parentModel)}` : `CommonEntity` %> {}
|
|
5
|
+
export class <%= classify(model) %> extends <%= parentModel ? `${classify(parentModel)}` : isLegacyTableWithId ? `LegacyCommonWithIdEntity`: isLegacyTable ? `LegacyCommonEntity` : `CommonEntity` %> {}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
import { RequestContextService, SecurityRuleRepository, SolidBaseRepository } from '@solidstarters/solid-core';
|
|
3
3
|
import { DataSource } from 'typeorm';
|
|
4
|
+
import { InjectDataSource } from '@nestjs/typeorm';
|
|
4
5
|
import { <%= classify(model) %> } from '../entities/<%= dasherize(model) %>.entity';
|
|
5
6
|
|
|
6
7
|
@Injectable()
|
|
7
8
|
export class <%= classify(model) %>Repository extends SolidBaseRepository<<%= classify(model) %>> {
|
|
8
9
|
constructor(
|
|
10
|
+
@InjectDataSource("<%= dataSource %>")
|
|
9
11
|
readonly dataSource: DataSource,
|
|
10
12
|
readonly requestContextService: RequestContextService,
|
|
11
13
|
readonly securityRuleRepository: SecurityRuleRepository,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<%=
|
|
1
|
+
<%= outputEntitySuperClassImport(isLegacyTable, isLegacyTableWithId, parentModel, parentModule) %>
|
|
2
2
|
import { <%= parentModel ? `ChildEntity` : `Entity` %> } from 'typeorm'
|
|
3
3
|
|
|
4
4
|
<%= parentModel ? `@ChildEntity()` : `@Entity(${table ? `'${table}'` : ''})` %>
|
|
5
|
-
export class <%= classify(model) %> extends <%= parentModel ? `${classify(parentModel)}` : `CommonEntity` %> {}
|
|
5
|
+
export class <%= classify(model) %> extends <%= parentModel ? `${classify(parentModel)}` : isLegacyTableWithId ? `LegacyCommonWithIdEntity`: isLegacyTable ? `LegacyCommonEntity` : `CommonEntity` %> {}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
import { RequestContextService, SecurityRuleRepository, SolidBaseRepository } from '@solidstarters/solid-core';
|
|
3
3
|
import { DataSource } from 'typeorm';
|
|
4
|
+
import { InjectDataSource } from '@nestjs/typeorm';
|
|
4
5
|
import { <%= classify(model) %> } from '../entities/<%= dasherize(model) %>.entity';
|
|
5
6
|
|
|
6
7
|
@Injectable()
|
|
7
8
|
export class <%= classify(model) %>Repository extends SolidBaseRepository<<%= classify(model) %>> {
|
|
8
9
|
constructor(
|
|
10
|
+
@InjectDataSource("<%= dataSource %>")
|
|
9
11
|
readonly dataSource: DataSource,
|
|
10
12
|
readonly requestContextService: RequestContextService,
|
|
11
13
|
readonly securityRuleRepository: SecurityRuleRepository,
|
package/package.json
CHANGED
|
@@ -49,6 +49,10 @@ export function addModule(options: any): Rule {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
export function refreshModel(options: any): Rule {
|
|
52
|
+
//Handle the isLegacyTable option and parse it to boolean
|
|
53
|
+
options.isLegacyTable = options.isLegacyTable === 'true' ? true : false;
|
|
54
|
+
options.isLegacyTableWithId = options.isLegacyTableWithId === 'true' ? true : false;
|
|
55
|
+
|
|
52
56
|
return (tree: Tree, _context: SchematicContext) => {
|
|
53
57
|
const modulePath = (options.module === SOLID_CORE_MODULE_NAME) ? `src` : `src/${options.module}`;
|
|
54
58
|
|
|
@@ -64,7 +68,7 @@ export function refreshModel(options: any): Rule {
|
|
|
64
68
|
};
|
|
65
69
|
}
|
|
66
70
|
|
|
67
|
-
|
|
71
|
+
function addModel(options: any): Rule {
|
|
68
72
|
return (tree: Tree, context: SchematicContext) => {
|
|
69
73
|
// If the module is solid-core, the code needs to be generated in src/ since solid-core-module is a library & there is only 1 module
|
|
70
74
|
const modulePath = (options.module === SOLID_CORE_MODULE_NAME) ? `src` : `src/${options.module}`;
|
|
@@ -93,7 +97,7 @@ function normalizeFieldType(fields: string| string[]): string[] {
|
|
|
93
97
|
return fields;
|
|
94
98
|
}
|
|
95
99
|
|
|
96
|
-
|
|
100
|
+
function addFields(options: any): Rule {
|
|
97
101
|
return (tree: Tree, _context: SchematicContext) => {
|
|
98
102
|
const normalizedFields = normalizeFieldType(options.fields);
|
|
99
103
|
const fields: any[] = normalizedFields.map((f: any) => JSON.parse(f));
|
|
@@ -104,12 +108,11 @@ export function addFields(options: any): Rule {
|
|
|
104
108
|
};
|
|
105
109
|
}
|
|
106
110
|
|
|
107
|
-
|
|
111
|
+
function updateFields(options: any): Rule {
|
|
108
112
|
return (tree: Tree, _context: SchematicContext) => {
|
|
109
113
|
const normalizedFields = normalizeFieldType(options.fields);
|
|
110
114
|
const fields: any[] = normalizedFields.map((f: any) => JSON.parse(f));
|
|
111
115
|
options?.generateChecksum ? generateModelHelpers.takeBackupIfChecksumsMismatch(tree, options.module) : "no-ops";
|
|
112
|
-
|
|
113
116
|
fields.forEach((field: any) => {
|
|
114
117
|
generateModelHelpers.updateField(tree, options, field);
|
|
115
118
|
});
|
|
@@ -210,7 +213,7 @@ function showTree(sourceNode: ts.SourceFile){
|
|
|
210
213
|
printAllChildren(sourceNode, 0);
|
|
211
214
|
}
|
|
212
215
|
|
|
213
|
-
|
|
216
|
+
function updateChecksum(moduleName: string, generateChecksum: boolean = false, ...filePaths: string[]): Rule {
|
|
214
217
|
return (tree: Tree, _context: SchematicContext) => {
|
|
215
218
|
if (!generateChecksum) {
|
|
216
219
|
return tree;
|
|
@@ -22,6 +22,7 @@ import { UUIDFieldHandler } from './field-managers/uuid/UUIDFieldHandler';
|
|
|
22
22
|
import { SOLID_CORE_MODULE_NAME, SOLID_CORE_MODULE_NPM_PACKAGE_NAME } from '../model/helpers';
|
|
23
23
|
import { OneToManyRelationFieldHandler } from './field-managers/relation/OneToManyRelationFieldHandler';
|
|
24
24
|
import { ManyToManyInverseRelationFieldHandler } from './field-managers/relation/ManyToManyInverseRelationFieldHandler';
|
|
25
|
+
import { SupportedDatabases } from './db-helpers';
|
|
25
26
|
|
|
26
27
|
export const MAX_EMAIL_LENGTH = 254;
|
|
27
28
|
export const UUID_REGEX = `^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$`;
|
|
@@ -183,6 +184,7 @@ export function getFieldHandler(
|
|
|
183
184
|
modelName: string,
|
|
184
185
|
field: any,
|
|
185
186
|
modelEnableSoftDelete: any,
|
|
187
|
+
dataSourceType?: SupportedDatabases
|
|
186
188
|
): FieldHandler {
|
|
187
189
|
switch (field.type) {
|
|
188
190
|
case SolidFieldType.shortText:
|
|
@@ -193,9 +195,9 @@ export function getFieldHandler(
|
|
|
193
195
|
}
|
|
194
196
|
return new ShortTextFieldHandler(tree, moduleName, modelName, field, modelEnableSoftDelete);
|
|
195
197
|
case SolidFieldType.longtext:
|
|
196
|
-
return new LongTextFieldHandler(tree, moduleName, modelName, field, modelEnableSoftDelete);
|
|
198
|
+
return new LongTextFieldHandler(tree, moduleName, modelName, field, modelEnableSoftDelete, dataSourceType);
|
|
197
199
|
case SolidFieldType.richText:
|
|
198
|
-
return new RichTextFieldHandler(tree, moduleName, modelName, field, modelEnableSoftDelete);
|
|
200
|
+
return new RichTextFieldHandler(tree, moduleName, modelName, field, modelEnableSoftDelete, dataSourceType);
|
|
199
201
|
case SolidFieldType.json:
|
|
200
202
|
return new JsonFieldHandler(tree, moduleName, modelName, field, modelEnableSoftDelete);
|
|
201
203
|
case SolidFieldType.int:
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// Create a function which takes args as dataSourceType and ormType and option i.e key and value and transforms it to a valid column option for typeorm
|
|
2
|
+
// If the database is Mssql and the field ormType is varchar or nvarchar, and the max = -1, set length to 'MAX'
|
|
3
|
+
// Add a proper switch case for a database and handle accordingly
|
|
4
|
+
export enum SupportedDatabases {
|
|
5
|
+
Postgres = 'postgres',
|
|
6
|
+
Mssql = 'mssql',
|
|
7
|
+
}
|
|
8
|
+
export function transformColumnOptionForDatabase(
|
|
9
|
+
optionKey: string,
|
|
10
|
+
optionValue: any,
|
|
11
|
+
ormType: string,
|
|
12
|
+
dataSourceType?: SupportedDatabases,
|
|
13
|
+
): unknown {
|
|
14
|
+
if (dataSourceType === SupportedDatabases.Mssql) {
|
|
15
|
+
if (optionKey === 'length' && optionValue === -1 && (ormType === 'varchar' || ormType === 'nvarchar')) {
|
|
16
|
+
return 'MAX';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
// Add more database specific transformations here as needed
|
|
20
|
+
|
|
21
|
+
return optionValue;
|
|
22
|
+
}
|
|
@@ -5,7 +5,7 @@ import { insertImport } from "@schematics/angular/utility/ast-utils";
|
|
|
5
5
|
import { Change } from "@schematics/angular/utility/change";
|
|
6
6
|
|
|
7
7
|
//TODO : Need to support column default e.g if type is a date field, the ormType should be deduced automatically depending upon the db used
|
|
8
|
-
interface ColumnDecoratorOptions {
|
|
8
|
+
export interface ColumnDecoratorOptions {
|
|
9
9
|
isColumn: boolean;
|
|
10
10
|
columnName: string;
|
|
11
11
|
type: string;
|
|
@@ -68,7 +68,7 @@ export class ManyToOneDecoratorManager implements DecoratorManager {
|
|
|
68
68
|
//TODO probably this too can be done in a lesser intrusive way i.e update everything instead of removing and adding
|
|
69
69
|
newModifiers = [...this.filterNonDecorators(existingModifiers), ...this.filterOtherDecorators(this.decoratorName(), existingModifiers)];
|
|
70
70
|
//Add the many-to-one decorator if it is required
|
|
71
|
-
const changes: Change[] = [];
|
|
71
|
+
const changes: Change[] = [];
|
|
72
72
|
if (this.isApplyDecorator()) {
|
|
73
73
|
newModifiers = [...newModifiers, this.createRelationDecorator(existingDecorator)];
|
|
74
74
|
changes.push(...this.decoratorImports());
|
|
@@ -116,7 +116,7 @@ export class ManyToOneDecoratorManager implements DecoratorManager {
|
|
|
116
116
|
}
|
|
117
117
|
return options;
|
|
118
118
|
}
|
|
119
|
-
|
|
119
|
+
|
|
120
120
|
private createRelationDecorator(existingRelationDecorator: ts.Decorator | undefined): ts.Decorator {
|
|
121
121
|
// console.log('createRelationDecorator called with ....', existingRelationDecorator?.getText());
|
|
122
122
|
// Capture the existing relation decorator options
|
|
@@ -156,16 +156,18 @@ export class ManyToOneDecoratorManager implements DecoratorManager {
|
|
|
156
156
|
}
|
|
157
157
|
private createRelationDecoratorOptions(): Map<string, ts.PropertyAssignment | null> {
|
|
158
158
|
const options: any = new Map<string, ts.Expression>();
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
159
|
+
if (!_.isEmpty(this.options.relationCascade)) {
|
|
160
|
+
const cascade = this.options.relationCascade.toUpperCase();
|
|
161
|
+
const onDeleteType: DeleteType = cascade as DeleteType;
|
|
162
|
+
options.set('onDelete', ts.factory.createStringLiteral(onDeleteType));
|
|
163
|
+
}
|
|
162
164
|
if (!this.options.required) {
|
|
163
165
|
options.set('nullable', ts.factory.createTrue());
|
|
164
166
|
}
|
|
165
167
|
else {
|
|
166
168
|
options.set('nullable', ts.factory.createFalse());
|
|
167
169
|
}
|
|
168
|
-
|
|
170
|
+
|
|
169
171
|
return this.optionsToPropertyAssignmentsOrNull(options);
|
|
170
172
|
}
|
|
171
173
|
private optionsToPropertyAssignmentsOrNull(options: Map<string, ts.Expression | null>): Map<string, ts.PropertyAssignment | null> {
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { PropertyDeclaration } from "@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript";
|
|
2
|
+
import { ColumnDecoratorManager, ColumnDecoratorOptions } from "./ColumnDecoratorManager";
|
|
3
|
+
|
|
4
|
+
export interface PrimaryColumnDecoratorOptions extends ColumnDecoratorOptions {
|
|
5
|
+
required: true;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export class PrimaryColumnDecoratorManager extends ColumnDecoratorManager {
|
|
9
|
+
|
|
10
|
+
constructor(public options: PrimaryColumnDecoratorOptions, public fieldNode?: PropertyDeclaration,) {
|
|
11
|
+
super(options, fieldNode);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
decoratorName(): string {
|
|
15
|
+
return 'PrimaryColumn';
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
}
|
|
@@ -29,11 +29,14 @@ import { RelationType } from "../../FieldManager";
|
|
|
29
29
|
import { UniqueIndexDecoratorManager } from '../../decorator-managers/entity/UniqueIndexDecoratorManager';
|
|
30
30
|
import { JoinColumnDecoratorManager } from '../../decorator-managers/entity/JoinColumnDecoratorManager';
|
|
31
31
|
import { OneToManyDecoratorManager } from '../../decorator-managers/entity/OneToManyDecoratorManager';
|
|
32
|
+
import { PrimaryColumnDecoratorManager } from '../../decorator-managers/entity/PrimaryColumnDecoratorManager';
|
|
33
|
+
import { SupportedDatabases } from '../..//db-helpers';
|
|
32
34
|
|
|
33
35
|
export abstract class BaseFieldManagerForEntity implements FieldManager {
|
|
34
36
|
source: SourceFile;
|
|
35
37
|
indexDecoratorManager: IndexDecoratorManager;
|
|
36
38
|
columnDecoratorManager: ColumnDecoratorManager;
|
|
39
|
+
primaryColumnDecoratorManager: PrimaryColumnDecoratorManager;
|
|
37
40
|
manyToOneDecoratorManager: ManyToOneDecoratorManager;
|
|
38
41
|
joinColumnDecoratorManager: DecoratorManager;
|
|
39
42
|
manyToManyDecoratorManager: DecoratorManager;
|
|
@@ -45,7 +48,8 @@ export abstract class BaseFieldManagerForEntity implements FieldManager {
|
|
|
45
48
|
protected readonly moduleName: string,
|
|
46
49
|
protected readonly modelName: string,
|
|
47
50
|
protected readonly field: any,
|
|
48
|
-
protected readonly modelEnableSoftDelete?: any
|
|
51
|
+
protected readonly modelEnableSoftDelete?: any,
|
|
52
|
+
protected readonly dataSourceType?: SupportedDatabases
|
|
49
53
|
) {
|
|
50
54
|
// TODO: Note that the source file instance is created during construction
|
|
51
55
|
// So every operation should use a new instance of the field manager, so updated tree/source is used before each operation
|
|
@@ -75,6 +79,19 @@ export abstract class BaseFieldManagerForEntity implements FieldManager {
|
|
|
75
79
|
},
|
|
76
80
|
fieldPropertyDeclarationNode,
|
|
77
81
|
);
|
|
82
|
+
this.primaryColumnDecoratorManager = new PrimaryColumnDecoratorManager(
|
|
83
|
+
{
|
|
84
|
+
required: true,
|
|
85
|
+
isColumn: this.isPrimaryColumn(),
|
|
86
|
+
columnName: this.field.columnName,
|
|
87
|
+
type: this.field.ormType,
|
|
88
|
+
otherOptions: this.additionalColumnDecoratorOptions(),
|
|
89
|
+
otherOptionExpressions: this.additionalColumnDecoratorOptionExpressions(),
|
|
90
|
+
source: this.source,
|
|
91
|
+
field: this.field,
|
|
92
|
+
},
|
|
93
|
+
fieldPropertyDeclarationNode,
|
|
94
|
+
);
|
|
78
95
|
this.manyToOneDecoratorManager = new ManyToOneDecoratorManager(
|
|
79
96
|
{
|
|
80
97
|
isManyToOne: this.isManyToOne(),
|
|
@@ -479,7 +496,11 @@ export abstract class BaseFieldManagerForEntity implements FieldManager {
|
|
|
479
496
|
}
|
|
480
497
|
|
|
481
498
|
private isColumn(): boolean {
|
|
482
|
-
return this.field.type !== 'relation';
|
|
499
|
+
return this.field.type !== 'relation' && this.field.isPrimaryKey !== true;
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
private isPrimaryColumn(): boolean {
|
|
503
|
+
return this.field.type !== 'relation' && this.field.isPrimaryKey === true;
|
|
483
504
|
}
|
|
484
505
|
|
|
485
506
|
protected applyUpdateDecoratorTransformations(fieldPropertyDeclarationNode: ts.PropertyDeclaration, ...transformers: DecoratorManager[]): [ts.PropertyDeclaration, Change[]] {
|
|
@@ -517,7 +538,7 @@ export abstract class BaseFieldManagerForEntity implements FieldManager {
|
|
|
517
538
|
}
|
|
518
539
|
|
|
519
540
|
private decoratorManagers(): DecoratorManager[] {
|
|
520
|
-
return [this.indexDecoratorManager, this.columnDecoratorManager, this.manyToOneDecoratorManager, this.joinColumnDecoratorManager, this.manyToManyDecoratorManager, this.joinTableDecoratorManager, this.oneToManyDecoratorManager];
|
|
541
|
+
return [this.indexDecoratorManager, this.columnDecoratorManager, this.primaryColumnDecoratorManager, this.manyToOneDecoratorManager, this.joinColumnDecoratorManager, this.manyToManyDecoratorManager, this.joinTableDecoratorManager, this.oneToManyDecoratorManager];
|
|
521
542
|
}
|
|
522
543
|
|
|
523
544
|
protected addAdditionalField(): FieldChange[] {
|
|
@@ -2,6 +2,7 @@ import { Tree } from '@angular-devkit/schematics';
|
|
|
2
2
|
import { DtoSourceType, FieldChange, FieldHandler, FieldManager, ManagerForDtoOptions } from '../../FieldManager';
|
|
3
3
|
import { LongTextFieldManagerForDto } from './LongTextFieldManagerForDto';
|
|
4
4
|
import { LongTextFieldManagerForEntity } from './LongTextFieldManagerForEntity';
|
|
5
|
+
import { SupportedDatabases } from '../../db-helpers';
|
|
5
6
|
|
|
6
7
|
export class LongTextFieldHandler implements FieldHandler {
|
|
7
8
|
entityFieldManager: FieldManager;
|
|
@@ -13,14 +14,16 @@ export class LongTextFieldHandler implements FieldHandler {
|
|
|
13
14
|
moduleName: string,
|
|
14
15
|
modelName: string,
|
|
15
16
|
field: string,
|
|
16
|
-
modelEnableSoftDelete: any
|
|
17
|
+
modelEnableSoftDelete: any,
|
|
18
|
+
dataSourceType?: SupportedDatabases
|
|
17
19
|
) {
|
|
18
20
|
this.entityFieldManager = new LongTextFieldManagerForEntity(
|
|
19
21
|
tree,
|
|
20
22
|
moduleName,
|
|
21
23
|
modelName,
|
|
22
24
|
field,
|
|
23
|
-
modelEnableSoftDelete
|
|
25
|
+
modelEnableSoftDelete,
|
|
26
|
+
dataSourceType
|
|
24
27
|
);
|
|
25
28
|
this.createDtoFieldManager = new LongTextFieldManagerForDto(
|
|
26
29
|
tree,
|
package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.ts
CHANGED
|
@@ -2,33 +2,63 @@ import { Tree } from '@angular-devkit/schematics';
|
|
|
2
2
|
import ts from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript';
|
|
3
3
|
import { FieldManager, FieldType } from '../../FieldManager';
|
|
4
4
|
import { BaseFieldManagerForEntity } from '../base/BaseFieldManagerForEntity';
|
|
5
|
+
import { SupportedDatabases, transformColumnOptionForDatabase } from '../../db-helpers';
|
|
5
6
|
|
|
6
7
|
//FIXME Implementation pending
|
|
7
8
|
export class LongTextFieldManagerForEntity
|
|
8
9
|
extends BaseFieldManagerForEntity
|
|
9
|
-
implements FieldManager
|
|
10
|
-
{
|
|
10
|
+
implements FieldManager {
|
|
11
11
|
source: ts.SourceFile;
|
|
12
12
|
|
|
13
|
-
constructor(tree: Tree, moduleName: string, modelName: string, field: any, modelEnableSoftDelete: any) {
|
|
14
|
-
super(tree, moduleName, modelName, field, modelEnableSoftDelete);
|
|
13
|
+
constructor(tree: Tree, moduleName: string, modelName: string, field: any, modelEnableSoftDelete: any, dataSourceType?: SupportedDatabases) {
|
|
14
|
+
super(tree, moduleName, modelName, field, modelEnableSoftDelete, dataSourceType);
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
fieldType(): FieldType {
|
|
18
18
|
return {
|
|
19
19
|
text: 'string',
|
|
20
|
-
node:
|
|
20
|
+
node: (_field: any) => ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
protected override additionalColumnDecoratorOptions(): Map<string, any> {
|
|
25
25
|
const options = new Map<string, any>();
|
|
26
|
+
//console.log(`Configuring LongText field with max length ${this.field.max} for database ${this.dataSourceType}`);
|
|
27
|
+
if (this.field.max) {
|
|
28
|
+
options.set('length', transformColumnOptionForDatabase(
|
|
29
|
+
'length',
|
|
30
|
+
this.field.max,
|
|
31
|
+
this.field.ormType,
|
|
32
|
+
this.dataSourceType,
|
|
33
|
+
)
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
|
|
26
37
|
options.set('default', this.defaultValueInitializer(this.field.defaultValue)?.value ?? null);
|
|
27
|
-
return options;
|
|
38
|
+
return options;
|
|
28
39
|
}
|
|
29
40
|
|
|
30
41
|
protected override additionalColumnDecoratorOptionExpressions(): Map<string, ts.Expression | null> {
|
|
31
42
|
const options = new Map<string, ts.Expression | null>();
|
|
43
|
+
if (this.field.max) {
|
|
44
|
+
const lengthValue = transformColumnOptionForDatabase(
|
|
45
|
+
'length',
|
|
46
|
+
this.field.max,
|
|
47
|
+
this.field.ormType,
|
|
48
|
+
this.dataSourceType,
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
if (typeof lengthValue === 'number') {
|
|
52
|
+
options.set('length', ts.factory.createNumericLiteral(lengthValue));
|
|
53
|
+
} else if (typeof lengthValue === 'string') {
|
|
54
|
+
options.set('length', ts.factory.createStringLiteral(lengthValue));
|
|
55
|
+
} else {
|
|
56
|
+
options.set('length', null);
|
|
57
|
+
}
|
|
58
|
+
} else {
|
|
59
|
+
options.set('length', null);
|
|
60
|
+
}
|
|
61
|
+
|
|
32
62
|
options.set('default', this.defaultValueInitializer(this.field.defaultValue)?.expression ?? null);
|
|
33
63
|
return options
|
|
34
64
|
}
|
|
@@ -2,6 +2,7 @@ import { Tree } from '@angular-devkit/schematics';
|
|
|
2
2
|
import { DtoSourceType, FieldChange, FieldHandler, FieldManager, ManagerForDtoOptions } from '../../FieldManager';
|
|
3
3
|
import { RichTextFieldManagerForDto } from './RichTextFieldManagerForDto';
|
|
4
4
|
import { RichTextFieldManagerForEntity } from './RichTextFieldManagerForEntity';
|
|
5
|
+
import { SupportedDatabases } from '../../db-helpers';
|
|
5
6
|
|
|
6
7
|
export class RichTextFieldHandler implements FieldHandler {
|
|
7
8
|
entityFieldManager: FieldManager;
|
|
@@ -12,14 +13,16 @@ export class RichTextFieldHandler implements FieldHandler {
|
|
|
12
13
|
moduleName: string,
|
|
13
14
|
modelName: string,
|
|
14
15
|
field: string,
|
|
15
|
-
modelEnableSoftDelete: any
|
|
16
|
+
modelEnableSoftDelete: any,
|
|
17
|
+
dataSourceType?: SupportedDatabases
|
|
16
18
|
) {
|
|
17
19
|
this.entityFieldManager = new RichTextFieldManagerForEntity(
|
|
18
20
|
tree,
|
|
19
21
|
moduleName,
|
|
20
22
|
modelName,
|
|
21
23
|
field,
|
|
22
|
-
modelEnableSoftDelete
|
|
24
|
+
modelEnableSoftDelete,
|
|
25
|
+
dataSourceType
|
|
23
26
|
);
|
|
24
27
|
this.createDtoFieldManager = new RichTextFieldManagerForDto(
|
|
25
28
|
tree,
|