@spinajs/orm-sql 2.0.28 → 2.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/lib/compilers.d.ts +25 -6
  2. package/lib/compilers.js +223 -16
  3. package/lib/compilers.js.map +1 -1
  4. package/lib/converters.js +4 -7
  5. package/lib/converters.js.map +1 -1
  6. package/lib/index.js +3 -0
  7. package/lib/index.js.map +1 -1
  8. package/lib/orm/src/builders.d.ts +636 -0
  9. package/lib/orm/src/builders.js +1509 -0
  10. package/lib/orm/src/builders.js.map +1 -0
  11. package/lib/orm/src/converters.d.ts +14 -0
  12. package/lib/orm/src/converters.js +57 -0
  13. package/lib/orm/src/converters.js.map +1 -0
  14. package/lib/orm/src/decorators.d.ts +152 -0
  15. package/lib/orm/src/decorators.js +454 -0
  16. package/lib/orm/src/decorators.js.map +1 -0
  17. package/lib/orm/src/dehydrators.d.ts +7 -0
  18. package/lib/orm/src/dehydrators.js +41 -0
  19. package/lib/orm/src/dehydrators.js.map +1 -0
  20. package/lib/orm/src/driver.d.ts +80 -0
  21. package/lib/orm/src/driver.js +104 -0
  22. package/lib/orm/src/driver.js.map +1 -0
  23. package/lib/orm/src/enums.d.ts +115 -0
  24. package/lib/orm/src/enums.js +125 -0
  25. package/lib/orm/src/enums.js.map +1 -0
  26. package/lib/orm/src/exceptions.d.ts +6 -0
  27. package/lib/orm/src/exceptions.js +11 -0
  28. package/lib/orm/src/exceptions.js.map +1 -0
  29. package/lib/orm/src/hydrators.d.ts +19 -0
  30. package/lib/orm/src/hydrators.js +110 -0
  31. package/lib/orm/src/hydrators.js.map +1 -0
  32. package/lib/orm/src/interfaces.d.ts +794 -0
  33. package/lib/orm/src/interfaces.js +293 -0
  34. package/lib/orm/src/interfaces.js.map +1 -0
  35. package/lib/orm/src/model.d.ts +310 -0
  36. package/lib/orm/src/model.js +779 -0
  37. package/lib/orm/src/model.js.map +1 -0
  38. package/lib/orm/src/orm.d.ts +61 -0
  39. package/lib/orm/src/orm.js +341 -0
  40. package/lib/orm/src/orm.js.map +1 -0
  41. package/lib/orm/src/relations.d.ts +150 -0
  42. package/lib/orm/src/relations.js +681 -0
  43. package/lib/orm/src/relations.js.map +1 -0
  44. package/lib/orm/src/statements.d.ts +140 -0
  45. package/lib/orm/src/statements.js +314 -0
  46. package/lib/orm/src/statements.js.map +1 -0
  47. package/lib/orm/src/types.d.ts +11 -0
  48. package/lib/orm/src/types.js +3 -0
  49. package/lib/orm/src/types.js.map +1 -0
  50. package/lib/orm-sql/src/builders.d.ts +11 -0
  51. package/lib/orm-sql/src/builders.js +42 -0
  52. package/lib/orm-sql/src/builders.js.map +1 -0
  53. package/lib/orm-sql/src/compilers.d.ts +226 -0
  54. package/lib/orm-sql/src/compilers.js +1016 -0
  55. package/lib/orm-sql/src/compilers.js.map +1 -0
  56. package/lib/orm-sql/src/converters.d.ts +10 -0
  57. package/lib/orm-sql/src/converters.js +39 -0
  58. package/lib/orm-sql/src/converters.js.map +1 -0
  59. package/lib/orm-sql/src/index.d.ts +6 -0
  60. package/lib/orm-sql/src/index.js +70 -0
  61. package/lib/orm-sql/src/index.js.map +1 -0
  62. package/lib/orm-sql/src/statements.d.ts +46 -0
  63. package/lib/orm-sql/src/statements.js +268 -0
  64. package/lib/orm-sql/src/statements.js.map +1 -0
  65. package/lib/statements.js +22 -4
  66. package/lib/statements.js.map +1 -1
  67. package/package.json +5 -5
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.OrmDriver = void 0;
13
+ const log_1 = require("@spinajs/log");
14
+ const di_1 = require("@spinajs/di");
15
+ const builders_1 = require("./builders");
16
+ const hydrators_1 = require("./hydrators");
17
+ const dehydrators_1 = require("./dehydrators");
18
+ class OrmDriver extends di_1.SyncService {
19
+ constructor(options) {
20
+ super();
21
+ /**
22
+ * Connection options
23
+ */
24
+ this.Options = {
25
+ AliasSeparator: '$',
26
+ Driver: 'unknown',
27
+ Name: 'orm-driver',
28
+ DefaultConnection: false,
29
+ };
30
+ this.Options = Object.assign(this.Options, options);
31
+ }
32
+ resolve() {
33
+ this.Log = di_1.DI.resolve(log_1.Log, [`orm-driver-${this.Options.Name}`]);
34
+ this.Log.addVariable('orm-name', this.Options.Name);
35
+ this.Log.addVariable('orm-host', this.Options.Host);
36
+ this.Log.addVariable('orm-database', this.Options.Database);
37
+ this.Container = this.RootContainer.child();
38
+ /**
39
+ * Hydrators are registered globally
40
+ */
41
+ di_1.DI.register(hydrators_1.DbPropertyHydrator).as(hydrators_1.ModelHydrator);
42
+ di_1.DI.register(hydrators_1.NonDbPropertyHydrator).as(hydrators_1.ModelHydrator);
43
+ di_1.DI.register(hydrators_1.OneToOneRelationHydrator).as(hydrators_1.ModelHydrator);
44
+ di_1.DI.register(hydrators_1.OneToManyRelationHydrator).as(hydrators_1.ModelHydrator);
45
+ di_1.DI.register(hydrators_1.JunctionModelPropertyHydrator).as(hydrators_1.ModelHydrator);
46
+ di_1.DI.register(dehydrators_1.StandardModelDehydrator).as(dehydrators_1.ModelDehydrator);
47
+ }
48
+ /**
49
+ * Creates select query builder associated with this connection.
50
+ * This can be used to execute raw queries to db without orm model layer
51
+ */
52
+ select() {
53
+ return this.Container.resolve(builders_1.SelectQueryBuilder, [this]);
54
+ }
55
+ /**
56
+ * Creates delete query builder associated with this connection.
57
+ * This can be used to execute raw queries to db without orm model layer
58
+ */
59
+ del() {
60
+ return this.Container.resolve(builders_1.DeleteQueryBuilder, [this]);
61
+ }
62
+ /**
63
+ * Creates insert query builder associated with this connection.
64
+ * This can be used to execute raw queries to db without orm model layer
65
+ */
66
+ insert() {
67
+ return this.Container.resolve(builders_1.InsertQueryBuilder, [this]);
68
+ }
69
+ /**
70
+ * Truncates given table
71
+ */
72
+ truncate(table) {
73
+ const b = this.Container.resolve(builders_1.TruncateTableQueryBuilder, [this]);
74
+ b.setTable(table);
75
+ return b;
76
+ }
77
+ /**
78
+ * Creates update query builder associated with this connection.
79
+ * This can be used to execute raw queries to db without orm model layer
80
+ */
81
+ update() {
82
+ return this.Container.resolve(builders_1.UpdateQueryBuilder, [this]);
83
+ }
84
+ /**
85
+ * Creates schema query builder associated with this connection.
86
+ * This can be use to modify database structure
87
+ */
88
+ schema() {
89
+ return this.Container.resolve(builders_1.SchemaQueryBuilder, [this]);
90
+ }
91
+ /**
92
+ * Creates index query builder associated with this connection.
93
+ * This can be use to create table indexes
94
+ */
95
+ index() {
96
+ return this.Container.resolve(builders_1.IndexQueryBuilder, [this]);
97
+ }
98
+ }
99
+ __decorate([
100
+ (0, di_1.Autoinject)(),
101
+ __metadata("design:type", di_1.Container)
102
+ ], OrmDriver.prototype, "RootContainer", void 0);
103
+ exports.OrmDriver = OrmDriver;
104
+ //# sourceMappingURL=driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../../orm/src/driver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Allowed query methods and types.
3
+ */
4
+ export declare enum QueryMethod {
5
+ /**
6
+ * Select method eg. SELECT * FROM users
7
+ */
8
+ SELECT = 0,
9
+ /**
10
+ * Insert method eg. INSERT INTO
11
+ */
12
+ INSERT = 1,
13
+ /**
14
+ * UPDATE method eg. UPDATE ...
15
+ */
16
+ UPDATE = 2,
17
+ /**
18
+ * DELETE method eg. DELETE FROM users
19
+ */
20
+ DELETE = 3,
21
+ /**
22
+ * WHERE method used to specify conditions in other methods eg. WHERE foo = 1 AND bar = 2
23
+ */
24
+ WHERE = 4,
25
+ /**
26
+ * SCHEMA builder query eg. CREATE TABLE ...
27
+ */
28
+ SCHEMA = 5
29
+ }
30
+ /**
31
+ * Logical operators used in queries
32
+ */
33
+ export declare enum WhereBoolean {
34
+ AND = "and",
35
+ OR = "or"
36
+ }
37
+ /**
38
+ * Allowed operators in queries
39
+ */
40
+ export declare enum SqlOperator {
41
+ LT = "<",
42
+ LTE = "<=",
43
+ GT = ">",
44
+ GTE = ">=",
45
+ NOT = "!=",
46
+ NOT_2 = "<>",
47
+ EQ = "=",
48
+ EQ_NULL = "<=>",
49
+ IN = "in",
50
+ NOT_IN = "not in",
51
+ NULL = "is null",
52
+ NOT_NULL = "is not null",
53
+ BETWEEN = "between",
54
+ NOT_BETWEEN = "not between",
55
+ LIKE = "like",
56
+ RLIKE = "rlike"
57
+ }
58
+ export declare type Op = '<' | '>' | '!=' | '<=>' | '>=' | '<=' | '<>' | 'like' | '=' | 'rlike';
59
+ /**
60
+ * Allowed join methods in queries
61
+ */
62
+ export declare enum JoinMethod {
63
+ INNER = "INNER JOIN",
64
+ LEFT = "LEFT JOIN",
65
+ LEFT_OUTER = "LEFT OUTER JOIN",
66
+ RIGHT = "RIGHT JOIN",
67
+ RIGHT_OUTER = "RIGHT OUTER JOIN",
68
+ FULL_OUTER = "FULL OUTER JOIN",
69
+ CROSS = "CROSS JOIN"
70
+ }
71
+ /**
72
+ * Default column methods. For other methods user raw queries.
73
+ */
74
+ export declare enum ColumnMethods {
75
+ MIN = "MIN",
76
+ MAX = "MAX",
77
+ SUM = "SUM",
78
+ AVG = "AVG",
79
+ COUNT = "COUNT"
80
+ }
81
+ /**
82
+ * Allowed column types
83
+ */
84
+ export declare enum ColumnType {
85
+ SMALL_INTEGER = "smallint",
86
+ TINY_INTEGER = "tinyint",
87
+ MEDIUM_INTEGER = "mediumint",
88
+ INTEGER = "int",
89
+ BIG_INTEGER = "bigint",
90
+ TINY_TEXT = "tinytext",
91
+ MEDIUM_TEXT = "mediumtext",
92
+ LONG_TEXT = "longtext",
93
+ TEXT = "text",
94
+ STRING = "string",
95
+ FLOAT = "float",
96
+ DECIMAL = "decimal",
97
+ BOOLEAN = "boolean",
98
+ BIT = "bit",
99
+ DOUBLE = "double",
100
+ DATE = "date",
101
+ TIME = "time",
102
+ DATE_TIME = "dateTime",
103
+ TIMESTAMP = "timestamp",
104
+ ENUM = "enum",
105
+ JSON = "json",
106
+ SET = "set",
107
+ BINARY = "binary",
108
+ TINY_BLOB = "tinyblob",
109
+ MEDIUM_BLOB = "mediumblob",
110
+ LONG_BLOB = "longblob"
111
+ }
112
+ export declare enum SordOrder {
113
+ ASC = "ASC",
114
+ DESC = "DESC"
115
+ }
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SordOrder = exports.ColumnType = exports.ColumnMethods = exports.JoinMethod = exports.SqlOperator = exports.WhereBoolean = exports.QueryMethod = void 0;
4
+ /**
5
+ * Allowed query methods and types.
6
+ */
7
+ var QueryMethod;
8
+ (function (QueryMethod) {
9
+ /**
10
+ * Select method eg. SELECT * FROM users
11
+ */
12
+ QueryMethod[QueryMethod["SELECT"] = 0] = "SELECT";
13
+ /**
14
+ * Insert method eg. INSERT INTO
15
+ */
16
+ QueryMethod[QueryMethod["INSERT"] = 1] = "INSERT";
17
+ /**
18
+ * UPDATE method eg. UPDATE ...
19
+ */
20
+ QueryMethod[QueryMethod["UPDATE"] = 2] = "UPDATE";
21
+ /**
22
+ * DELETE method eg. DELETE FROM users
23
+ */
24
+ QueryMethod[QueryMethod["DELETE"] = 3] = "DELETE";
25
+ /**
26
+ * WHERE method used to specify conditions in other methods eg. WHERE foo = 1 AND bar = 2
27
+ */
28
+ QueryMethod[QueryMethod["WHERE"] = 4] = "WHERE";
29
+ /**
30
+ * SCHEMA builder query eg. CREATE TABLE ...
31
+ */
32
+ QueryMethod[QueryMethod["SCHEMA"] = 5] = "SCHEMA";
33
+ })(QueryMethod = exports.QueryMethod || (exports.QueryMethod = {}));
34
+ /**
35
+ * Logical operators used in queries
36
+ */
37
+ var WhereBoolean;
38
+ (function (WhereBoolean) {
39
+ WhereBoolean["AND"] = "and";
40
+ WhereBoolean["OR"] = "or";
41
+ })(WhereBoolean = exports.WhereBoolean || (exports.WhereBoolean = {}));
42
+ /**
43
+ * Allowed operators in queries
44
+ */
45
+ var SqlOperator;
46
+ (function (SqlOperator) {
47
+ SqlOperator["LT"] = "<";
48
+ SqlOperator["LTE"] = "<=";
49
+ SqlOperator["GT"] = ">";
50
+ SqlOperator["GTE"] = ">=";
51
+ SqlOperator["NOT"] = "!=";
52
+ SqlOperator["NOT_2"] = "<>";
53
+ SqlOperator["EQ"] = "=";
54
+ SqlOperator["EQ_NULL"] = "<=>";
55
+ SqlOperator["IN"] = "in";
56
+ SqlOperator["NOT_IN"] = "not in";
57
+ SqlOperator["NULL"] = "is null";
58
+ SqlOperator["NOT_NULL"] = "is not null";
59
+ SqlOperator["BETWEEN"] = "between";
60
+ SqlOperator["NOT_BETWEEN"] = "not between";
61
+ SqlOperator["LIKE"] = "like";
62
+ SqlOperator["RLIKE"] = "rlike";
63
+ })(SqlOperator = exports.SqlOperator || (exports.SqlOperator = {}));
64
+ /**
65
+ * Allowed join methods in queries
66
+ */
67
+ var JoinMethod;
68
+ (function (JoinMethod) {
69
+ JoinMethod["INNER"] = "INNER JOIN";
70
+ JoinMethod["LEFT"] = "LEFT JOIN";
71
+ JoinMethod["LEFT_OUTER"] = "LEFT OUTER JOIN";
72
+ JoinMethod["RIGHT"] = "RIGHT JOIN";
73
+ JoinMethod["RIGHT_OUTER"] = "RIGHT OUTER JOIN";
74
+ JoinMethod["FULL_OUTER"] = "FULL OUTER JOIN";
75
+ JoinMethod["CROSS"] = "CROSS JOIN";
76
+ })(JoinMethod = exports.JoinMethod || (exports.JoinMethod = {}));
77
+ /**
78
+ * Default column methods. For other methods user raw queries.
79
+ */
80
+ var ColumnMethods;
81
+ (function (ColumnMethods) {
82
+ ColumnMethods["MIN"] = "MIN";
83
+ ColumnMethods["MAX"] = "MAX";
84
+ ColumnMethods["SUM"] = "SUM";
85
+ ColumnMethods["AVG"] = "AVG";
86
+ ColumnMethods["COUNT"] = "COUNT";
87
+ })(ColumnMethods = exports.ColumnMethods || (exports.ColumnMethods = {}));
88
+ /**
89
+ * Allowed column types
90
+ */
91
+ var ColumnType;
92
+ (function (ColumnType) {
93
+ ColumnType["SMALL_INTEGER"] = "smallint";
94
+ ColumnType["TINY_INTEGER"] = "tinyint";
95
+ ColumnType["MEDIUM_INTEGER"] = "mediumint";
96
+ ColumnType["INTEGER"] = "int";
97
+ ColumnType["BIG_INTEGER"] = "bigint";
98
+ ColumnType["TINY_TEXT"] = "tinytext";
99
+ ColumnType["MEDIUM_TEXT"] = "mediumtext";
100
+ ColumnType["LONG_TEXT"] = "longtext";
101
+ ColumnType["TEXT"] = "text";
102
+ ColumnType["STRING"] = "string";
103
+ ColumnType["FLOAT"] = "float";
104
+ ColumnType["DECIMAL"] = "decimal";
105
+ ColumnType["BOOLEAN"] = "boolean";
106
+ ColumnType["BIT"] = "bit";
107
+ ColumnType["DOUBLE"] = "double";
108
+ ColumnType["DATE"] = "date";
109
+ ColumnType["TIME"] = "time";
110
+ ColumnType["DATE_TIME"] = "dateTime";
111
+ ColumnType["TIMESTAMP"] = "timestamp";
112
+ ColumnType["ENUM"] = "enum";
113
+ ColumnType["JSON"] = "json";
114
+ ColumnType["SET"] = "set";
115
+ ColumnType["BINARY"] = "binary";
116
+ ColumnType["TINY_BLOB"] = "tinyblob";
117
+ ColumnType["MEDIUM_BLOB"] = "mediumblob";
118
+ ColumnType["LONG_BLOB"] = "longblob";
119
+ })(ColumnType = exports.ColumnType || (exports.ColumnType = {}));
120
+ var SordOrder;
121
+ (function (SordOrder) {
122
+ SordOrder["ASC"] = "ASC";
123
+ SordOrder["DESC"] = "DESC";
124
+ })(SordOrder = exports.SordOrder || (exports.SordOrder = {}));
125
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../orm/src/enums.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,WA8BX;AA9BD,WAAY,WAAW;IACrB;;OAEG;IACH,iDAAM,CAAA;IAEN;;OAEG;IACH,iDAAM,CAAA;IAEN;;OAEG;IACH,iDAAM,CAAA;IAEN;;OAEG;IACH,iDAAM,CAAA;IAEN;;OAEG;IACH,+CAAK,CAAA;IAEL;;OAEG;IACH,iDAAM,CAAA;AACR,CAAC,EA9BW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QA8BtB;AAED;;GAEG;AACH,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,2BAAW,CAAA;IACX,yBAAS,CAAA;AACX,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB;AAED;;GAEG;AACH,IAAY,WAiBX;AAjBD,WAAY,WAAW;IACrB,uBAAQ,CAAA;IACR,yBAAU,CAAA;IACV,uBAAQ,CAAA;IACR,yBAAU,CAAA;IACV,yBAAU,CAAA;IACV,2BAAY,CAAA;IACZ,uBAAQ,CAAA;IACR,8BAAe,CAAA;IACf,wBAAS,CAAA;IACT,gCAAiB,CAAA;IACjB,+BAAgB,CAAA;IAChB,uCAAwB,CAAA;IACxB,kCAAmB,CAAA;IACnB,0CAA2B,CAAA;IAC3B,4BAAa,CAAA;IACb,8BAAe,CAAA;AACjB,CAAC,EAjBW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAiBtB;AAID;;GAEG;AACH,IAAY,UAQX;AARD,WAAY,UAAU;IACpB,kCAAoB,CAAA;IACpB,gCAAkB,CAAA;IAClB,4CAA8B,CAAA;IAC9B,kCAAoB,CAAA;IACpB,8CAAgC,CAAA;IAChC,4CAA8B,CAAA;IAC9B,kCAAoB,CAAA;AACtB,CAAC,EARW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAQrB;AAED;;GAEG;AACH,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,4BAAW,CAAA;IACX,4BAAW,CAAA;IACX,4BAAW,CAAA;IACX,4BAAW,CAAA;IACX,gCAAe,CAAA;AACjB,CAAC,EANW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAMxB;AAED;;GAEG;AACH,IAAY,UA2BX;AA3BD,WAAY,UAAU;IACpB,wCAA0B,CAAA;IAC1B,sCAAwB,CAAA;IACxB,0CAA4B,CAAA;IAC5B,6BAAe,CAAA;IACf,oCAAsB,CAAA;IACtB,oCAAsB,CAAA;IACtB,wCAA0B,CAAA;IAC1B,oCAAsB,CAAA;IACtB,2BAAa,CAAA;IACb,+BAAiB,CAAA;IACjB,6BAAe,CAAA;IACf,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,yBAAW,CAAA;IACX,+BAAiB,CAAA;IACjB,2BAAa,CAAA;IACb,2BAAa,CAAA;IACb,oCAAsB,CAAA;IACtB,qCAAuB,CAAA;IACvB,2BAAa,CAAA;IACb,2BAAa,CAAA;IACb,yBAAW,CAAA;IACX,+BAAiB,CAAA;IACjB,oCAAsB,CAAA;IACtB,wCAA0B,CAAA;IAC1B,oCAAsB,CAAA;AACxB,CAAC,EA3BW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QA2BrB;AAED,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,0BAAa,CAAA;AACf,CAAC,EAHW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAGpB"}
@@ -0,0 +1,6 @@
1
+ import { Exception } from '@spinajs/exceptions';
2
+ /**
3
+ * Exception thrown when functionality is not supported
4
+ */
5
+ export declare class OrmException extends Exception {
6
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrmException = void 0;
4
+ const exceptions_1 = require("@spinajs/exceptions");
5
+ /**
6
+ * Exception thrown when functionality is not supported
7
+ */
8
+ class OrmException extends exceptions_1.Exception {
9
+ }
10
+ exports.OrmException = OrmException;
11
+ //# sourceMappingURL=exceptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../../../orm/src/exceptions.ts"],"names":[],"mappings":";;;AAAA,oDAAgD;AAEhD;;GAEG;AACH,MAAa,YAAa,SAAQ,sBAAS;CAAG;AAA9C,oCAA8C"}
@@ -0,0 +1,19 @@
1
+ import { ModelBase } from './model';
2
+ export declare abstract class ModelHydrator {
3
+ abstract hydrate(target: any, values: any): void;
4
+ }
5
+ export declare class OneToManyRelationHydrator extends ModelHydrator {
6
+ hydrate(target: ModelBase, values: any): void;
7
+ }
8
+ export declare class OneToOneRelationHydrator extends ModelHydrator {
9
+ hydrate(target: ModelBase, values: any): void;
10
+ }
11
+ export declare class DbPropertyHydrator extends ModelHydrator {
12
+ hydrate(target: ModelBase, values: any): void;
13
+ }
14
+ export declare class NonDbPropertyHydrator extends ModelHydrator {
15
+ hydrate(target: ModelBase, values: any): void;
16
+ }
17
+ export declare class JunctionModelPropertyHydrator extends ModelHydrator {
18
+ hydrate(target: ModelBase, values: any): void;
19
+ }
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JunctionModelPropertyHydrator = exports.NonDbPropertyHydrator = exports.DbPropertyHydrator = exports.OneToOneRelationHydrator = exports.OneToManyRelationHydrator = exports.ModelHydrator = void 0;
4
+ /* eslint-disable prettier/prettier */
5
+ const interfaces_1 = require("./interfaces");
6
+ const di_1 = require("@spinajs/di");
7
+ const relations_1 = require("./relations");
8
+ class ModelHydrator {
9
+ }
10
+ exports.ModelHydrator = ModelHydrator;
11
+ class OneToManyRelationHydrator extends ModelHydrator {
12
+ hydrate(target, values) {
13
+ const descriptor = target.ModelDescriptor;
14
+ if (!descriptor) {
15
+ throw new Error(`cannot hydrate model ${target.constructor.name}, no model descriptor found`);
16
+ }
17
+ for (const [key, val] of descriptor.Relations) {
18
+ if (val.Type !== interfaces_1.RelationType.Many) {
19
+ continue;
20
+ }
21
+ if (values[key] != null) {
22
+ const entity = target;
23
+ const mapRel = values[key].map((x) => {
24
+ const tEntity = !(0, di_1.isConstructor)(val.TargetModel) ? new (val.TargetModel())() : new val.TargetModel();
25
+ tEntity['__relationKey__'] = key;
26
+ tEntity.hydrate(x);
27
+ return tEntity;
28
+ });
29
+ const rel = new relations_1.OneToManyRelationList(target, val.TargetModel, val, mapRel);
30
+ entity[key] = rel;
31
+ delete target[val.ForeignKey];
32
+ }
33
+ }
34
+ }
35
+ }
36
+ exports.OneToManyRelationHydrator = OneToManyRelationHydrator;
37
+ class OneToOneRelationHydrator extends ModelHydrator {
38
+ hydrate(target, values) {
39
+ const descriptor = target.ModelDescriptor;
40
+ if (!descriptor) {
41
+ throw new Error(`cannot hydrate model ${target.constructor.name}, no model descriptor found`);
42
+ }
43
+ for (const [key, val] of descriptor.Relations) {
44
+ if (val.Type !== interfaces_1.RelationType.One) {
45
+ continue;
46
+ }
47
+ if (values[key] != null) {
48
+ const entity = target;
49
+ const tEntity = !(0, di_1.isConstructor)(val.TargetModel) ? new (val.TargetModel())() : new val.TargetModel();
50
+ tEntity.hydrate(values[key]);
51
+ tEntity['__relationKey__'] = key;
52
+ const rel = new relations_1.SingleRelation(target, val.TargetModel, val, tEntity);
53
+ entity[key] = rel;
54
+ delete target[val.ForeignKey];
55
+ }
56
+ }
57
+ }
58
+ }
59
+ exports.OneToOneRelationHydrator = OneToOneRelationHydrator;
60
+ class DbPropertyHydrator extends ModelHydrator {
61
+ hydrate(target, values) {
62
+ const descriptor = target.ModelDescriptor;
63
+ if (!descriptor) {
64
+ throw new Error(`cannot hydrate model ${target.constructor.name}, no model descriptor found`);
65
+ }
66
+ // filter out model joined properties
67
+ // we handle it in later
68
+ const keys = Object.keys(values).filter((k) => { var _a; return (_a = descriptor.Columns) === null || _a === void 0 ? void 0 : _a.find((c) => c.Name === k); });
69
+ keys.forEach((k) => {
70
+ var _a;
71
+ // skip if column is primary key & is null
72
+ // we dont want to override pkey of target model
73
+ if (k === descriptor.PrimaryKey && !values[k]) {
74
+ return;
75
+ }
76
+ const column = (_a = descriptor.Columns) === null || _a === void 0 ? void 0 : _a.find((c) => c.Name === k);
77
+ target[k] = column.Converter ? column.Converter.fromDB(values[k], values, descriptor.Converters.get(column.Name).Options) : values[k];
78
+ });
79
+ }
80
+ }
81
+ exports.DbPropertyHydrator = DbPropertyHydrator;
82
+ class NonDbPropertyHydrator extends ModelHydrator {
83
+ hydrate(target, values) {
84
+ const descriptor = target.ModelDescriptor;
85
+ if (!descriptor) {
86
+ throw new Error(`cannot hydrate model ${target.constructor.name}, no model descriptor found`);
87
+ }
88
+ // get only properties that are not in DB
89
+ const keys = Object.keys(values).filter((k) => { var _a; return ((_a = descriptor.Columns) === null || _a === void 0 ? void 0 : _a.find((c) => c.Name === k)) === undefined; });
90
+ keys.forEach((k) => {
91
+ target[k] = values[k];
92
+ });
93
+ }
94
+ }
95
+ exports.NonDbPropertyHydrator = NonDbPropertyHydrator;
96
+ class JunctionModelPropertyHydrator extends ModelHydrator {
97
+ hydrate(target, values) {
98
+ const descriptor = target.ModelDescriptor;
99
+ if (!descriptor) {
100
+ throw new Error(`cannot hydrate model ${target.constructor.name}, no model descriptor found`);
101
+ }
102
+ for (const jt of descriptor.JunctionModelProperties) {
103
+ const entity = new jt.Model();
104
+ entity.hydrate(values.JunctionModel);
105
+ target[jt.Name] = entity;
106
+ }
107
+ }
108
+ }
109
+ exports.JunctionModelPropertyHydrator = JunctionModelPropertyHydrator;
110
+ //# sourceMappingURL=hydrators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydrators.js","sourceRoot":"","sources":["../../../../orm/src/hydrators.ts"],"names":[],"mappings":"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"}