@spinajs/orm 2.0.179 → 2.0.181
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/lib/cjs/builders.d.ts +643 -643
- package/lib/cjs/builders.js +1602 -1602
- package/lib/cjs/builders.js.map +1 -1
- package/lib/cjs/converters.d.ts +34 -34
- package/lib/cjs/converters.js +104 -104
- package/lib/cjs/decorators.d.ts +152 -152
- package/lib/cjs/decorators.js +449 -449
- package/lib/cjs/dehydrators.d.ts +10 -10
- package/lib/cjs/dehydrators.js +47 -47
- package/lib/cjs/driver.d.ts +82 -82
- package/lib/cjs/driver.js +102 -102
- package/lib/cjs/driver.js.map +1 -1
- package/lib/cjs/enums.d.ts +116 -116
- package/lib/cjs/enums.js +126 -126
- package/lib/cjs/enums.js.map +1 -1
- package/lib/cjs/exceptions.d.ts +6 -6
- package/lib/cjs/exceptions.js +10 -10
- package/lib/cjs/hydrators.d.ts +19 -19
- package/lib/cjs/hydrators.js +132 -132
- package/lib/cjs/hydrators.js.map +1 -1
- package/lib/cjs/index.d.ts +17 -17
- package/lib/cjs/index.js +33 -33
- package/lib/cjs/interfaces.d.ts +919 -919
- package/lib/cjs/interfaces.js +279 -279
- package/lib/cjs/interfaces.js.map +1 -1
- package/lib/cjs/middlewares.d.ts +62 -62
- package/lib/cjs/middlewares.js +258 -258
- package/lib/cjs/model.d.ts +284 -284
- package/lib/cjs/model.js +810 -810
- package/lib/cjs/orm.d.ts +61 -61
- package/lib/cjs/orm.js +333 -333
- package/lib/cjs/orm.js.map +1 -1
- package/lib/cjs/relation-objects.d.ts +108 -108
- package/lib/cjs/relation-objects.js +221 -221
- package/lib/cjs/relations.d.ts +61 -61
- package/lib/cjs/relations.js +194 -194
- package/lib/cjs/relations.js.map +1 -1
- package/lib/cjs/statements.d.ts +143 -143
- package/lib/cjs/statements.js +309 -309
- package/lib/cjs/statements.js.map +1 -1
- package/lib/cjs/types.d.ts +32 -32
- package/lib/cjs/types.js +2 -2
- package/lib/cjs/wrappers.d.ts +5 -5
- package/lib/cjs/wrappers.js +12 -12
- package/lib/mjs/builders.d.ts +643 -643
- package/lib/mjs/builders.js +1594 -1594
- package/lib/mjs/builders.js.map +1 -1
- package/lib/mjs/converters.d.ts +34 -34
- package/lib/mjs/converters.js +96 -96
- package/lib/mjs/decorators.d.ts +152 -152
- package/lib/mjs/decorators.js +422 -422
- package/lib/mjs/dehydrators.d.ts +10 -10
- package/lib/mjs/dehydrators.js +41 -41
- package/lib/mjs/driver.d.ts +82 -82
- package/lib/mjs/driver.js +98 -98
- package/lib/mjs/driver.js.map +1 -1
- package/lib/mjs/enums.d.ts +116 -116
- package/lib/mjs/enums.js +123 -123
- package/lib/mjs/enums.js.map +1 -1
- package/lib/mjs/exceptions.d.ts +6 -6
- package/lib/mjs/exceptions.js +6 -6
- package/lib/mjs/hydrators.d.ts +19 -19
- package/lib/mjs/hydrators.js +128 -128
- package/lib/mjs/hydrators.js.map +1 -1
- package/lib/mjs/index.d.ts +17 -17
- package/lib/mjs/index.js +17 -17
- package/lib/mjs/interfaces.d.ts +919 -919
- package/lib/mjs/interfaces.js +267 -267
- package/lib/mjs/interfaces.js.map +1 -1
- package/lib/mjs/middlewares.d.ts +62 -62
- package/lib/mjs/middlewares.js +249 -249
- package/lib/mjs/model.d.ts +284 -284
- package/lib/mjs/model.js +800 -800
- package/lib/mjs/orm.d.ts +61 -61
- package/lib/mjs/orm.js +326 -326
- package/lib/mjs/orm.js.map +1 -1
- package/lib/mjs/relation-objects.d.ts +108 -108
- package/lib/mjs/relation-objects.js +211 -211
- package/lib/mjs/relations.d.ts +61 -61
- package/lib/mjs/relations.js +191 -191
- package/lib/mjs/relations.js.map +1 -1
- package/lib/mjs/statements.d.ts +143 -143
- package/lib/mjs/statements.js +301 -301
- package/lib/mjs/statements.js.map +1 -1
- package/lib/mjs/types.d.ts +32 -32
- package/lib/mjs/types.js +1 -1
- package/lib/mjs/wrappers.d.ts +5 -5
- package/lib/mjs/wrappers.js +9 -9
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +5 -5
package/lib/cjs/dehydrators.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { ModelBase } from './model.js';
|
|
2
|
-
export declare abstract class ModelDehydrator {
|
|
3
|
-
abstract dehydrate(model: ModelBase, omit?: string[]): any;
|
|
4
|
-
}
|
|
5
|
-
export declare class StandardModelDehydrator extends ModelDehydrator {
|
|
6
|
-
dehydrate(model: ModelBase, omit?: string[]): {};
|
|
7
|
-
}
|
|
8
|
-
export declare class StandardModelWithRelationsDehydrator extends StandardModelDehydrator {
|
|
9
|
-
dehydrate(model: ModelBase<unknown>, omit?: string[]): any;
|
|
10
|
-
}
|
|
1
|
+
import { ModelBase } from './model.js';
|
|
2
|
+
export declare abstract class ModelDehydrator {
|
|
3
|
+
abstract dehydrate(model: ModelBase, omit?: string[]): any;
|
|
4
|
+
}
|
|
5
|
+
export declare class StandardModelDehydrator extends ModelDehydrator {
|
|
6
|
+
dehydrate(model: ModelBase, omit?: string[]): {};
|
|
7
|
+
}
|
|
8
|
+
export declare class StandardModelWithRelationsDehydrator extends StandardModelDehydrator {
|
|
9
|
+
dehydrate(model: ModelBase<unknown>, omit?: string[]): any;
|
|
10
|
+
}
|
|
11
11
|
//# sourceMappingURL=dehydrators.d.ts.map
|
package/lib/cjs/dehydrators.js
CHANGED
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StandardModelWithRelationsDehydrator = exports.StandardModelDehydrator = exports.ModelDehydrator = void 0;
|
|
4
|
-
const exceptions_js_1 = require("./exceptions.js");
|
|
5
|
-
const interfaces_js_1 = require("./interfaces.js");
|
|
6
|
-
class ModelDehydrator {
|
|
7
|
-
}
|
|
8
|
-
exports.ModelDehydrator = ModelDehydrator;
|
|
9
|
-
class StandardModelDehydrator extends ModelDehydrator {
|
|
10
|
-
dehydrate(model, omit) {
|
|
11
|
-
const obj = {};
|
|
12
|
-
const relArr = [...model.ModelDescriptor.Relations.values()];
|
|
13
|
-
model.ModelDescriptor.Columns?.forEach((c) => {
|
|
14
|
-
// if in omit list OR it is foreign key for relation - skip
|
|
15
|
-
if ((omit && omit.indexOf(c.Name) !== -1) || (relArr.find((r) => r.ForeignKey === c.Name) && !c.PrimaryKey)) {
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
const val = model[c.Name];
|
|
19
|
-
if (!c.PrimaryKey && !c.Nullable && (val === null || val === undefined || val === '')) {
|
|
20
|
-
throw new exceptions_js_1.OrmException(`Field ${c.Name} cannot be null`);
|
|
21
|
-
}
|
|
22
|
-
obj[c.Name] = c.Converter ? c.Converter.toDB(val, model, null) : val;
|
|
23
|
-
});
|
|
24
|
-
return obj;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
exports.StandardModelDehydrator = StandardModelDehydrator;
|
|
28
|
-
class StandardModelWithRelationsDehydrator extends StandardModelDehydrator {
|
|
29
|
-
dehydrate(model, omit) {
|
|
30
|
-
const obj = super.dehydrate(model, omit);
|
|
31
|
-
const relArr = [...model.ModelDescriptor.Relations.values()];
|
|
32
|
-
for (const val of relArr) {
|
|
33
|
-
if (val.Type === interfaces_js_1.RelationType.One) {
|
|
34
|
-
if (model[val.Name].Value) {
|
|
35
|
-
obj[val.Name] = model[val.Name].Value.dehydrateWithRelations();
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
if (val.Type === interfaces_js_1.RelationType.Many) {
|
|
39
|
-
if (model[val.Name]) {
|
|
40
|
-
obj[val.Name] = [...model[val.Name].map((x) => x.dehydrateWithRelations())];
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return obj;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
exports.StandardModelWithRelationsDehydrator = StandardModelWithRelationsDehydrator;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StandardModelWithRelationsDehydrator = exports.StandardModelDehydrator = exports.ModelDehydrator = void 0;
|
|
4
|
+
const exceptions_js_1 = require("./exceptions.js");
|
|
5
|
+
const interfaces_js_1 = require("./interfaces.js");
|
|
6
|
+
class ModelDehydrator {
|
|
7
|
+
}
|
|
8
|
+
exports.ModelDehydrator = ModelDehydrator;
|
|
9
|
+
class StandardModelDehydrator extends ModelDehydrator {
|
|
10
|
+
dehydrate(model, omit) {
|
|
11
|
+
const obj = {};
|
|
12
|
+
const relArr = [...model.ModelDescriptor.Relations.values()];
|
|
13
|
+
model.ModelDescriptor.Columns?.forEach((c) => {
|
|
14
|
+
// if in omit list OR it is foreign key for relation - skip
|
|
15
|
+
if ((omit && omit.indexOf(c.Name) !== -1) || (relArr.find((r) => r.ForeignKey === c.Name) && !c.PrimaryKey)) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const val = model[c.Name];
|
|
19
|
+
if (!c.PrimaryKey && !c.Nullable && (val === null || val === undefined || val === '')) {
|
|
20
|
+
throw new exceptions_js_1.OrmException(`Field ${c.Name} cannot be null`);
|
|
21
|
+
}
|
|
22
|
+
obj[c.Name] = c.Converter ? c.Converter.toDB(val, model, null) : val;
|
|
23
|
+
});
|
|
24
|
+
return obj;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.StandardModelDehydrator = StandardModelDehydrator;
|
|
28
|
+
class StandardModelWithRelationsDehydrator extends StandardModelDehydrator {
|
|
29
|
+
dehydrate(model, omit) {
|
|
30
|
+
const obj = super.dehydrate(model, omit);
|
|
31
|
+
const relArr = [...model.ModelDescriptor.Relations.values()];
|
|
32
|
+
for (const val of relArr) {
|
|
33
|
+
if (val.Type === interfaces_js_1.RelationType.One) {
|
|
34
|
+
if (model[val.Name].Value) {
|
|
35
|
+
obj[val.Name] = model[val.Name].Value.dehydrateWithRelations();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (val.Type === interfaces_js_1.RelationType.Many) {
|
|
39
|
+
if (model[val.Name]) {
|
|
40
|
+
obj[val.Name] = [...model[val.Name].map((x) => x.dehydrateWithRelations())];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return obj;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.StandardModelWithRelationsDehydrator = StandardModelWithRelationsDehydrator;
|
|
48
48
|
//# sourceMappingURL=dehydrators.js.map
|
package/lib/cjs/driver.d.ts
CHANGED
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
import { Log } from '@spinajs/log-common';
|
|
2
|
-
import { IColumnDescriptor, IDriverOptions } from './interfaces.js';
|
|
3
|
-
import { SyncService, IContainer, Container } from '@spinajs/di';
|
|
4
|
-
import { UpdateQueryBuilder, SelectQueryBuilder, IndexQueryBuilder, DeleteQueryBuilder, InsertQueryBuilder, SchemaQueryBuilder, QueryBuilder, TruncateTableQueryBuilder, Builder } from './builders.js';
|
|
5
|
-
import './hydrators.js';
|
|
6
|
-
import './dehydrators.js';
|
|
7
|
-
export type TransactionCallback = (driver: OrmDriver) => Promise<any>;
|
|
8
|
-
export declare abstract class OrmDriver<T extends IDriverOptions = IDriverOptions> extends SyncService {
|
|
9
|
-
/**
|
|
10
|
-
* Connection options
|
|
11
|
-
*/
|
|
12
|
-
Options: T;
|
|
13
|
-
Container: IContainer;
|
|
14
|
-
protected RootContainer: Container;
|
|
15
|
-
protected Log: Log;
|
|
16
|
-
constructor(options: T);
|
|
17
|
-
/**
|
|
18
|
-
* Executes query on database
|
|
19
|
-
*
|
|
20
|
-
* @param stmt - query string or query objects that is executed in database
|
|
21
|
-
* @param params - binding parameters
|
|
22
|
-
* @param context - query context to optimize queries sent to DB
|
|
23
|
-
*/
|
|
24
|
-
abstract execute(builder: Builder<any>): Promise<any[] | any>;
|
|
25
|
-
/**
|
|
26
|
-
* Checks if database is avaible
|
|
27
|
-
* @returns false if cannot reach database
|
|
28
|
-
*/
|
|
29
|
-
abstract ping(): Promise<boolean>;
|
|
30
|
-
/**
|
|
31
|
-
* Connects to database
|
|
32
|
-
* @throws OrmException if can't connec to to database
|
|
33
|
-
*/
|
|
34
|
-
abstract connect(): Promise<OrmDriver>;
|
|
35
|
-
/**
|
|
36
|
-
* Disconnects from database
|
|
37
|
-
*/
|
|
38
|
-
abstract disconnect(): Promise<OrmDriver>;
|
|
39
|
-
abstract tableInfo(name: string, schema?: string): Promise<IColumnDescriptor[]>;
|
|
40
|
-
resolve(): void;
|
|
41
|
-
/**
|
|
42
|
-
* Creates select query builder associated with this connection.
|
|
43
|
-
* This can be used to execute raw queries to db without orm model layer
|
|
44
|
-
*/
|
|
45
|
-
select<T>(): SelectQueryBuilder<T>;
|
|
46
|
-
/**
|
|
47
|
-
* Creates delete query builder associated with this connection.
|
|
48
|
-
* This can be used to execute raw queries to db without orm model layer
|
|
49
|
-
*/
|
|
50
|
-
del<T>(): DeleteQueryBuilder<T>;
|
|
51
|
-
/**
|
|
52
|
-
* Creates insert query builder associated with this connection.
|
|
53
|
-
* This can be used to execute raw queries to db without orm model layer
|
|
54
|
-
*/
|
|
55
|
-
insert(): InsertQueryBuilder;
|
|
56
|
-
/**
|
|
57
|
-
* Truncates given table
|
|
58
|
-
*/
|
|
59
|
-
truncate(table: string): TruncateTableQueryBuilder;
|
|
60
|
-
/**
|
|
61
|
-
* Creates update query builder associated with this connection.
|
|
62
|
-
* This can be used to execute raw queries to db without orm model layer
|
|
63
|
-
*/
|
|
64
|
-
update<T>(): UpdateQueryBuilder<T>;
|
|
65
|
-
/**
|
|
66
|
-
* Creates schema query builder associated with this connection.
|
|
67
|
-
* This can be use to modify database structure
|
|
68
|
-
*/
|
|
69
|
-
schema(): SchemaQueryBuilder;
|
|
70
|
-
/**
|
|
71
|
-
* Creates index query builder associated with this connection.
|
|
72
|
-
* This can be use to create table indexes
|
|
73
|
-
*/
|
|
74
|
-
index(): IndexQueryBuilder;
|
|
75
|
-
/**
|
|
76
|
-
* Executes all queries in transaction
|
|
77
|
-
*
|
|
78
|
-
* @param queryOrCallback - one or more queries to execute in transaction scope. If parameter is function
|
|
79
|
-
* its executed in transaction scope, thus all db operation in callback function are in transaction
|
|
80
|
-
*/
|
|
81
|
-
abstract transaction(queryOrCallback?: QueryBuilder[] | TransactionCallback): Promise<void>;
|
|
82
|
-
}
|
|
1
|
+
import { Log } from '@spinajs/log-common';
|
|
2
|
+
import { IColumnDescriptor, IDriverOptions } from './interfaces.js';
|
|
3
|
+
import { SyncService, IContainer, Container } from '@spinajs/di';
|
|
4
|
+
import { UpdateQueryBuilder, SelectQueryBuilder, IndexQueryBuilder, DeleteQueryBuilder, InsertQueryBuilder, SchemaQueryBuilder, QueryBuilder, TruncateTableQueryBuilder, Builder } from './builders.js';
|
|
5
|
+
import './hydrators.js';
|
|
6
|
+
import './dehydrators.js';
|
|
7
|
+
export type TransactionCallback = (driver: OrmDriver) => Promise<any>;
|
|
8
|
+
export declare abstract class OrmDriver<T extends IDriverOptions = IDriverOptions> extends SyncService {
|
|
9
|
+
/**
|
|
10
|
+
* Connection options
|
|
11
|
+
*/
|
|
12
|
+
Options: T;
|
|
13
|
+
Container: IContainer;
|
|
14
|
+
protected RootContainer: Container;
|
|
15
|
+
protected Log: Log;
|
|
16
|
+
constructor(options: T);
|
|
17
|
+
/**
|
|
18
|
+
* Executes query on database
|
|
19
|
+
*
|
|
20
|
+
* @param stmt - query string or query objects that is executed in database
|
|
21
|
+
* @param params - binding parameters
|
|
22
|
+
* @param context - query context to optimize queries sent to DB
|
|
23
|
+
*/
|
|
24
|
+
abstract execute(builder: Builder<any>): Promise<any[] | any>;
|
|
25
|
+
/**
|
|
26
|
+
* Checks if database is avaible
|
|
27
|
+
* @returns false if cannot reach database
|
|
28
|
+
*/
|
|
29
|
+
abstract ping(): Promise<boolean>;
|
|
30
|
+
/**
|
|
31
|
+
* Connects to database
|
|
32
|
+
* @throws OrmException if can't connec to to database
|
|
33
|
+
*/
|
|
34
|
+
abstract connect(): Promise<OrmDriver>;
|
|
35
|
+
/**
|
|
36
|
+
* Disconnects from database
|
|
37
|
+
*/
|
|
38
|
+
abstract disconnect(): Promise<OrmDriver>;
|
|
39
|
+
abstract tableInfo(name: string, schema?: string): Promise<IColumnDescriptor[]>;
|
|
40
|
+
resolve(): void;
|
|
41
|
+
/**
|
|
42
|
+
* Creates select query builder associated with this connection.
|
|
43
|
+
* This can be used to execute raw queries to db without orm model layer
|
|
44
|
+
*/
|
|
45
|
+
select<T>(): SelectQueryBuilder<T>;
|
|
46
|
+
/**
|
|
47
|
+
* Creates delete query builder associated with this connection.
|
|
48
|
+
* This can be used to execute raw queries to db without orm model layer
|
|
49
|
+
*/
|
|
50
|
+
del<T>(): DeleteQueryBuilder<T>;
|
|
51
|
+
/**
|
|
52
|
+
* Creates insert query builder associated with this connection.
|
|
53
|
+
* This can be used to execute raw queries to db without orm model layer
|
|
54
|
+
*/
|
|
55
|
+
insert(): InsertQueryBuilder;
|
|
56
|
+
/**
|
|
57
|
+
* Truncates given table
|
|
58
|
+
*/
|
|
59
|
+
truncate(table: string): TruncateTableQueryBuilder;
|
|
60
|
+
/**
|
|
61
|
+
* Creates update query builder associated with this connection.
|
|
62
|
+
* This can be used to execute raw queries to db without orm model layer
|
|
63
|
+
*/
|
|
64
|
+
update<T>(): UpdateQueryBuilder<T>;
|
|
65
|
+
/**
|
|
66
|
+
* Creates schema query builder associated with this connection.
|
|
67
|
+
* This can be use to modify database structure
|
|
68
|
+
*/
|
|
69
|
+
schema(): SchemaQueryBuilder;
|
|
70
|
+
/**
|
|
71
|
+
* Creates index query builder associated with this connection.
|
|
72
|
+
* This can be use to create table indexes
|
|
73
|
+
*/
|
|
74
|
+
index(): IndexQueryBuilder;
|
|
75
|
+
/**
|
|
76
|
+
* Executes all queries in transaction
|
|
77
|
+
*
|
|
78
|
+
* @param queryOrCallback - one or more queries to execute in transaction scope. If parameter is function
|
|
79
|
+
* its executed in transaction scope, thus all db operation in callback function are in transaction
|
|
80
|
+
*/
|
|
81
|
+
abstract transaction(queryOrCallback?: QueryBuilder[] | TransactionCallback): Promise<void>;
|
|
82
|
+
}
|
|
83
83
|
//# sourceMappingURL=driver.d.ts.map
|
package/lib/cjs/driver.js
CHANGED
|
@@ -1,103 +1,103 @@
|
|
|
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_common_1 = require("@spinajs/log-common");
|
|
14
|
-
/* eslint-disable prettier/prettier */
|
|
15
|
-
const interfaces_js_1 = require("./interfaces.js");
|
|
16
|
-
const di_1 = require("@spinajs/di");
|
|
17
|
-
const builders_js_1 = require("./builders.js");
|
|
18
|
-
const converters_js_1 = require("./converters.js");
|
|
19
|
-
require("./hydrators.js");
|
|
20
|
-
require("./dehydrators.js");
|
|
21
|
-
class OrmDriver extends di_1.SyncService {
|
|
22
|
-
constructor(options) {
|
|
23
|
-
super();
|
|
24
|
-
/**
|
|
25
|
-
* Connection options
|
|
26
|
-
*/
|
|
27
|
-
this.Options = {
|
|
28
|
-
AliasSeparator: '$',
|
|
29
|
-
Driver: 'unknown',
|
|
30
|
-
Name: 'orm-driver',
|
|
31
|
-
DefaultConnection: false
|
|
32
|
-
};
|
|
33
|
-
this.Options = Object.assign(this.Options, options);
|
|
34
|
-
}
|
|
35
|
-
resolve() {
|
|
36
|
-
this.Log = di_1.DI.resolve(log_common_1.Log, [`orm-driver-${this.Options.Name}`]);
|
|
37
|
-
this.Log.addVariable('orm-name', this.Options.Name);
|
|
38
|
-
this.Log.addVariable('orm-host', this.Options.Host);
|
|
39
|
-
this.Log.addVariable('orm-database', this.Options.Database);
|
|
40
|
-
this.Container = this.RootContainer.child();
|
|
41
|
-
this.Container.register(converters_js_1.StandardModelToSqlConverter).as(interfaces_js_1.ModelToSqlConverter);
|
|
42
|
-
this.Container.register(converters_js_1.StandardObjectToSqlConverter).as(interfaces_js_1.ObjectToSqlConverter);
|
|
43
|
-
this.Container.register(converters_js_1.JsonValueConverter).as(converters_js_1.JsonValueConverter);
|
|
44
|
-
this.Container.register(converters_js_1.UuidConverter).as(converters_js_1.UuidConverter);
|
|
45
|
-
this.Container.register(converters_js_1.UniversalValueConverter).as(converters_js_1.UniversalValueConverter);
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Creates select query builder associated with this connection.
|
|
49
|
-
* This can be used to execute raw queries to db without orm model layer
|
|
50
|
-
*/
|
|
51
|
-
select() {
|
|
52
|
-
return this.Container.resolve(builders_js_1.SelectQueryBuilder, [this]);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Creates delete query builder associated with this connection.
|
|
56
|
-
* This can be used to execute raw queries to db without orm model layer
|
|
57
|
-
*/
|
|
58
|
-
del() {
|
|
59
|
-
return this.Container.resolve(builders_js_1.DeleteQueryBuilder, [this]);
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Creates insert query builder associated with this connection.
|
|
63
|
-
* This can be used to execute raw queries to db without orm model layer
|
|
64
|
-
*/
|
|
65
|
-
insert() {
|
|
66
|
-
return this.Container.resolve(builders_js_1.InsertQueryBuilder, [this]);
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Truncates given table
|
|
70
|
-
*/
|
|
71
|
-
truncate(table) {
|
|
72
|
-
const b = this.Container.resolve(builders_js_1.TruncateTableQueryBuilder, [this]);
|
|
73
|
-
b.setTable(table);
|
|
74
|
-
return b;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Creates update query builder associated with this connection.
|
|
78
|
-
* This can be used to execute raw queries to db without orm model layer
|
|
79
|
-
*/
|
|
80
|
-
update() {
|
|
81
|
-
return this.Container.resolve(builders_js_1.UpdateQueryBuilder, [this]);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Creates schema query builder associated with this connection.
|
|
85
|
-
* This can be use to modify database structure
|
|
86
|
-
*/
|
|
87
|
-
schema() {
|
|
88
|
-
return this.Container.resolve(builders_js_1.SchemaQueryBuilder, [this]);
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Creates index query builder associated with this connection.
|
|
92
|
-
* This can be use to create table indexes
|
|
93
|
-
*/
|
|
94
|
-
index() {
|
|
95
|
-
return this.Container.resolve(builders_js_1.IndexQueryBuilder, [this]);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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_common_1 = require("@spinajs/log-common");
|
|
14
|
+
/* eslint-disable prettier/prettier */
|
|
15
|
+
const interfaces_js_1 = require("./interfaces.js");
|
|
16
|
+
const di_1 = require("@spinajs/di");
|
|
17
|
+
const builders_js_1 = require("./builders.js");
|
|
18
|
+
const converters_js_1 = require("./converters.js");
|
|
19
|
+
require("./hydrators.js");
|
|
20
|
+
require("./dehydrators.js");
|
|
21
|
+
class OrmDriver extends di_1.SyncService {
|
|
22
|
+
constructor(options) {
|
|
23
|
+
super();
|
|
24
|
+
/**
|
|
25
|
+
* Connection options
|
|
26
|
+
*/
|
|
27
|
+
this.Options = {
|
|
28
|
+
AliasSeparator: '$',
|
|
29
|
+
Driver: 'unknown',
|
|
30
|
+
Name: 'orm-driver',
|
|
31
|
+
DefaultConnection: false
|
|
32
|
+
};
|
|
33
|
+
this.Options = Object.assign(this.Options, options);
|
|
34
|
+
}
|
|
35
|
+
resolve() {
|
|
36
|
+
this.Log = di_1.DI.resolve(log_common_1.Log, [`orm-driver-${this.Options.Name}`]);
|
|
37
|
+
this.Log.addVariable('orm-name', this.Options.Name);
|
|
38
|
+
this.Log.addVariable('orm-host', this.Options.Host);
|
|
39
|
+
this.Log.addVariable('orm-database', this.Options.Database);
|
|
40
|
+
this.Container = this.RootContainer.child();
|
|
41
|
+
this.Container.register(converters_js_1.StandardModelToSqlConverter).as(interfaces_js_1.ModelToSqlConverter);
|
|
42
|
+
this.Container.register(converters_js_1.StandardObjectToSqlConverter).as(interfaces_js_1.ObjectToSqlConverter);
|
|
43
|
+
this.Container.register(converters_js_1.JsonValueConverter).as(converters_js_1.JsonValueConverter);
|
|
44
|
+
this.Container.register(converters_js_1.UuidConverter).as(converters_js_1.UuidConverter);
|
|
45
|
+
this.Container.register(converters_js_1.UniversalValueConverter).as(converters_js_1.UniversalValueConverter);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Creates select query builder associated with this connection.
|
|
49
|
+
* This can be used to execute raw queries to db without orm model layer
|
|
50
|
+
*/
|
|
51
|
+
select() {
|
|
52
|
+
return this.Container.resolve(builders_js_1.SelectQueryBuilder, [this]);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Creates delete query builder associated with this connection.
|
|
56
|
+
* This can be used to execute raw queries to db without orm model layer
|
|
57
|
+
*/
|
|
58
|
+
del() {
|
|
59
|
+
return this.Container.resolve(builders_js_1.DeleteQueryBuilder, [this]);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Creates insert query builder associated with this connection.
|
|
63
|
+
* This can be used to execute raw queries to db without orm model layer
|
|
64
|
+
*/
|
|
65
|
+
insert() {
|
|
66
|
+
return this.Container.resolve(builders_js_1.InsertQueryBuilder, [this]);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Truncates given table
|
|
70
|
+
*/
|
|
71
|
+
truncate(table) {
|
|
72
|
+
const b = this.Container.resolve(builders_js_1.TruncateTableQueryBuilder, [this]);
|
|
73
|
+
b.setTable(table);
|
|
74
|
+
return b;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Creates update query builder associated with this connection.
|
|
78
|
+
* This can be used to execute raw queries to db without orm model layer
|
|
79
|
+
*/
|
|
80
|
+
update() {
|
|
81
|
+
return this.Container.resolve(builders_js_1.UpdateQueryBuilder, [this]);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Creates schema query builder associated with this connection.
|
|
85
|
+
* This can be use to modify database structure
|
|
86
|
+
*/
|
|
87
|
+
schema() {
|
|
88
|
+
return this.Container.resolve(builders_js_1.SchemaQueryBuilder, [this]);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Creates index query builder associated with this connection.
|
|
92
|
+
* This can be use to create table indexes
|
|
93
|
+
*/
|
|
94
|
+
index() {
|
|
95
|
+
return this.Container.resolve(builders_js_1.IndexQueryBuilder, [this]);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.OrmDriver = OrmDriver;
|
|
99
|
+
__decorate([
|
|
100
|
+
(0, di_1.Autoinject)(),
|
|
101
|
+
__metadata("design:type", di_1.Container)
|
|
102
|
+
], OrmDriver.prototype, "RootContainer", void 0);
|
|
103
103
|
//# sourceMappingURL=driver.js.map
|
package/lib/cjs/driver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../src/driver.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../src/driver.ts"],"names":[],"mappings":"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"}
|