@cheetah.js/orm 0.1.34 → 0.1.36
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/SqlBuilder.d.ts +0 -1
- package/dist/SqlBuilder.js +3 -24
- package/dist/SqlBuilder.js.map +1 -1
- package/dist/bun/index.js +1724 -1907
- package/dist/bun/index.js.map +23 -29
- package/dist/common/email.vo.d.ts +1 -1
- package/dist/common/email.vo.js +1 -1
- package/dist/common/email.vo.js.map +1 -1
- package/dist/common/value-object.d.ts +47 -1
- package/dist/common/value-object.js +80 -3
- package/dist/common/value-object.js.map +1 -1
- package/dist/decorators/property.decorator.d.ts +3 -1
- package/dist/decorators/property.decorator.js +15 -7
- package/dist/decorators/property.decorator.js.map +1 -1
- package/dist/domain/entities.d.ts +2 -2
- package/dist/domain/entities.js +38 -31
- package/dist/domain/entities.js.map +1 -1
- package/dist/driver/driver.interface.d.ts +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.js +12 -0
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
package/dist/common/email.vo.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.vo.js","sourceRoot":"","sources":["../../src/common/email.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,KAAK,GAAG,4CAA4C,CAAC;AAE3D,MAAM,OAAO,KAAM,SAAQ,WAA0B;
|
|
1
|
+
{"version":3,"file":"email.vo.js","sourceRoot":"","sources":["../../src/common/email.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,KAAK,GAAG,4CAA4C,CAAC;AAE3D,MAAM,OAAO,KAAM,SAAQ,WAA0B;IACzC,QAAQ,CAAC,KAAa;QAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
type VoExtended<T, Vo> = Vo extends ValueObject<T, Vo> ? Vo : ValueObject<T, Vo>;
|
|
2
|
+
type DatabaseValues = {
|
|
3
|
+
max?: number;
|
|
4
|
+
min?: number;
|
|
5
|
+
precision?: number;
|
|
6
|
+
scale?: number;
|
|
7
|
+
};
|
|
2
8
|
export declare abstract class ValueObject<T, Vo> {
|
|
3
9
|
/**
|
|
4
10
|
* Validates the value of the Value Object.
|
|
@@ -9,6 +15,32 @@ export declare abstract class ValueObject<T, Vo> {
|
|
|
9
15
|
* @protected
|
|
10
16
|
*/
|
|
11
17
|
protected abstract validate(value: T): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* The maximum length of the Value Object.
|
|
20
|
+
* It value is optional and will be used in database if this Value Object is used as a column.
|
|
21
|
+
* If the value is string, it will be the maximum number of characters.
|
|
22
|
+
* If the value is number, it will be the maximum number.
|
|
23
|
+
*/
|
|
24
|
+
protected max?: number;
|
|
25
|
+
/**
|
|
26
|
+
* The minimum length of the Value Object.
|
|
27
|
+
* It value is optional.
|
|
28
|
+
* If the value is string, it will be the minimum number of characters.
|
|
29
|
+
* If the value is number, it will be the minimum number.
|
|
30
|
+
*/
|
|
31
|
+
protected min?: number;
|
|
32
|
+
/**
|
|
33
|
+
* The precision of the Value Object.
|
|
34
|
+
* It value is optional and will be used in database if this Value Object is used as a column.
|
|
35
|
+
* It is the number of digits in a number.
|
|
36
|
+
*/
|
|
37
|
+
protected precision?: number;
|
|
38
|
+
/**
|
|
39
|
+
* The scale of the Value Object.
|
|
40
|
+
* It value is optional and will be used in database if this Value Object is used as a column.
|
|
41
|
+
* It is the number of digits to the right of the decimal point in a number.
|
|
42
|
+
*/
|
|
43
|
+
protected scale?: number;
|
|
12
44
|
/**
|
|
13
45
|
* Valor do Value Object.
|
|
14
46
|
* É privado para não ser alterado diretamente.
|
|
@@ -17,7 +49,7 @@ export declare abstract class ValueObject<T, Vo> {
|
|
|
17
49
|
* @private
|
|
18
50
|
*/
|
|
19
51
|
private value;
|
|
20
|
-
constructor(value: T);
|
|
52
|
+
constructor(value: T, skipValidation?: boolean);
|
|
21
53
|
/**
|
|
22
54
|
* Creates a Value Object instance from a value.
|
|
23
55
|
*
|
|
@@ -38,6 +70,12 @@ export declare abstract class ValueObject<T, Vo> {
|
|
|
38
70
|
* @param vo
|
|
39
71
|
*/
|
|
40
72
|
equals(vo: ValueObject<T, Vo>): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Returns the database settings of the Value Object.
|
|
75
|
+
*
|
|
76
|
+
* @returns
|
|
77
|
+
*/
|
|
78
|
+
getDatabaseValues(): DatabaseValues;
|
|
41
79
|
/**
|
|
42
80
|
* Sets the value of the Value Object.
|
|
43
81
|
*
|
|
@@ -45,5 +83,13 @@ export declare abstract class ValueObject<T, Vo> {
|
|
|
45
83
|
* @private
|
|
46
84
|
*/
|
|
47
85
|
private setValue;
|
|
86
|
+
/**
|
|
87
|
+
* Validates the value of the Value Object.
|
|
88
|
+
* It is private so that it can only be called by the constructor.
|
|
89
|
+
*
|
|
90
|
+
* @param value
|
|
91
|
+
* @returns
|
|
92
|
+
*/
|
|
93
|
+
private validateDatabase;
|
|
48
94
|
}
|
|
49
95
|
export {};
|
|
@@ -1,5 +1,31 @@
|
|
|
1
|
-
import { HttpException } from
|
|
1
|
+
import { HttpException } from "@cheetah.js/core";
|
|
2
2
|
export class ValueObject {
|
|
3
|
+
/**
|
|
4
|
+
* The maximum length of the Value Object.
|
|
5
|
+
* It value is optional and will be used in database if this Value Object is used as a column.
|
|
6
|
+
* If the value is string, it will be the maximum number of characters.
|
|
7
|
+
* If the value is number, it will be the maximum number.
|
|
8
|
+
*/
|
|
9
|
+
max;
|
|
10
|
+
/**
|
|
11
|
+
* The minimum length of the Value Object.
|
|
12
|
+
* It value is optional.
|
|
13
|
+
* If the value is string, it will be the minimum number of characters.
|
|
14
|
+
* If the value is number, it will be the minimum number.
|
|
15
|
+
*/
|
|
16
|
+
min;
|
|
17
|
+
/**
|
|
18
|
+
* The precision of the Value Object.
|
|
19
|
+
* It value is optional and will be used in database if this Value Object is used as a column.
|
|
20
|
+
* It is the number of digits in a number.
|
|
21
|
+
*/
|
|
22
|
+
precision;
|
|
23
|
+
/**
|
|
24
|
+
* The scale of the Value Object.
|
|
25
|
+
* It value is optional and will be used in database if this Value Object is used as a column.
|
|
26
|
+
* It is the number of digits to the right of the decimal point in a number.
|
|
27
|
+
*/
|
|
28
|
+
scale;
|
|
3
29
|
/**
|
|
4
30
|
* Valor do Value Object.
|
|
5
31
|
* É privado para não ser alterado diretamente.
|
|
@@ -8,8 +34,8 @@ export class ValueObject {
|
|
|
8
34
|
* @private
|
|
9
35
|
*/
|
|
10
36
|
value;
|
|
11
|
-
constructor(value) {
|
|
12
|
-
if (!this.validate(value)) {
|
|
37
|
+
constructor(value, skipValidation = false) {
|
|
38
|
+
if (!skipValidation && (!this.validate(value) || !this.validateDatabase(value))) {
|
|
13
39
|
throw new HttpException(`Invalid value for ${this.constructor.name}`, 400);
|
|
14
40
|
}
|
|
15
41
|
this.setValue(value);
|
|
@@ -40,6 +66,19 @@ export class ValueObject {
|
|
|
40
66
|
equals(vo) {
|
|
41
67
|
return this.getValue() === vo.getValue();
|
|
42
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Returns the database settings of the Value Object.
|
|
71
|
+
*
|
|
72
|
+
* @returns
|
|
73
|
+
*/
|
|
74
|
+
getDatabaseValues() {
|
|
75
|
+
return {
|
|
76
|
+
max: this.max,
|
|
77
|
+
min: this.min,
|
|
78
|
+
precision: this.precision,
|
|
79
|
+
scale: this.scale,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
43
82
|
/**
|
|
44
83
|
* Sets the value of the Value Object.
|
|
45
84
|
*
|
|
@@ -49,5 +88,43 @@ export class ValueObject {
|
|
|
49
88
|
setValue(value) {
|
|
50
89
|
this.value = value;
|
|
51
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Validates the value of the Value Object.
|
|
93
|
+
* It is private so that it can only be called by the constructor.
|
|
94
|
+
*
|
|
95
|
+
* @param value
|
|
96
|
+
* @returns
|
|
97
|
+
*/
|
|
98
|
+
validateDatabase(value) {
|
|
99
|
+
if (typeof value === "string") {
|
|
100
|
+
if (this.max !== undefined && value.length > this.max) {
|
|
101
|
+
throw new HttpException(`Value exceeds maximum length of ${this.max}`, 400);
|
|
102
|
+
}
|
|
103
|
+
if (this.min !== undefined && value.length < this.min) {
|
|
104
|
+
throw new HttpException(`Value is less than minimum length of ${this.min}`, 400);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
else if (typeof value === "number") {
|
|
108
|
+
if (this.max !== undefined && value > this.max) {
|
|
109
|
+
throw new HttpException(`Value exceeds maximum value of ${this.max}`, 400);
|
|
110
|
+
}
|
|
111
|
+
if (this.min !== undefined && value < this.min) {
|
|
112
|
+
throw new HttpException(`Value is less than minimum value of ${this.min}`, 400);
|
|
113
|
+
}
|
|
114
|
+
if (this.precision !== undefined) {
|
|
115
|
+
const totalDigits = value.toString().replace(".", "").length;
|
|
116
|
+
if (totalDigits > this.precision) {
|
|
117
|
+
throw new HttpException(`Value exceeds precision of ${this.precision}`, 400);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (this.scale !== undefined) {
|
|
121
|
+
const decimalDigits = (value.toString().split(".")[1] || "").length;
|
|
122
|
+
if (decimalDigits > this.scale) {
|
|
123
|
+
throw new HttpException(`Value exceeds scale of ${this.scale}`, 400);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
52
129
|
}
|
|
53
130
|
//# sourceMappingURL=value-object.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-object.js","sourceRoot":"","sources":["../../src/common/value-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"value-object.js","sourceRoot":"","sources":["../../src/common/value-object.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,9 @@ export type PropertyOptions = {
|
|
|
6
6
|
hidden?: boolean;
|
|
7
7
|
unique?: boolean;
|
|
8
8
|
index?: boolean;
|
|
9
|
-
|
|
9
|
+
precision?: number;
|
|
10
|
+
scale?: number;
|
|
11
|
+
dbType?: "varchar" | "text" | "int" | "bigint" | "float" | "double" | "decimal" | "date" | "datetime" | "time" | "timestamp" | "boolean" | "json" | "jsonb" | "enum" | "array" | "uuid";
|
|
10
12
|
autoIncrement?: boolean;
|
|
11
13
|
columnName?: string;
|
|
12
14
|
isEnum?: boolean;
|
|
@@ -1,20 +1,28 @@
|
|
|
1
|
-
import { PROPERTIES, PROPERTIES_METADATA } from
|
|
2
|
-
import { getDefaultLength, toSnakeCase } from
|
|
3
|
-
import { Metadata } from
|
|
4
|
-
import { Index } from
|
|
1
|
+
import { PROPERTIES, PROPERTIES_METADATA } from "../constants";
|
|
2
|
+
import { extendsFrom, getDefaultLength, toSnakeCase } from "../utils";
|
|
3
|
+
import { Metadata } from "@cheetah.js/core";
|
|
4
|
+
import { Index } from "./index.decorator";
|
|
5
|
+
import { ValueObject } from "..";
|
|
5
6
|
export function Property(options) {
|
|
6
7
|
return (target, propertyKey) => {
|
|
7
8
|
const properties = Metadata.get(PROPERTIES, target.constructor) || [];
|
|
8
9
|
const type = Metadata.getType(target, propertyKey);
|
|
9
10
|
const length = (options && options.length) || getDefaultLength(type.name);
|
|
10
11
|
options = { length, ...options };
|
|
11
|
-
options[
|
|
12
|
+
options["columnName"] = options?.columnName || toSnakeCase(propertyKey);
|
|
13
|
+
if (extendsFrom(ValueObject, type.prototype)) {
|
|
14
|
+
let instance = new type(null, true).getDatabaseValues();
|
|
15
|
+
options["length"] = instance.max;
|
|
16
|
+
options["precision"] = instance.precision;
|
|
17
|
+
options["scale"] = instance.scale;
|
|
18
|
+
instance = null; // Garbage collector
|
|
19
|
+
}
|
|
12
20
|
properties.push({ propertyKey, options });
|
|
13
21
|
Metadata.set(PROPERTIES, properties, target.constructor);
|
|
14
22
|
if (options.isPrimary) {
|
|
15
|
-
const indexes = Metadata.get(
|
|
23
|
+
const indexes = Metadata.get("indexes", target.constructor) || [];
|
|
16
24
|
indexes.push({ name: `[TABLE]_pkey`, properties: [propertyKey] });
|
|
17
|
-
Metadata.set(
|
|
25
|
+
Metadata.set("indexes", indexes, target.constructor);
|
|
18
26
|
}
|
|
19
27
|
if (options.index) {
|
|
20
28
|
Index({ properties: [propertyKey] })(target, propertyKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property.decorator.js","sourceRoot":"","sources":["../../src/decorators/property.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"property.decorator.js","sourceRoot":"","sources":["../../src/decorators/property.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAwCjC,MAAM,UAAU,QAAQ,CAAC,OAAyB;IAChD,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC7B,MAAM,UAAU,GAAW,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC9E,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1E,OAAO,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;QACjC,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,EAAE,UAAU,IAAI,WAAW,CAAC,WAAqB,CAAC,CAAC;QAElF,IAAI,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;YAC5C,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC;YACxD,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;YACjC,OAAO,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC;YAC1C,OAAO,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;YAClC,QAAQ,GAAG,IAAI,CAAC,CAAC,oBAAoB;SACtC;QAED,UAAU,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1C,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAEzD,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,MAAM,OAAO,GAA6C,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAC5G,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,WAAqB,CAAC,EAAE,CAAC,CAAC;YAC5E,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;SACtD;QAED,IAAI,OAAO,CAAC,KAAK,EAAE;YACjB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC,WAAqB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;SACrE;QAED,UAAU,CAAC,OAAO,CAAC,CAAC,QAAc,EAAE,EAAE;YACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAC1E,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC5D,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;YAClE,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PropertyOptions } from
|
|
2
|
-
import { Relationship, SnapshotIndexInfo, SnapshotTable } from
|
|
1
|
+
import { PropertyOptions } from "../decorators/property.decorator";
|
|
2
|
+
import { Relationship, SnapshotIndexInfo, SnapshotTable } from "../driver/driver.interface";
|
|
3
3
|
export type Property = {
|
|
4
4
|
options: PropertyOptions;
|
|
5
5
|
type: Function;
|
package/dist/domain/entities.js
CHANGED
|
@@ -8,8 +8,8 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
10
|
var EntityStorage_1;
|
|
11
|
-
import { Metadata, Service } from
|
|
12
|
-
import { getDefaultLength, toSnakeCase } from
|
|
11
|
+
import { Metadata, Service } from "@cheetah.js/core";
|
|
12
|
+
import { getDefaultLength, toSnakeCase } from "../utils";
|
|
13
13
|
let EntityStorage = class EntityStorage {
|
|
14
14
|
static { EntityStorage_1 = this; }
|
|
15
15
|
static instance;
|
|
@@ -19,16 +19,18 @@ let EntityStorage = class EntityStorage {
|
|
|
19
19
|
}
|
|
20
20
|
add(entity, properties, relations, hooks) {
|
|
21
21
|
const entityName = entity.options?.tableName || toSnakeCase(entity.target.name);
|
|
22
|
-
const indexes = Metadata.get(
|
|
22
|
+
const indexes = Metadata.get("indexes", entity.target) || [];
|
|
23
23
|
this.entities.set(entity.target, {
|
|
24
24
|
properties: properties,
|
|
25
|
-
hideProperties: Object.entries(properties)
|
|
25
|
+
hideProperties: Object.entries(properties)
|
|
26
|
+
.filter(([key, value]) => value.options.hidden)
|
|
27
|
+
.map(([key]) => key),
|
|
26
28
|
relations,
|
|
27
29
|
indexes: indexes.map((index) => {
|
|
28
30
|
return {
|
|
29
31
|
table: entityName,
|
|
30
|
-
indexName: index.name.replace(
|
|
31
|
-
columnName: index.properties.join(
|
|
32
|
+
indexName: index.name.replace("[TABLE]", entityName),
|
|
33
|
+
columnName: index.properties.join(","),
|
|
32
34
|
};
|
|
33
35
|
}),
|
|
34
36
|
hooks,
|
|
@@ -48,7 +50,7 @@ let EntityStorage = class EntityStorage {
|
|
|
48
50
|
async snapshot(values) {
|
|
49
51
|
return {
|
|
50
52
|
tableName: values.tableName,
|
|
51
|
-
schema: values.schema ||
|
|
53
|
+
schema: values.schema || "public",
|
|
52
54
|
indexes: values.indexes || [],
|
|
53
55
|
columns: this.snapshotColumns(values),
|
|
54
56
|
};
|
|
@@ -65,29 +67,34 @@ let EntityStorage = class EntityStorage {
|
|
|
65
67
|
unique: value.options?.unique,
|
|
66
68
|
length: value.options?.length,
|
|
67
69
|
isEnum: value.options?.isEnum,
|
|
70
|
+
precision: value.options?.precision,
|
|
71
|
+
scale: value.options?.scale,
|
|
68
72
|
enumItems: value.options?.enumItems,
|
|
69
73
|
};
|
|
70
74
|
});
|
|
71
75
|
// @ts-ignore
|
|
72
|
-
let relations = values.relations &&
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
76
|
+
let relations = values.relations &&
|
|
77
|
+
values.relations.map((relation) => {
|
|
78
|
+
const type = this.getFkType(relation);
|
|
79
|
+
return {
|
|
80
|
+
name: relation.columnName,
|
|
81
|
+
type,
|
|
82
|
+
nullable: relation.nullable,
|
|
83
|
+
unique: relation.unique,
|
|
84
|
+
length: relation.length || getDefaultLength(type),
|
|
85
|
+
default: relation.default,
|
|
86
|
+
autoIncrement: this.getFkIncrement(relation),
|
|
87
|
+
primary: relation.isPrimary,
|
|
88
|
+
precision: relation.precision,
|
|
89
|
+
scale: relation.scale,
|
|
90
|
+
foreignKeys: [
|
|
91
|
+
{
|
|
92
|
+
referencedColumnName: this.getFkKey(relation),
|
|
93
|
+
referencedTableName: this.get(relation.entity()).tableName,
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
};
|
|
97
|
+
});
|
|
91
98
|
if (!relations) {
|
|
92
99
|
relations = [];
|
|
93
100
|
}
|
|
@@ -108,14 +115,14 @@ let EntityStorage = class EntityStorage {
|
|
|
108
115
|
getFkType(relation) {
|
|
109
116
|
const entity = this.get(relation.entity());
|
|
110
117
|
if (!entity) {
|
|
111
|
-
return
|
|
118
|
+
return "unknown";
|
|
112
119
|
}
|
|
113
120
|
return entity.properties[this.getFkKey(relation)].type.name;
|
|
114
121
|
}
|
|
115
122
|
getFkIncrement(relation) {
|
|
116
123
|
const entity = this.get(relation.entity());
|
|
117
124
|
if (!entity) {
|
|
118
|
-
return
|
|
125
|
+
return "unknown";
|
|
119
126
|
}
|
|
120
127
|
return entity.properties[this.getFkKey(relation)].options.autoIncrement;
|
|
121
128
|
}
|
|
@@ -126,7 +133,7 @@ let EntityStorage = class EntityStorage {
|
|
|
126
133
|
*/
|
|
127
134
|
getFkKey(relationShip) {
|
|
128
135
|
// se for nullable, deverá retornar o primary key da entidade target
|
|
129
|
-
if (typeof relationShip.fkKey ===
|
|
136
|
+
if (typeof relationShip.fkKey === "undefined") {
|
|
130
137
|
const entity = this.entities.get(relationShip.entity());
|
|
131
138
|
const property = Object.entries(entity.properties).find(([key, value]) => value.options.isPrimary === true);
|
|
132
139
|
if (!property) {
|
|
@@ -136,11 +143,11 @@ let EntityStorage = class EntityStorage {
|
|
|
136
143
|
}
|
|
137
144
|
// se o fkKey é uma função, ele retornará a propriedade da entidade que é a chave estrangeira
|
|
138
145
|
// precisamos pegar o nome dessa propriedade
|
|
139
|
-
if (typeof relationShip.fkKey ===
|
|
146
|
+
if (typeof relationShip.fkKey === "string") {
|
|
140
147
|
return relationShip.fkKey;
|
|
141
148
|
}
|
|
142
149
|
const match = /\.(?<propriedade>[\w]+)/.exec(relationShip.fkKey.toString());
|
|
143
|
-
return match ? match.groups.propriedade :
|
|
150
|
+
return match ? match.groups.propriedade : "";
|
|
144
151
|
}
|
|
145
152
|
};
|
|
146
153
|
EntityStorage = EntityStorage_1 = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entities.js","sourceRoot":"","sources":["../../src/domain/entities.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAkBlD,IAAM,aAAa,GAAnB,MAAM,aAAa;;IACxB,MAAM,CAAC,QAAQ,CAAgB;IAEvB,QAAQ,GAA2B,IAAI,GAAG,EAAE,CAAC;IAErD;QACE,eAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;IAChC,CAAC;IAED,GAAG,
|
|
1
|
+
{"version":3,"file":"entities.js","sourceRoot":"","sources":["../../src/domain/entities.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export * from './decorators/event-hook.decorator';
|
|
|
7
7
|
export * from './orm';
|
|
8
8
|
export * from './orm.service';
|
|
9
9
|
export * from './domain/base-entity';
|
|
10
|
+
export { EntityStorage, Options as EntityOptions, Property as EntityProperty } from './domain/entities';
|
|
10
11
|
export * from './driver/pg-driver';
|
|
11
12
|
export * from './utils';
|
|
12
13
|
export * from './driver/driver.interface';
|
package/dist/index.js
CHANGED
|
@@ -7,6 +7,7 @@ export * from './decorators/event-hook.decorator';
|
|
|
7
7
|
export * from './orm';
|
|
8
8
|
export * from './orm.service';
|
|
9
9
|
export * from './domain/base-entity';
|
|
10
|
+
export { EntityStorage } from './domain/entities';
|
|
10
11
|
export * from './driver/pg-driver';
|
|
11
12
|
export * from './utils';
|
|
12
13
|
export * from './driver/driver.interface';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,OAAO,CAAA;AACrB,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,SAAS,CAAA;AACvB,cAAc,2BAA2B,CAAA;AACzC,cAAc,SAAS,CAAA;AACvB,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,OAAO,CAAA;AACrB,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,aAAa,EAAwD,MAAM,mBAAmB,CAAA;AACvG,cAAc,oBAAoB,CAAA;AAClC,cAAc,SAAS,CAAA;AACvB,cAAc,2BAA2B,CAAA;AACzC,cAAc,SAAS,CAAA;AACvB,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA"}
|
package/dist/utils.d.ts
CHANGED
package/dist/utils.js
CHANGED
|
@@ -5,4 +5,16 @@ export function toSnakeCase(propertyKey1) {
|
|
|
5
5
|
propertyKey1 = propertyKey1[0].toLowerCase() + propertyKey1.slice(1);
|
|
6
6
|
return propertyKey1.replace(/([A-Z])/g, '_$1').toLowerCase();
|
|
7
7
|
}
|
|
8
|
+
export function extendsFrom(baseClass, instance) {
|
|
9
|
+
if (!instance)
|
|
10
|
+
return false;
|
|
11
|
+
let proto = Object.getPrototypeOf(instance);
|
|
12
|
+
while (proto) {
|
|
13
|
+
if (proto === baseClass.prototype) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
proto = Object.getPrototypeOf(proto);
|
|
17
|
+
}
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
8
20
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,YAAoB;IAC9C,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAErE,OAAO,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC/D,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,YAAoB;IAC9C,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAErE,OAAO,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAAS,EAAE,QAAQ;IAC7C,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC5C,OAAO,KAAK,EAAE;QACZ,IAAI,KAAK,KAAK,SAAS,CAAC,SAAS,EAAE;YACjC,OAAO,IAAI,CAAC;SACb;QACD,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KACtC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|