@spinajs/orm 1.2.26 → 1.2.33

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 (62) hide show
  1. package/lib/builders.js +7 -2
  2. package/lib/builders.js.map +1 -1
  3. package/lib/decorators.js +9 -9
  4. package/lib/decorators.js.map +1 -1
  5. package/lib/driver.d.ts +2 -0
  6. package/lib/driver.js +5 -0
  7. package/lib/driver.js.map +1 -1
  8. package/lib/log-common/src/index.d.ts +180 -0
  9. package/lib/log-common/src/index.js +49 -0
  10. package/lib/log-common/src/index.js.map +1 -0
  11. package/lib/model.d.ts +3 -3
  12. package/lib/orm/src/builders.d.ts +429 -0
  13. package/lib/orm/src/builders.js +1082 -0
  14. package/lib/orm/src/builders.js.map +1 -0
  15. package/lib/orm/src/cli.d.ts +1 -0
  16. package/lib/orm/src/cli.js +2 -0
  17. package/lib/orm/src/cli.js.map +1 -0
  18. package/lib/orm/src/converters.d.ts +9 -0
  19. package/lib/orm/src/converters.js +22 -0
  20. package/lib/orm/src/converters.js.map +1 -0
  21. package/lib/orm/src/decorators.d.ts +122 -0
  22. package/lib/orm/src/decorators.js +380 -0
  23. package/lib/orm/src/decorators.js.map +1 -0
  24. package/lib/orm/src/driver.d.ts +77 -0
  25. package/lib/orm/src/driver.js +84 -0
  26. package/lib/orm/src/driver.js.map +1 -0
  27. package/lib/orm/src/enums.d.ts +111 -0
  28. package/lib/orm/src/enums.js +122 -0
  29. package/lib/orm/src/enums.js.map +1 -0
  30. package/lib/orm/src/exceptions.d.ts +6 -0
  31. package/lib/orm/src/exceptions.js +11 -0
  32. package/lib/orm/src/exceptions.js.map +1 -0
  33. package/lib/orm/src/hydrators.d.ts +16 -0
  34. package/lib/orm/src/hydrators.js +70 -0
  35. package/lib/orm/src/hydrators.js.map +1 -0
  36. package/lib/orm/src/index.d.ts +12 -0
  37. package/lib/orm/src/index.js +25 -0
  38. package/lib/orm/src/index.js.map +1 -0
  39. package/lib/orm/src/interfaces.d.ts +615 -0
  40. package/lib/orm/src/interfaces.js +186 -0
  41. package/lib/orm/src/interfaces.js.map +1 -0
  42. package/lib/orm/src/model.d.ts +135 -0
  43. package/lib/orm/src/model.js +449 -0
  44. package/lib/orm/src/model.js.map +1 -0
  45. package/lib/orm/src/orm.d.ts +59 -0
  46. package/lib/orm/src/orm.js +278 -0
  47. package/lib/orm/src/orm.js.map +1 -0
  48. package/lib/orm/src/relations.d.ts +96 -0
  49. package/lib/orm/src/relations.js +503 -0
  50. package/lib/orm/src/relations.js.map +1 -0
  51. package/lib/orm/src/statements.d.ts +132 -0
  52. package/lib/orm/src/statements.js +257 -0
  53. package/lib/orm/src/statements.js.map +1 -0
  54. package/lib/orm/src/types.d.ts +2 -0
  55. package/lib/orm/src/types.js +3 -0
  56. package/lib/orm/src/types.js.map +1 -0
  57. package/lib/orm/src/wrappers.d.ts +5 -0
  58. package/lib/orm/src/wrappers.js +13 -0
  59. package/lib/orm/src/wrappers.js.map +1 -0
  60. package/lib/orm.js +10 -7
  61. package/lib/orm.js.map +1 -1
  62. package/package.json +7 -7
@@ -0,0 +1,77 @@
1
+ import { Log } from '@spinajs/log';
2
+ import { QueryContext } from './interfaces';
3
+ import { SyncModule, IContainer, Container } from '@spinajs/di';
4
+ import { IDriverOptions, IColumnDescriptor } from '.';
5
+ import { UpdateQueryBuilder, SelectQueryBuilder, IndexQueryBuilder, DeleteQueryBuilder, InsertQueryBuilder, SchemaQueryBuilder, QueryBuilder } from './builders';
6
+ export declare type TransactionCallback = (driver: OrmDriver) => Promise<any>;
7
+ export declare abstract class OrmDriver extends SyncModule {
8
+ /**
9
+ * Connection options
10
+ */
11
+ Options: IDriverOptions;
12
+ protected RootContainer: Container;
13
+ protected Log: Log;
14
+ Container: IContainer;
15
+ constructor(options: IDriverOptions);
16
+ /**
17
+ * Executes query on database
18
+ *
19
+ * @param stmt - query string or query objects that is executed in database
20
+ * @param params - binding parameters
21
+ * @param context - query context to optimize queries sent to DB
22
+ */
23
+ abstract execute(stmt: string | object, params: any[], context: QueryContext): Promise<any[] | any>;
24
+ /**
25
+ * Checks if database is avaible
26
+ * @returns false if cannot reach database
27
+ */
28
+ abstract ping(): Promise<boolean>;
29
+ /**
30
+ * Connects to database
31
+ * @throws OrmException if can't connec to to database
32
+ */
33
+ abstract connect(): Promise<OrmDriver>;
34
+ /**
35
+ * Disconnects from database
36
+ */
37
+ abstract disconnect(): Promise<OrmDriver>;
38
+ abstract tableInfo(name: string, schema?: string): Promise<IColumnDescriptor[]>;
39
+ resolve(): void;
40
+ /**
41
+ * Creates select query builder associated with this connection.
42
+ * This can be used to execute raw queries to db without orm model layer
43
+ */
44
+ select(): SelectQueryBuilder;
45
+ /**
46
+ * Creates delete query builder associated with this connection.
47
+ * This can be used to execute raw queries to db without orm model layer
48
+ */
49
+ del(): DeleteQueryBuilder;
50
+ /**
51
+ * Creates insert query builder associated with this connection.
52
+ * This can be used to execute raw queries to db without orm model layer
53
+ */
54
+ insert(): InsertQueryBuilder;
55
+ /**
56
+ * Creates update query builder associated with this connection.
57
+ * This can be used to execute raw queries to db without orm model layer
58
+ */
59
+ update(): UpdateQueryBuilder;
60
+ /**
61
+ * Creates schema query builder associated with this connection.
62
+ * This can be use to modify database structure
63
+ */
64
+ schema(): SchemaQueryBuilder;
65
+ /**
66
+ * Creates index query builder associated with this connection.
67
+ * This can be use to create table indexes
68
+ */
69
+ index(): IndexQueryBuilder;
70
+ /**
71
+ * Executes all queries in transaction
72
+ *
73
+ * @param queryOrCallback - one or more queries to execute in transaction scope. If parameter is function
74
+ * its executed in transaction scope, thus all db operation in callback function are in transaction
75
+ */
76
+ abstract transaction(queryOrCallback?: QueryBuilder[] | TransactionCallback): Promise<void>;
77
+ }
@@ -0,0 +1,84 @@
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
+ class OrmDriver extends di_1.SyncModule {
18
+ constructor(options) {
19
+ super();
20
+ this.Options = options;
21
+ }
22
+ resolve() {
23
+ this.Log = di_1.DI.resolve(log_1.Log, [`orm-driver-${this.Options.Name}`]);
24
+ this.Log.addVariable('orm-name', this.Options.Name);
25
+ this.Log.addVariable('orm-host', this.Options.Host);
26
+ this.Log.addVariable('orm-database', this.Options.Database);
27
+ this.Container = this.RootContainer.child();
28
+ /**
29
+ * Hydrators are registered globally
30
+ */
31
+ di_1.DI.register(hydrators_1.DbPropertyHydrator).as(hydrators_1.ModelHydrator);
32
+ di_1.DI.register(hydrators_1.NonDbPropertyHydrator).as(hydrators_1.ModelHydrator);
33
+ di_1.DI.register(hydrators_1.OneToOneRelationHydrator).as(hydrators_1.ModelHydrator);
34
+ di_1.DI.register(hydrators_1.JunctionModelPropertyHydrator).as(hydrators_1.ModelHydrator);
35
+ }
36
+ /**
37
+ * Creates select query builder associated with this connection.
38
+ * This can be used to execute raw queries to db without orm model layer
39
+ */
40
+ select() {
41
+ return this.Container.resolve(builders_1.SelectQueryBuilder, [this]);
42
+ }
43
+ /**
44
+ * Creates delete query builder associated with this connection.
45
+ * This can be used to execute raw queries to db without orm model layer
46
+ */
47
+ del() {
48
+ return this.Container.resolve(builders_1.DeleteQueryBuilder, [this]);
49
+ }
50
+ /**
51
+ * Creates insert query builder associated with this connection.
52
+ * This can be used to execute raw queries to db without orm model layer
53
+ */
54
+ insert() {
55
+ return this.Container.resolve(builders_1.InsertQueryBuilder, [this]);
56
+ }
57
+ /**
58
+ * Creates update query builder associated with this connection.
59
+ * This can be used to execute raw queries to db without orm model layer
60
+ */
61
+ update() {
62
+ return this.Container.resolve(builders_1.UpdateQueryBuilder, [this]);
63
+ }
64
+ /**
65
+ * Creates schema query builder associated with this connection.
66
+ * This can be use to modify database structure
67
+ */
68
+ schema() {
69
+ return this.Container.resolve(builders_1.SchemaQueryBuilder, [this]);
70
+ }
71
+ /**
72
+ * Creates index query builder associated with this connection.
73
+ * This can be use to create table indexes
74
+ */
75
+ index() {
76
+ return this.Container.resolve(builders_1.IndexQueryBuilder, [this]);
77
+ }
78
+ }
79
+ __decorate([
80
+ (0, di_1.Autoinject)(),
81
+ __metadata("design:type", di_1.Container)
82
+ ], OrmDriver.prototype, "RootContainer", void 0);
83
+ exports.OrmDriver = OrmDriver;
84
+ //# sourceMappingURL=driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/driver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAA2C;AAI3C,oCAAgF;AAEhF,yCAAiK;AACjK,2CAAgJ;AAIhJ,MAAsB,SAAU,SAAQ,eAAU;IAahD,YAAY,OAAuB;QACjC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IA8BM,OAAO;QACZ,IAAI,CAAC,GAAG,GAAG,OAAE,CAAC,OAAO,CAAC,SAAG,EAAE,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE5D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAE5C;;WAEG;QACH,OAAE,CAAC,QAAQ,CAAC,8BAAkB,CAAC,CAAC,EAAE,CAAC,yBAAa,CAAC,CAAC;QAClD,OAAE,CAAC,QAAQ,CAAC,iCAAqB,CAAC,CAAC,EAAE,CAAC,yBAAa,CAAC,CAAC;QACrD,OAAE,CAAC,QAAQ,CAAC,oCAAwB,CAAC,CAAC,EAAE,CAAC,yBAAa,CAAC,CAAC;QACxD,OAAE,CAAC,QAAQ,CAAC,yCAA6B,CAAC,CAAC,EAAE,CAAC,yBAAa,CAAC,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACI,MAAM;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,6BAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACI,GAAG;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,6BAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACI,MAAM;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,6BAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACI,MAAM;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,6BAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACI,MAAM;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,6BAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACI,KAAK;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,4BAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;CASF;AAhHC;IADC,IAAA,eAAU,GAAE;8BACY,cAAS;gDAAC;AAPrC,8BAuHC"}
@@ -0,0 +1,111 @@
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 WhereOperators {
41
+ LT = "<",
42
+ LTE = "<=",
43
+ GT = ">",
44
+ GTE = ">=",
45
+ NOT = "!=",
46
+ EQ = "=",
47
+ IN = "in",
48
+ NOT_IN = "not in",
49
+ NULL = "is null",
50
+ NOT_NULL = "is not null",
51
+ BETWEEN = "between",
52
+ NOT_BETWEEN = "not between",
53
+ LIKE = "like"
54
+ }
55
+ /**
56
+ * Allowed join methods in queries
57
+ */
58
+ export declare enum JoinMethod {
59
+ INNER = "INNER JOIN",
60
+ LEFT = "LEFT JOIN",
61
+ LEFT_OUTER = "LEFT OUTER JOIN",
62
+ RIGHT = "RIGHT JOIN",
63
+ RIGHT_OUTER = "RIGHT OUTER JOIN",
64
+ FULL_OUTER = "FULL OUTER JOIN",
65
+ CROSS = "CROSS JOIN"
66
+ }
67
+ /**
68
+ * Default column methods. For other methods user raw queries.
69
+ */
70
+ export declare enum ColumnMethods {
71
+ MIN = "MIN",
72
+ MAX = "MAX",
73
+ SUM = "SUM",
74
+ AVG = "AVG",
75
+ COUNT = "COUNT"
76
+ }
77
+ /**
78
+ * Allowed column types
79
+ */
80
+ export declare enum ColumnType {
81
+ SMALL_INTEGER = "smallint",
82
+ TINY_INTEGER = "tinyint",
83
+ MEDIUM_INTEGER = "mediumint",
84
+ INTEGER = "int",
85
+ BIG_INTEGER = "bigint",
86
+ TINY_TEXT = "tinytext",
87
+ MEDIUM_TEXT = "mediumtext",
88
+ LONG_TEXT = "longtext",
89
+ TEXT = "text",
90
+ STRING = "string",
91
+ FLOAT = "float",
92
+ DECIMAL = "decimal",
93
+ BOOLEAN = "boolean",
94
+ BIT = "bit",
95
+ DOUBLE = "double",
96
+ DATE = "date",
97
+ TIME = "time",
98
+ DATE_TIME = "dateTime",
99
+ TIMESTAMP = "timestamp",
100
+ ENUM = "enum",
101
+ JSON = "json",
102
+ SET = "set",
103
+ BINARY = "binary",
104
+ TINY_BLOB = "tinyblob",
105
+ MEDIUM_BLOB = "mediumblob",
106
+ LONG_BLOB = "longblob"
107
+ }
108
+ export declare enum SORT_ORDER {
109
+ ASC = "ASC",
110
+ DESC = "DESC"
111
+ }
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SORT_ORDER = exports.ColumnType = exports.ColumnMethods = exports.JoinMethod = exports.WhereOperators = 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 WhereOperators;
46
+ (function (WhereOperators) {
47
+ WhereOperators["LT"] = "<";
48
+ WhereOperators["LTE"] = "<=";
49
+ WhereOperators["GT"] = ">";
50
+ WhereOperators["GTE"] = ">=";
51
+ WhereOperators["NOT"] = "!=";
52
+ WhereOperators["EQ"] = "=";
53
+ WhereOperators["IN"] = "in";
54
+ WhereOperators["NOT_IN"] = "not in";
55
+ WhereOperators["NULL"] = "is null";
56
+ WhereOperators["NOT_NULL"] = "is not null";
57
+ WhereOperators["BETWEEN"] = "between";
58
+ WhereOperators["NOT_BETWEEN"] = "not between";
59
+ WhereOperators["LIKE"] = "like";
60
+ })(WhereOperators = exports.WhereOperators || (exports.WhereOperators = {}));
61
+ /**
62
+ * Allowed join methods in queries
63
+ */
64
+ var JoinMethod;
65
+ (function (JoinMethod) {
66
+ JoinMethod["INNER"] = "INNER JOIN";
67
+ JoinMethod["LEFT"] = "LEFT JOIN";
68
+ JoinMethod["LEFT_OUTER"] = "LEFT OUTER JOIN";
69
+ JoinMethod["RIGHT"] = "RIGHT JOIN";
70
+ JoinMethod["RIGHT_OUTER"] = "RIGHT OUTER JOIN";
71
+ JoinMethod["FULL_OUTER"] = "FULL OUTER JOIN";
72
+ JoinMethod["CROSS"] = "CROSS JOIN";
73
+ })(JoinMethod = exports.JoinMethod || (exports.JoinMethod = {}));
74
+ /**
75
+ * Default column methods. For other methods user raw queries.
76
+ */
77
+ var ColumnMethods;
78
+ (function (ColumnMethods) {
79
+ ColumnMethods["MIN"] = "MIN";
80
+ ColumnMethods["MAX"] = "MAX";
81
+ ColumnMethods["SUM"] = "SUM";
82
+ ColumnMethods["AVG"] = "AVG";
83
+ ColumnMethods["COUNT"] = "COUNT";
84
+ })(ColumnMethods = exports.ColumnMethods || (exports.ColumnMethods = {}));
85
+ /**
86
+ * Allowed column types
87
+ */
88
+ var ColumnType;
89
+ (function (ColumnType) {
90
+ ColumnType["SMALL_INTEGER"] = "smallint";
91
+ ColumnType["TINY_INTEGER"] = "tinyint";
92
+ ColumnType["MEDIUM_INTEGER"] = "mediumint";
93
+ ColumnType["INTEGER"] = "int";
94
+ ColumnType["BIG_INTEGER"] = "bigint";
95
+ ColumnType["TINY_TEXT"] = "tinytext";
96
+ ColumnType["MEDIUM_TEXT"] = "mediumtext";
97
+ ColumnType["LONG_TEXT"] = "longtext";
98
+ ColumnType["TEXT"] = "text";
99
+ ColumnType["STRING"] = "string";
100
+ ColumnType["FLOAT"] = "float";
101
+ ColumnType["DECIMAL"] = "decimal";
102
+ ColumnType["BOOLEAN"] = "boolean";
103
+ ColumnType["BIT"] = "bit";
104
+ ColumnType["DOUBLE"] = "double";
105
+ ColumnType["DATE"] = "date";
106
+ ColumnType["TIME"] = "time";
107
+ ColumnType["DATE_TIME"] = "dateTime";
108
+ ColumnType["TIMESTAMP"] = "timestamp";
109
+ ColumnType["ENUM"] = "enum";
110
+ ColumnType["JSON"] = "json";
111
+ ColumnType["SET"] = "set";
112
+ ColumnType["BINARY"] = "binary";
113
+ ColumnType["TINY_BLOB"] = "tinyblob";
114
+ ColumnType["MEDIUM_BLOB"] = "mediumblob";
115
+ ColumnType["LONG_BLOB"] = "longblob";
116
+ })(ColumnType = exports.ColumnType || (exports.ColumnType = {}));
117
+ var SORT_ORDER;
118
+ (function (SORT_ORDER) {
119
+ SORT_ORDER["ASC"] = "ASC";
120
+ SORT_ORDER["DESC"] = "DESC";
121
+ })(SORT_ORDER = exports.SORT_ORDER || (exports.SORT_ORDER = {}));
122
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../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,cAcX;AAdD,WAAY,cAAc;IACxB,0BAAQ,CAAA;IACR,4BAAU,CAAA;IACV,0BAAQ,CAAA;IACR,4BAAU,CAAA;IACV,4BAAU,CAAA;IACV,0BAAQ,CAAA;IACR,2BAAS,CAAA;IACT,mCAAiB,CAAA;IACjB,kCAAgB,CAAA;IAChB,0CAAwB,CAAA;IACxB,qCAAmB,CAAA;IACnB,6CAA2B,CAAA;IAC3B,+BAAa,CAAA;AACf,CAAC,EAdW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAczB;AAED;;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,UAGX;AAHD,WAAY,UAAU;IACpB,yBAAW,CAAA;IACX,2BAAa,CAAA;AACf,CAAC,EAHW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAGrB"}
@@ -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":["../../../src/exceptions.ts"],"names":[],"mappings":";;;AAAA,oDAAgD;AAEhD;;GAEG;AACH,MAAa,YAAa,SAAQ,sBAAS;CAAG;AAA9C,oCAA8C"}
@@ -0,0 +1,16 @@
1
+ import { ModelBase } from './model';
2
+ export declare abstract class ModelHydrator {
3
+ abstract hydrate(target: any, values: any): void;
4
+ }
5
+ export declare class OneToOneRelationHydrator extends ModelHydrator {
6
+ hydrate(target: ModelBase, values: any): void;
7
+ }
8
+ export declare class DbPropertyHydrator extends ModelHydrator {
9
+ hydrate(target: ModelBase, values: any): void;
10
+ }
11
+ export declare class NonDbPropertyHydrator extends ModelHydrator {
12
+ hydrate(target: ModelBase, values: any): void;
13
+ }
14
+ export declare class JunctionModelPropertyHydrator extends ModelHydrator {
15
+ hydrate(target: ModelBase, values: any): void;
16
+ }
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JunctionModelPropertyHydrator = exports.NonDbPropertyHydrator = exports.DbPropertyHydrator = exports.OneToOneRelationHydrator = exports.ModelHydrator = void 0;
4
+ const di_1 = require("@spinajs/di");
5
+ class ModelHydrator {
6
+ }
7
+ exports.ModelHydrator = ModelHydrator;
8
+ class OneToOneRelationHydrator extends ModelHydrator {
9
+ hydrate(target, values) {
10
+ const descriptor = target.ModelDescriptor;
11
+ if (!descriptor) {
12
+ throw new Error(`cannot hydrate model ${target.constructor.name}, no model descriptor found`);
13
+ }
14
+ for (const [key, val] of descriptor.Relations) {
15
+ if (values[key] != null) {
16
+ const entity = target;
17
+ entity[key] = !(0, di_1.isConstructor)(val.TargetModel) ? new (val.TargetModel())() : new val.TargetModel();
18
+ entity[key].hydrate(values[key]);
19
+ delete target[val.ForeignKey];
20
+ }
21
+ }
22
+ }
23
+ }
24
+ exports.OneToOneRelationHydrator = OneToOneRelationHydrator;
25
+ class DbPropertyHydrator extends ModelHydrator {
26
+ hydrate(target, values) {
27
+ const descriptor = target.ModelDescriptor;
28
+ if (!descriptor) {
29
+ throw new Error(`cannot hydrate model ${target.constructor.name}, no model descriptor found`);
30
+ }
31
+ // filter out model joined properties
32
+ // we handle it in later
33
+ 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); });
34
+ keys.forEach((k) => {
35
+ var _a;
36
+ const column = (_a = descriptor.Columns) === null || _a === void 0 ? void 0 : _a.find((c) => c.Name === k);
37
+ target[k] = column.Converter ? column.Converter.fromDB(values[k]) : values[k];
38
+ });
39
+ }
40
+ }
41
+ exports.DbPropertyHydrator = DbPropertyHydrator;
42
+ class NonDbPropertyHydrator extends ModelHydrator {
43
+ hydrate(target, values) {
44
+ const descriptor = target.ModelDescriptor;
45
+ if (!descriptor) {
46
+ throw new Error(`cannot hydrate model ${target.constructor.name}, no model descriptor found`);
47
+ }
48
+ // get only properties that are not in DB
49
+ 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; });
50
+ keys.forEach((k) => {
51
+ target[k] = values[k];
52
+ });
53
+ }
54
+ }
55
+ exports.NonDbPropertyHydrator = NonDbPropertyHydrator;
56
+ class JunctionModelPropertyHydrator extends ModelHydrator {
57
+ hydrate(target, values) {
58
+ const descriptor = target.ModelDescriptor;
59
+ if (!descriptor) {
60
+ throw new Error(`cannot hydrate model ${target.constructor.name}, no model descriptor found`);
61
+ }
62
+ for (const jt of descriptor.JunctionModelProperties) {
63
+ const entity = new jt.Model();
64
+ entity.hydrate(values.JunctionModel);
65
+ target[jt.Name] = entity;
66
+ }
67
+ }
68
+ }
69
+ exports.JunctionModelPropertyHydrator = JunctionModelPropertyHydrator;
70
+ //# sourceMappingURL=hydrators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydrators.js","sourceRoot":"","sources":["../../../src/hydrators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export * from './interfaces';
2
+ export * from './statements';
3
+ export * from './builders';
4
+ export * from './model';
5
+ export * from './relations';
6
+ export * from './orm';
7
+ export * from './types';
8
+ export * from './decorators';
9
+ export * from './hydrators';
10
+ export * from './driver';
11
+ export * from './converters';
12
+ export * from './wrappers';
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./interfaces"), exports);
14
+ __exportStar(require("./statements"), exports);
15
+ __exportStar(require("./builders"), exports);
16
+ __exportStar(require("./model"), exports);
17
+ __exportStar(require("./relations"), exports);
18
+ __exportStar(require("./orm"), exports);
19
+ __exportStar(require("./types"), exports);
20
+ __exportStar(require("./decorators"), exports);
21
+ __exportStar(require("./hydrators"), exports);
22
+ __exportStar(require("./driver"), exports);
23
+ __exportStar(require("./converters"), exports);
24
+ __exportStar(require("./wrappers"), exports);
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAA6B;AAC7B,+CAA6B;AAC7B,6CAA2B;AAC3B,0CAAwB;AACxB,8CAA4B;AAC5B,wCAAsB;AACtB,0CAAwB;AACxB,+CAA6B;AAC7B,8CAA4B;AAC5B,2CAAyB;AACzB,+CAA6B;AAC7B,6CAA2B"}