@spinajs/orm 2.0.181 → 2.0.183
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 +1 -0
- package/lib/cjs/builders.d.ts.map +1 -1
- package/lib/cjs/builders.js +10 -1
- package/lib/cjs/builders.js.map +1 -1
- package/lib/cjs/decorators.js +1 -1
- package/lib/cjs/decorators.js.map +1 -1
- package/lib/cjs/interfaces.d.ts +90 -3
- package/lib/cjs/interfaces.d.ts.map +1 -1
- package/lib/cjs/interfaces.js.map +1 -1
- package/lib/cjs/model.d.ts +15 -6
- package/lib/cjs/model.d.ts.map +1 -1
- package/lib/cjs/model.js +45 -2
- package/lib/cjs/model.js.map +1 -1
- package/lib/cjs/relation-objects.d.ts +116 -29
- package/lib/cjs/relation-objects.d.ts.map +1 -1
- package/lib/cjs/relation-objects.js +136 -103
- package/lib/cjs/relation-objects.js.map +1 -1
- package/lib/mjs/builders.d.ts +1 -0
- package/lib/mjs/builders.d.ts.map +1 -1
- package/lib/mjs/builders.js +10 -1
- package/lib/mjs/builders.js.map +1 -1
- package/lib/mjs/decorators.js +2 -2
- package/lib/mjs/decorators.js.map +1 -1
- package/lib/mjs/interfaces.d.ts +90 -3
- package/lib/mjs/interfaces.d.ts.map +1 -1
- package/lib/mjs/interfaces.js.map +1 -1
- package/lib/mjs/model.d.ts +15 -6
- package/lib/mjs/model.d.ts.map +1 -1
- package/lib/mjs/model.js +43 -1
- package/lib/mjs/model.js.map +1 -1
- package/lib/mjs/relation-objects.d.ts +116 -29
- package/lib/mjs/relation-objects.d.ts.map +1 -1
- package/lib/mjs/relation-objects.js +134 -102
- package/lib/mjs/relation-objects.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +5 -5
|
@@ -2,15 +2,33 @@ import { IRelationDescriptor, IModelDescriptor, InsertBehaviour, ForwardRefFunct
|
|
|
2
2
|
import { Constructor } from '@spinajs/di';
|
|
3
3
|
import { SelectQueryBuilder } from './builders.js';
|
|
4
4
|
import { ModelBase } from './model.js';
|
|
5
|
-
import { IModelBase } from './interfaces.js';
|
|
6
5
|
import { Orm } from './orm.js';
|
|
7
6
|
import { OrmDriver } from './driver.js';
|
|
7
|
+
export declare class Dataset {
|
|
8
|
+
/**
|
|
9
|
+
*
|
|
10
|
+
* Calculates difference between data in this relation and provides set. Result is saved to db.
|
|
11
|
+
*
|
|
12
|
+
* @param dataset - data to compare
|
|
13
|
+
* @param callback - function to compare objects, if none provideded - primary key value is used
|
|
14
|
+
*/
|
|
15
|
+
static diff<R>(dataset: R[], callback?: (a: R, b: R) => boolean): (datasetB: R[], pKey: string) => R[];
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* Calculates intersection between data in this relation and provided dataset
|
|
19
|
+
* It saves result to db
|
|
20
|
+
*
|
|
21
|
+
* @param dataset - dataset to compare
|
|
22
|
+
* @param callback - function to compare models, if not set it is compared by primary key value
|
|
23
|
+
*/
|
|
24
|
+
static intersection<R>(dataset: R[], callback?: (a: R, b: R) => boolean): (datasetB: R[], pKey: string) => R[];
|
|
25
|
+
}
|
|
8
26
|
/**
|
|
9
27
|
* Iterable list of populated relation entities
|
|
10
28
|
*
|
|
11
29
|
* It allows to add / remove objects to relation
|
|
12
30
|
*/
|
|
13
|
-
export declare abstract class Relation<R extends ModelBase
|
|
31
|
+
export declare abstract class Relation<R extends ModelBase<R>, O extends ModelBase<O>> extends Array<R> implements IRelation<R, O> {
|
|
14
32
|
protected owner: O;
|
|
15
33
|
protected Model: Constructor<R> | ForwardRefFunction;
|
|
16
34
|
protected Relation: IRelationDescriptor;
|
|
@@ -21,23 +39,39 @@ export declare abstract class Relation<R extends ModelBase, O extends ModelBase>
|
|
|
21
39
|
protected IsModelAForwardRef: boolean;
|
|
22
40
|
constructor(owner: O, Model: Constructor<R> | ForwardRefFunction, Relation: IRelationDescriptor, objects?: R[]);
|
|
23
41
|
/**
|
|
24
|
-
* Removes from relation
|
|
42
|
+
* Removes all objects from relation by comparison functions
|
|
25
43
|
*
|
|
26
|
-
* @param
|
|
44
|
+
* @param compare function to compare models
|
|
27
45
|
*/
|
|
28
|
-
abstract remove(
|
|
46
|
+
abstract remove(compare: (a: R) => boolean): R[];
|
|
29
47
|
/**
|
|
48
|
+
* Removes all objects by primary key
|
|
30
49
|
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* @param obj - data to add
|
|
50
|
+
* @param obj - data to remove
|
|
34
51
|
*/
|
|
35
|
-
abstract
|
|
52
|
+
abstract remove(obj: R | R[]): R[];
|
|
36
53
|
/**
|
|
37
|
-
|
|
54
|
+
* Removes from relation & deletes from db
|
|
55
|
+
*
|
|
56
|
+
* @param obj - data to remove
|
|
57
|
+
*/
|
|
58
|
+
abstract remove(obj: R | R[] | ((a: R, b: R) => boolean)): R[];
|
|
59
|
+
/**
|
|
60
|
+
* Delete all objects from relation ( alias for empty )
|
|
38
61
|
*/
|
|
39
62
|
clear(): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Clears relation data
|
|
65
|
+
*/
|
|
40
66
|
empty(): void;
|
|
67
|
+
/**
|
|
68
|
+
* Synchronize relation data with db
|
|
69
|
+
* NOTE: it removes data from db that are not in relation
|
|
70
|
+
*
|
|
71
|
+
* @param obj - object to add
|
|
72
|
+
* @param mode - insert mode
|
|
73
|
+
*/
|
|
74
|
+
abstract sync(): Promise<void>;
|
|
41
75
|
/**
|
|
42
76
|
*
|
|
43
77
|
* Calculates intersection between data in this relation and provided dataset
|
|
@@ -46,14 +80,14 @@ export declare abstract class Relation<R extends ModelBase, O extends ModelBase>
|
|
|
46
80
|
* @param dataset - dataset to compare
|
|
47
81
|
* @param callback - function to compare models, if not set it is compared by primary key value
|
|
48
82
|
*/
|
|
49
|
-
abstract intersection(dataset: R[], callback?: (a: R, b: R) => boolean):
|
|
83
|
+
abstract intersection(dataset: R[], callback?: (a: R, b: R) => boolean): R[];
|
|
50
84
|
/**
|
|
51
85
|
* Adds all items to this relation & adds to database
|
|
52
86
|
*
|
|
53
87
|
* @param dataset - data to add
|
|
54
88
|
* @param mode - insert mode
|
|
55
89
|
*/
|
|
56
|
-
abstract union(dataset: R[], mode?: InsertBehaviour):
|
|
90
|
+
abstract union(dataset: R[], mode?: InsertBehaviour): void;
|
|
57
91
|
/**
|
|
58
92
|
*
|
|
59
93
|
* Calculates difference between data in this relation and provides set. Result is saved to db.
|
|
@@ -61,20 +95,20 @@ export declare abstract class Relation<R extends ModelBase, O extends ModelBase>
|
|
|
61
95
|
* @param dataset - data to compare
|
|
62
96
|
* @param callback - function to compare objects, if none provideded - primary key value is used
|
|
63
97
|
*/
|
|
64
|
-
abstract diff(dataset: R[], callback?: (a: R, b: R) => boolean):
|
|
98
|
+
abstract diff(dataset: R[], callback?: (a: R, b: R) => boolean): R[];
|
|
65
99
|
/**
|
|
66
100
|
*
|
|
67
101
|
* Clears data and replace it with new dataset.
|
|
68
102
|
*
|
|
69
103
|
* @param dataset - data for replace.
|
|
70
104
|
*/
|
|
71
|
-
abstract set(
|
|
105
|
+
abstract set(obj: R[] | ((data: R[], pKey: string) => R[])): void;
|
|
72
106
|
/**
|
|
73
107
|
* Populates this relation ( loads all data related to owner of this relation)
|
|
74
108
|
*/
|
|
75
|
-
populate(callback?: (this: ISelectQueryBuilder<this>) => void): Promise<void>;
|
|
109
|
+
abstract populate(callback?: (this: ISelectQueryBuilder<this>) => void): Promise<void>;
|
|
76
110
|
}
|
|
77
|
-
export declare class SingleRelation<R extends
|
|
111
|
+
export declare class SingleRelation<R extends ModelBase> {
|
|
78
112
|
protected _owner: ModelBase;
|
|
79
113
|
protected model: Constructor<R> | ForwardRefFunction;
|
|
80
114
|
protected Relation: IRelationDescriptor;
|
|
@@ -90,20 +124,73 @@ export declare class SingleRelation<R extends IModelBase> implements IRelation {
|
|
|
90
124
|
populate(callback?: (this: SelectQueryBuilder<this>) => void): Promise<void>;
|
|
91
125
|
}
|
|
92
126
|
export declare class ManyToManyRelationList<T extends ModelBase, O extends ModelBase> extends Relation<T, O> {
|
|
93
|
-
intersection(_obj: T[], _callback?: (a: T, b: T) => boolean):
|
|
94
|
-
union(_obj: T[], _mode?: InsertBehaviour):
|
|
95
|
-
diff(_obj: T[], _callback?: (a: T, b: T) => boolean):
|
|
96
|
-
set(_obj: T[], _callback?: (a: T, b: T) => boolean):
|
|
97
|
-
remove(
|
|
98
|
-
|
|
127
|
+
intersection(_obj: T[], _callback?: (a: T, b: T) => boolean): T[];
|
|
128
|
+
union(_obj: T[], _mode?: InsertBehaviour): void;
|
|
129
|
+
diff(_obj: T[], _callback?: (a: T, b: T) => boolean): T[];
|
|
130
|
+
set(_obj: T[], _callback?: (a: T, b: T) => boolean): void;
|
|
131
|
+
remove(_obj: T | T[] | ((a: T) => boolean)): T[];
|
|
132
|
+
sync(): Promise<void>;
|
|
133
|
+
populate(): Promise<void>;
|
|
99
134
|
}
|
|
100
135
|
export declare class OneToManyRelationList<T extends ModelBase, O extends ModelBase> extends Relation<T, O> {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
136
|
+
/**
|
|
137
|
+
* Deletes from db data that are not in relation
|
|
138
|
+
*
|
|
139
|
+
* @param data relation data
|
|
140
|
+
* @returns
|
|
141
|
+
*/
|
|
142
|
+
protected _dbDiff(data: T[]): Promise<void>;
|
|
143
|
+
/**
|
|
144
|
+
* Populates this relation ( loads all data related to owner of this relation)
|
|
145
|
+
*/
|
|
146
|
+
populate(callback?: (this: ISelectQueryBuilder<this>) => void): Promise<void>;
|
|
147
|
+
/**
|
|
148
|
+
* Synchronizes relation data to db
|
|
149
|
+
* Deletes from db entries that are not in relation and adds entries that are not in db
|
|
150
|
+
* Sets foreign key to relational data
|
|
151
|
+
*
|
|
152
|
+
* Inserts or updates models that are dirty only.
|
|
153
|
+
*/
|
|
154
|
+
sync(): Promise<void>;
|
|
155
|
+
/**
|
|
156
|
+
* Calculates difference between this relation and dataset ( items from this relation that are not in dataset and items from dataset that are not in this relation)
|
|
157
|
+
*
|
|
158
|
+
* @param dataset
|
|
159
|
+
* @param callback
|
|
160
|
+
* @returns Difference between this relation and dataset
|
|
161
|
+
*/
|
|
162
|
+
diff(dataset: T[], callback?: (a: T, b: T) => boolean): T[];
|
|
163
|
+
/**
|
|
164
|
+
* Sets data in relation ( clear data and replace with new dataset )
|
|
165
|
+
*
|
|
166
|
+
* @param obj
|
|
167
|
+
*/
|
|
168
|
+
set(obj: T[] | ((data: T[], pKey: string) => T[])): void;
|
|
169
|
+
/**
|
|
170
|
+
* Calculates intersection between data in this relation and provided dataset
|
|
171
|
+
*
|
|
172
|
+
* @param obj
|
|
173
|
+
* @param callback compare function, if not set - primary key value is used
|
|
174
|
+
* @returns Data that are in both sets
|
|
175
|
+
*/
|
|
176
|
+
intersection(obj: T[], callback?: (a: T, b: T) => boolean): T[];
|
|
177
|
+
/**
|
|
178
|
+
* Combines data with this relation and saves to db
|
|
179
|
+
* Shorthand for push
|
|
180
|
+
* @param obj
|
|
181
|
+
*/
|
|
182
|
+
union(obj: T[]): void;
|
|
183
|
+
/**
|
|
184
|
+
* Removes from relation & deletes from db
|
|
185
|
+
*
|
|
186
|
+
* @param obj - data to remove
|
|
187
|
+
*/
|
|
188
|
+
remove(func: (a: T) => boolean): T[];
|
|
189
|
+
/**
|
|
190
|
+
* Removes all objects by primary key
|
|
191
|
+
*
|
|
192
|
+
* @param obj - data to remove
|
|
193
|
+
*/
|
|
194
|
+
remove(obj: T | T[]): T[];
|
|
108
195
|
}
|
|
109
196
|
//# sourceMappingURL=relation-objects.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation-objects.d.ts","sourceRoot":"","sources":["../../src/relation-objects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC7I,OAAO,EAAM,WAAW,EAAiB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAuC,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"relation-objects.d.ts","sourceRoot":"","sources":["../../src/relation-objects.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,48 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.OneToManyRelationList = exports.ManyToManyRelationList = exports.SingleRelation = exports.Relation = void 0;
|
|
7
|
-
/* eslint-disable prettier/prettier */
|
|
8
|
-
const interfaces_js_1 = require("./interfaces.js");
|
|
6
|
+
exports.OneToManyRelationList = exports.ManyToManyRelationList = exports.SingleRelation = exports.Relation = exports.Dataset = void 0;
|
|
9
7
|
const di_1 = require("@spinajs/di");
|
|
10
8
|
const builders_js_1 = require("./builders.js");
|
|
11
9
|
const model_js_1 = require("./model.js");
|
|
12
10
|
const orm_js_1 = require("./orm.js");
|
|
13
11
|
const lodash_1 = __importDefault(require("lodash"));
|
|
12
|
+
class Dataset {
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* Calculates difference between data in this relation and provides set. Result is saved to db.
|
|
16
|
+
*
|
|
17
|
+
* @param dataset - data to compare
|
|
18
|
+
* @param callback - function to compare objects, if none provideded - primary key value is used
|
|
19
|
+
*/
|
|
20
|
+
static diff(dataset, callback) {
|
|
21
|
+
return (datasetB, pKey) => {
|
|
22
|
+
// TODO: maybe refactor for speedup, this is not optimal
|
|
23
|
+
// two calls to _.difference is not optimal, but it is easy to implement
|
|
24
|
+
// calculate difference between this data in relation and dataset ( objects from this relation)
|
|
25
|
+
const result = callback ? lodash_1.default.differenceWith(dataset, [...datasetB], callback) : lodash_1.default.differenceBy(dataset, [...datasetB], pKey);
|
|
26
|
+
// calculate difference between dataset and data in this relation ( objects from dataset )
|
|
27
|
+
const result2 = callback ? lodash_1.default.differenceWith([...datasetB], dataset, callback) : lodash_1.default.differenceBy([...datasetB], dataset, pKey);
|
|
28
|
+
// combine difference from two sets
|
|
29
|
+
const finalDiff = [...result, ...result2];
|
|
30
|
+
return finalDiff;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
*
|
|
35
|
+
* Calculates intersection between data in this relation and provided dataset
|
|
36
|
+
* It saves result to db
|
|
37
|
+
*
|
|
38
|
+
* @param dataset - dataset to compare
|
|
39
|
+
* @param callback - function to compare models, if not set it is compared by primary key value
|
|
40
|
+
*/
|
|
41
|
+
static intersection(dataset, callback) {
|
|
42
|
+
return (datasetB, pKey) => {
|
|
43
|
+
return callback ? lodash_1.default.intersectionWith(dataset, [...datasetB], callback) : lodash_1.default.intersectionBy(dataset, [...datasetB], pKey);
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.Dataset = Dataset;
|
|
14
48
|
/**
|
|
15
49
|
* Iterable list of populated relation entities
|
|
16
50
|
*
|
|
@@ -34,28 +68,16 @@ class Relation extends Array {
|
|
|
34
68
|
this.IsModelAForwardRef = !(0, di_1.isConstructor)(this.Model);
|
|
35
69
|
}
|
|
36
70
|
/**
|
|
37
|
-
* Delete all objects from relation
|
|
71
|
+
* Delete all objects from relation ( alias for empty )
|
|
38
72
|
*/
|
|
39
73
|
async clear() {
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
empty() {
|
|
43
|
-
this.length = 0;
|
|
74
|
+
this.empty();
|
|
44
75
|
}
|
|
45
76
|
/**
|
|
46
|
-
*
|
|
77
|
+
* Clears relation data
|
|
47
78
|
*/
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
if (callback) {
|
|
51
|
-
callback.apply(query);
|
|
52
|
-
}
|
|
53
|
-
const result = await query;
|
|
54
|
-
if (result) {
|
|
55
|
-
this.length = 0;
|
|
56
|
-
this.push(...result);
|
|
57
|
-
}
|
|
58
|
-
this.Populated = true;
|
|
79
|
+
empty() {
|
|
80
|
+
this.length = 0;
|
|
59
81
|
}
|
|
60
82
|
}
|
|
61
83
|
exports.Relation = Relation;
|
|
@@ -118,104 +140,115 @@ class ManyToManyRelationList extends Relation {
|
|
|
118
140
|
set(_obj, _callback) {
|
|
119
141
|
throw new Error('Method not implemented.');
|
|
120
142
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
this.andWhere(self.Relation.JunctionModelSourceModelFKey_Name, self.owner.PrimaryKeyValue);
|
|
130
|
-
});
|
|
131
|
-
if (this.Driver.Options.Database) {
|
|
132
|
-
query.database(this.Driver.Options.Database);
|
|
133
|
-
}
|
|
134
|
-
await query;
|
|
135
|
-
lodash_1.default.remove(this, (o) => data.indexOf(o.PrimaryKeyValue) !== -1);
|
|
136
|
-
}
|
|
137
|
-
async add(obj, mode) {
|
|
138
|
-
const data = Array.isArray(obj) ? obj : [obj];
|
|
139
|
-
const relEntities = data.map((d) => {
|
|
140
|
-
const relEntity = new this.Relation.JunctionModel();
|
|
141
|
-
relEntity[this.Relation.JunctionModelSourceModelFKey_Name] = this.owner.PrimaryKeyValue;
|
|
142
|
-
relEntity[this.Relation.JunctionModelTargetModelFKey_Name] = d.PrimaryKeyValue;
|
|
143
|
-
return relEntity;
|
|
144
|
-
});
|
|
145
|
-
for (const m of relEntities) {
|
|
146
|
-
await m.insert(mode);
|
|
147
|
-
}
|
|
148
|
-
this.push(...data);
|
|
143
|
+
remove(_obj) {
|
|
144
|
+
throw new Error('Method not implemented.');
|
|
145
|
+
}
|
|
146
|
+
async sync() {
|
|
147
|
+
throw new Error('Method not implemented.');
|
|
148
|
+
}
|
|
149
|
+
async populate() {
|
|
150
|
+
throw new Error('Method not implemented.');
|
|
149
151
|
}
|
|
150
152
|
}
|
|
151
153
|
exports.ManyToManyRelationList = ManyToManyRelationList;
|
|
152
154
|
class OneToManyRelationList extends Relation {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
155
|
+
/**
|
|
156
|
+
* Deletes from db data that are not in relation
|
|
157
|
+
*
|
|
158
|
+
* @param data relation data
|
|
159
|
+
* @returns
|
|
160
|
+
*/
|
|
161
|
+
async _dbDiff(data) {
|
|
162
|
+
const query = this.Driver
|
|
163
|
+
.del()
|
|
159
164
|
.from(this.TargetModelDescriptor.TableName)
|
|
160
|
-
.
|
|
161
|
-
|
|
162
|
-
this.where(self.Relation.ForeignKey, self.owner.PrimaryKeyValue);
|
|
163
|
-
});
|
|
165
|
+
.where(this.Relation.ForeignKey, this.owner.PrimaryKeyValue);
|
|
166
|
+
const self = this;
|
|
164
167
|
if (this.Driver.Options.Database) {
|
|
165
168
|
query.database(this.Driver.Options.Database);
|
|
166
169
|
}
|
|
170
|
+
// if we have data in relation, we need to exclude them from delete query
|
|
171
|
+
if (data.length !== 0) {
|
|
172
|
+
query.whereNotIn(self.Relation.PrimaryKey, data.filter((x) => x.PrimaryKeyValue).map((x) => x.PrimaryKeyValue));
|
|
173
|
+
}
|
|
167
174
|
await query;
|
|
168
|
-
this.empty();
|
|
169
175
|
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
const
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
await
|
|
176
|
+
/**
|
|
177
|
+
* Populates this relation ( loads all data related to owner of this relation)
|
|
178
|
+
*/
|
|
179
|
+
async populate(callback) {
|
|
180
|
+
const query = this.Relation.TargetModel.where(this.Relation.ForeignKey, this.owner.PrimaryKeyValue);
|
|
181
|
+
if (callback) {
|
|
182
|
+
callback.apply(query);
|
|
183
|
+
}
|
|
184
|
+
const result = await query;
|
|
185
|
+
if (result) {
|
|
186
|
+
this.length = 0;
|
|
187
|
+
this.push(...result);
|
|
188
|
+
}
|
|
189
|
+
this.Populated = true;
|
|
179
190
|
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
191
|
+
/**
|
|
192
|
+
* Synchronizes relation data to db
|
|
193
|
+
* Deletes from db entries that are not in relation and adds entries that are not in db
|
|
194
|
+
* Sets foreign key to relational data
|
|
195
|
+
*
|
|
196
|
+
* Inserts or updates models that are dirty only.
|
|
197
|
+
*/
|
|
198
|
+
async sync() {
|
|
199
|
+
const dirty = this.filter((x) => x.IsDirty || x.PrimaryKeyValue === null);
|
|
200
|
+
this.forEach((d) => {
|
|
201
|
+
d[this.Relation.ForeignKey] = this.owner.PrimaryKeyValue;
|
|
202
|
+
});
|
|
203
|
+
for (const f of dirty) {
|
|
204
|
+
await f.insertOrUpdate();
|
|
205
|
+
}
|
|
206
|
+
await this._dbDiff(this);
|
|
183
207
|
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
208
|
+
/**
|
|
209
|
+
* Calculates difference between this relation and dataset ( items from this relation that are not in dataset and items from dataset that are not in this relation)
|
|
210
|
+
*
|
|
211
|
+
* @param dataset
|
|
212
|
+
* @param callback
|
|
213
|
+
* @returns Difference between this relation and dataset
|
|
214
|
+
*/
|
|
215
|
+
diff(dataset, callback) {
|
|
216
|
+
return Dataset.diff(dataset, callback)([...this], this.TargetModelDescriptor.PrimaryKey);
|
|
188
217
|
}
|
|
189
|
-
|
|
190
|
-
|
|
218
|
+
/**
|
|
219
|
+
* Sets data in relation ( clear data and replace with new dataset )
|
|
220
|
+
*
|
|
221
|
+
* @param obj
|
|
222
|
+
*/
|
|
223
|
+
set(obj) {
|
|
224
|
+
const toPush = lodash_1.default.isFunction(obj) ? obj([...this], this.TargetModelDescriptor.PrimaryKey) : obj;
|
|
225
|
+
this.empty();
|
|
226
|
+
this.push(...toPush);
|
|
191
227
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
d[this.Relation.ForeignKey] = this.owner.PrimaryKeyValue;
|
|
214
|
-
});
|
|
215
|
-
for (const m of tInsert) {
|
|
216
|
-
await m.insertOrUpdate(mode);
|
|
228
|
+
/**
|
|
229
|
+
* Calculates intersection between data in this relation and provided dataset
|
|
230
|
+
*
|
|
231
|
+
* @param obj
|
|
232
|
+
* @param callback compare function, if not set - primary key value is used
|
|
233
|
+
* @returns Data that are in both sets
|
|
234
|
+
*/
|
|
235
|
+
intersection(obj, callback) {
|
|
236
|
+
return Dataset.intersection(obj, callback)([...this], this.TargetModelDescriptor.PrimaryKey);
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Combines data with this relation and saves to db
|
|
240
|
+
* Shorthand for push
|
|
241
|
+
* @param obj
|
|
242
|
+
*/
|
|
243
|
+
union(obj) {
|
|
244
|
+
this.push(...obj);
|
|
245
|
+
}
|
|
246
|
+
remove(obj) {
|
|
247
|
+
if (lodash_1.default.isFunction(obj)) {
|
|
248
|
+
return lodash_1.default.remove(this, obj);
|
|
217
249
|
}
|
|
218
|
-
|
|
250
|
+
const data = (Array.isArray(obj) ? obj : [obj]).map((d) => d.PrimaryKeyValue);
|
|
251
|
+
return lodash_1.default.remove(this, (o) => data.indexOf(o.PrimaryKeyValue) !== -1);
|
|
219
252
|
}
|
|
220
253
|
}
|
|
221
254
|
exports.OneToManyRelationList = OneToManyRelationList;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation-objects.js","sourceRoot":"","sources":["../../src/relation-objects.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"relation-objects.js","sourceRoot":"","sources":["../../src/relation-objects.ts"],"names":[],"mappings":"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"}
|
package/lib/mjs/builders.d.ts
CHANGED
|
@@ -261,6 +261,7 @@ export declare class SelectQueryBuilder<T = any> extends QueryBuilder<T> {
|
|
|
261
261
|
distinct(): this;
|
|
262
262
|
toDB(): ICompilerOutput;
|
|
263
263
|
all(): Promise<T[]>;
|
|
264
|
+
resultExists(): Promise<boolean>;
|
|
264
265
|
then<TResult1 = T, TResult2 = never>(onfulfilled?: (value: T) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>): PromiseLike<TResult1 | TResult2>;
|
|
265
266
|
execute(): Promise<T>;
|
|
266
267
|
}
|