@spinajs/orm 2.0.175 → 2.0.176
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.map +1 -1
- package/lib/cjs/builders.js +9 -14
- package/lib/cjs/builders.js.map +1 -1
- package/lib/cjs/decorators.d.ts +1 -1
- package/lib/cjs/decorators.d.ts.map +1 -1
- package/lib/cjs/decorators.js.map +1 -1
- package/lib/cjs/hydrators.d.ts.map +1 -1
- package/lib/cjs/hydrators.js +3 -3
- package/lib/cjs/hydrators.js.map +1 -1
- package/lib/cjs/index.d.ts +2 -0
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +2 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces.d.ts +10 -2
- package/lib/cjs/interfaces.d.ts.map +1 -1
- package/lib/cjs/interfaces.js.map +1 -1
- package/lib/cjs/middlewares.d.ts +63 -0
- package/lib/cjs/middlewares.d.ts.map +1 -0
- package/lib/cjs/middlewares.js +259 -0
- package/lib/cjs/middlewares.js.map +1 -0
- package/lib/cjs/model.d.ts.map +1 -1
- package/lib/cjs/model.js +6 -5
- package/lib/cjs/model.js.map +1 -1
- package/lib/cjs/orm.d.ts.map +1 -1
- package/lib/cjs/orm.js +14 -8
- package/lib/cjs/orm.js.map +1 -1
- package/lib/cjs/relation-objects.d.ts +109 -0
- package/lib/cjs/relation-objects.d.ts.map +1 -0
- package/lib/cjs/relation-objects.js +222 -0
- package/lib/cjs/relation-objects.js.map +1 -0
- package/lib/cjs/relations.d.ts +24 -158
- package/lib/cjs/relations.d.ts.map +1 -1
- package/lib/cjs/relations.js +50 -500
- package/lib/cjs/relations.js.map +1 -1
- package/lib/cjs/types.d.ts +1 -1
- package/lib/cjs/types.d.ts.map +1 -1
- package/lib/mjs/builders.d.ts.map +1 -1
- package/lib/mjs/builders.js +10 -15
- package/lib/mjs/builders.js.map +1 -1
- package/lib/mjs/decorators.d.ts +1 -1
- package/lib/mjs/decorators.d.ts.map +1 -1
- package/lib/mjs/decorators.js.map +1 -1
- package/lib/mjs/hydrators.d.ts.map +1 -1
- package/lib/mjs/hydrators.js +1 -1
- package/lib/mjs/hydrators.js.map +1 -1
- package/lib/mjs/index.d.ts +2 -0
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +2 -0
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/interfaces.d.ts +10 -2
- package/lib/mjs/interfaces.d.ts.map +1 -1
- package/lib/mjs/interfaces.js.map +1 -1
- package/lib/mjs/middlewares.d.ts +63 -0
- package/lib/mjs/middlewares.d.ts.map +1 -0
- package/lib/mjs/middlewares.js +250 -0
- package/lib/mjs/middlewares.js.map +1 -0
- package/lib/mjs/model.d.ts.map +1 -1
- package/lib/mjs/model.js +2 -1
- package/lib/mjs/model.js.map +1 -1
- package/lib/mjs/orm.d.ts.map +1 -1
- package/lib/mjs/orm.js +14 -8
- package/lib/mjs/orm.js.map +1 -1
- package/lib/mjs/relation-objects.d.ts +109 -0
- package/lib/mjs/relation-objects.d.ts.map +1 -0
- package/lib/mjs/relation-objects.js +212 -0
- package/lib/mjs/relation-objects.js.map +1 -0
- package/lib/mjs/relations.d.ts +24 -158
- package/lib/mjs/relations.d.ts.map +1 -1
- package/lib/mjs/relations.js +48 -487
- package/lib/mjs/relations.js.map +1 -1
- package/lib/mjs/types.d.ts +1 -1
- package/lib/mjs/types.d.ts.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +5 -5
package/lib/mjs/relations.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { IRelationDescriptor, IModelDescriptor,
|
|
2
|
-
import { Constructor } from '@spinajs/di';
|
|
3
|
-
import { SelectQueryBuilder } from './builders.js';
|
|
1
|
+
import { IRelationDescriptor, IModelDescriptor, ForwardRefFunction, ISelectQueryBuilder } from './interfaces.js';
|
|
2
|
+
import { Constructor, Container } from '@spinajs/di';
|
|
4
3
|
import { ModelBase } from './model.js';
|
|
5
|
-
import { IModelBase } from './interfaces.js';
|
|
6
4
|
import { Orm } from './orm.js';
|
|
7
5
|
import { OrmDriver } from './driver.js';
|
|
8
6
|
export interface IOrmRelation {
|
|
@@ -11,186 +9,54 @@ export interface IOrmRelation {
|
|
|
11
9
|
*
|
|
12
10
|
* @param callback - optional callback to perform actions on relations eg. populate more, filter relational data etc.
|
|
13
11
|
*/
|
|
14
|
-
execute(callback?: (this:
|
|
12
|
+
execute(callback?: (this: ISelectQueryBuilder, relation: OrmRelation) => void): void;
|
|
15
13
|
/**
|
|
16
14
|
* Execute actions on relation query, does not initialize relation. Use it only AFTER execute was called.
|
|
17
15
|
*
|
|
18
16
|
* @param callback - execute callback to perform actions on relations eg. populate more, filter relational data etc.
|
|
19
17
|
*/
|
|
20
|
-
executeOnQuery(callback: (this:
|
|
18
|
+
executeOnQuery(callback: (this: ISelectQueryBuilder, relation: OrmRelation) => void): void;
|
|
21
19
|
/**
|
|
22
20
|
* Relation name
|
|
23
21
|
*/
|
|
24
22
|
Name: string;
|
|
25
23
|
}
|
|
26
24
|
export declare abstract class OrmRelation implements IOrmRelation {
|
|
27
|
-
protected
|
|
28
|
-
protected _query:
|
|
29
|
-
_description: IRelationDescriptor;
|
|
25
|
+
protected _container: Container;
|
|
26
|
+
protected _query: ISelectQueryBuilder;
|
|
27
|
+
protected _description: IRelationDescriptor;
|
|
30
28
|
parentRelation?: OrmRelation;
|
|
31
29
|
protected _targetModel: Constructor<ModelBase> | ForwardRefFunction;
|
|
32
30
|
protected _targetModelDescriptor: IModelDescriptor;
|
|
33
|
-
protected _relationQuery:
|
|
31
|
+
protected _relationQuery: ISelectQueryBuilder;
|
|
34
32
|
protected _separator: string;
|
|
33
|
+
protected _driver: OrmDriver;
|
|
35
34
|
Name: string;
|
|
36
35
|
get Alias(): string;
|
|
37
|
-
constructor(
|
|
38
|
-
abstract execute(callback?: (this:
|
|
39
|
-
executeOnQuery(callback: (this:
|
|
40
|
-
}
|
|
41
|
-
export declare class HasManyRelationMiddleware implements IBuilderMiddleware {
|
|
42
|
-
protected _relationQuery: SelectQueryBuilder;
|
|
43
|
-
protected _description: IRelationDescriptor;
|
|
44
|
-
protected _path: string;
|
|
45
|
-
constructor(_relationQuery: SelectQueryBuilder, _description: IRelationDescriptor, _path: string);
|
|
46
|
-
afterQuery(data: any[]): any[];
|
|
47
|
-
modelCreation(_: any): ModelBase;
|
|
48
|
-
afterHydration(data: ModelBase[]): Promise<any[]>;
|
|
49
|
-
}
|
|
50
|
-
export declare class HasManyToManyRelationMiddleware implements IBuilderMiddleware {
|
|
51
|
-
protected _relationQuery: SelectQueryBuilder;
|
|
52
|
-
protected _description: IRelationDescriptor;
|
|
53
|
-
protected _targetModelDescriptor: IModelDescriptor;
|
|
54
|
-
constructor(_relationQuery: SelectQueryBuilder, _description: IRelationDescriptor, _targetModelDescriptor: IModelDescriptor);
|
|
55
|
-
afterQuery(data: any[]): any[];
|
|
56
|
-
modelCreation(_: any): ModelBase;
|
|
57
|
-
afterHydration(data: ModelBase[]): Promise<any[]>;
|
|
58
|
-
private pickProps;
|
|
59
|
-
}
|
|
60
|
-
export declare class DiscriminationMapMiddleware implements IBuilderMiddleware {
|
|
61
|
-
protected _description: IModelDescriptor;
|
|
62
|
-
constructor(_description: IModelDescriptor);
|
|
63
|
-
afterQuery(data: any[]): any[];
|
|
64
|
-
modelCreation(data: any): ModelBase;
|
|
65
|
-
afterHydration(_data: ModelBase[]): Promise<void>;
|
|
36
|
+
constructor(_container: Container, _query: ISelectQueryBuilder, _description: IRelationDescriptor, parentRelation?: OrmRelation);
|
|
37
|
+
abstract execute(callback?: (this: ISelectQueryBuilder, relation: OrmRelation) => void): void;
|
|
38
|
+
executeOnQuery(callback: (this: ISelectQueryBuilder<any>, relation: OrmRelation) => void): void;
|
|
66
39
|
}
|
|
67
40
|
export declare class BelongsToRelation extends OrmRelation {
|
|
68
|
-
constructor(
|
|
69
|
-
execute(callback: (this:
|
|
41
|
+
constructor(_container: Container, _query: ISelectQueryBuilder<any>, _description: IRelationDescriptor, _parentRelation?: OrmRelation);
|
|
42
|
+
execute(callback: (this: ISelectQueryBuilder, relation: OrmRelation) => void): void;
|
|
70
43
|
}
|
|
71
44
|
export declare class BelongsToRecursiveRelation extends OrmRelation {
|
|
72
|
-
constructor(
|
|
73
|
-
execute(callback: (this:
|
|
45
|
+
constructor(_container: Container, _query: ISelectQueryBuilder<any>, _description: IRelationDescriptor, _parentRelation?: OrmRelation);
|
|
46
|
+
execute(callback: (this: ISelectQueryBuilder, relation: OrmRelation) => void): void;
|
|
74
47
|
}
|
|
75
48
|
export declare class OneToManyRelation extends OrmRelation {
|
|
76
|
-
constructor(
|
|
77
|
-
execute(callback?: (this:
|
|
49
|
+
constructor(_container: Container, _query: ISelectQueryBuilder<any>, _description: IRelationDescriptor, _parentRelation?: OrmRelation);
|
|
50
|
+
execute(callback?: (this: ISelectQueryBuilder<any>, relation: OrmRelation) => void): void;
|
|
78
51
|
}
|
|
79
52
|
export declare class ManyToManyRelation extends OrmRelation {
|
|
53
|
+
protected _orm: Orm;
|
|
80
54
|
protected _joinModel: Constructor<ModelBase>;
|
|
81
55
|
protected _joinModelDescriptor: IModelDescriptor;
|
|
82
|
-
protected _joinQuery:
|
|
83
|
-
get TableJoinQuery():
|
|
84
|
-
get RelationQuery():
|
|
85
|
-
constructor(_orm: Orm, _query:
|
|
86
|
-
execute(callback?: (this:
|
|
87
|
-
}
|
|
88
|
-
export interface IRelation {
|
|
89
|
-
TargetModelDescriptor: IModelDescriptor;
|
|
90
|
-
/**
|
|
91
|
-
* Indicates if data was fetched from db
|
|
92
|
-
*/
|
|
93
|
-
Populated: boolean;
|
|
94
|
-
}
|
|
95
|
-
export declare class SingleRelation<R extends IModelBase> implements IRelation {
|
|
96
|
-
protected _owner: ModelBase;
|
|
97
|
-
protected model: Constructor<R> | ForwardRefFunction;
|
|
98
|
-
protected Relation: IRelationDescriptor;
|
|
99
|
-
TargetModelDescriptor: IModelDescriptor;
|
|
100
|
-
protected Orm: Orm;
|
|
101
|
-
Value: R;
|
|
102
|
-
Populated: boolean;
|
|
103
|
-
constructor(_owner: ModelBase, model: Constructor<R> | ForwardRefFunction, Relation: IRelationDescriptor, object?: R);
|
|
104
|
-
set(obj: R): Promise<void>;
|
|
105
|
-
attach(obj: R): void;
|
|
106
|
-
detach(): void;
|
|
107
|
-
remove(): Promise<void>;
|
|
108
|
-
populate(callback?: (this: SelectQueryBuilder<this>) => void): Promise<void>;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Iterable list of populated relation entities
|
|
112
|
-
*
|
|
113
|
-
* It allows to add / remove objects to relation
|
|
114
|
-
*/
|
|
115
|
-
export declare abstract class Relation<R extends ModelBase, O extends ModelBase> extends Array<R> implements IRelation {
|
|
116
|
-
protected owner: O;
|
|
117
|
-
protected Model: Constructor<R> | ForwardRefFunction;
|
|
118
|
-
protected Relation: IRelationDescriptor;
|
|
119
|
-
TargetModelDescriptor: IModelDescriptor;
|
|
120
|
-
protected Orm: Orm;
|
|
121
|
-
Populated: boolean;
|
|
122
|
-
protected Driver: OrmDriver;
|
|
123
|
-
protected IsModelAForwardRef: boolean;
|
|
124
|
-
constructor(owner: O, Model: Constructor<R> | ForwardRefFunction, Relation: IRelationDescriptor, objects?: R[]);
|
|
125
|
-
/**
|
|
126
|
-
* Removes from relation & deletes from db
|
|
127
|
-
*
|
|
128
|
-
* @param obj - data to remove
|
|
129
|
-
*/
|
|
130
|
-
abstract remove(obj: R | R[]): Promise<void>;
|
|
131
|
-
/**
|
|
132
|
-
*
|
|
133
|
-
* Add to relation & saves to db, alias for union, except it can add single element also
|
|
134
|
-
*
|
|
135
|
-
* @param obj - data to add
|
|
136
|
-
*/
|
|
137
|
-
abstract add(obj: R | R[] | Partial<R> | Partial<R>[], mode?: InsertBehaviour): Promise<void>;
|
|
138
|
-
/**
|
|
139
|
-
* Delete all objects from relation
|
|
140
|
-
*/
|
|
141
|
-
clear(): Promise<void>;
|
|
142
|
-
empty(): void;
|
|
143
|
-
/**
|
|
144
|
-
*
|
|
145
|
-
* Calculates intersection between data in this relation and provided dataset
|
|
146
|
-
* It saves result to db
|
|
147
|
-
*
|
|
148
|
-
* @param dataset - dataset to compare
|
|
149
|
-
* @param callback - function to compare models, if not set it is compared by primary key value
|
|
150
|
-
*/
|
|
151
|
-
abstract intersection(dataset: R[], callback?: (a: R, b: R) => boolean): Promise<void>;
|
|
152
|
-
/**
|
|
153
|
-
* Adds all items to this relation & adds to database
|
|
154
|
-
*
|
|
155
|
-
* @param dataset - data to add
|
|
156
|
-
* @param mode - insert mode
|
|
157
|
-
*/
|
|
158
|
-
abstract union(dataset: R[], mode?: InsertBehaviour): Promise<void>;
|
|
159
|
-
/**
|
|
160
|
-
*
|
|
161
|
-
* Calculates difference between data in this relation and provides set. Result is saved to db.
|
|
162
|
-
*
|
|
163
|
-
* @param dataset - data to compare
|
|
164
|
-
* @param callback - function to compare objects, if none provideded - primary key value is used
|
|
165
|
-
*/
|
|
166
|
-
abstract diff(dataset: R[], callback?: (a: R, b: R) => boolean): Promise<void>;
|
|
167
|
-
/**
|
|
168
|
-
*
|
|
169
|
-
* Clears data and replace it with new dataset.
|
|
170
|
-
*
|
|
171
|
-
* @param dataset - data for replace.
|
|
172
|
-
*/
|
|
173
|
-
abstract set(dataset: R[]): Promise<void>;
|
|
174
|
-
/**
|
|
175
|
-
* Populates this relation ( loads all data related to owner of this relation)
|
|
176
|
-
*/
|
|
177
|
-
populate(callback?: (this: SelectQueryBuilder<this>) => void): Promise<void>;
|
|
178
|
-
}
|
|
179
|
-
export declare class ManyToManyRelationList<T extends ModelBase, O extends ModelBase> extends Relation<T, O> {
|
|
180
|
-
intersection(_obj: T[], _callback?: (a: T, b: T) => boolean): Promise<void>;
|
|
181
|
-
union(_obj: T[], _mode?: InsertBehaviour): Promise<void>;
|
|
182
|
-
diff(_obj: T[], _callback?: (a: T, b: T) => boolean): Promise<void>;
|
|
183
|
-
set(_obj: T[], _callback?: (a: T, b: T) => boolean): Promise<void>;
|
|
184
|
-
remove(obj: T | T[]): Promise<void>;
|
|
185
|
-
add(obj: T | T[], mode?: InsertBehaviour): Promise<void>;
|
|
186
|
-
}
|
|
187
|
-
export declare class OneToManyRelationList<T extends ModelBase, O extends ModelBase> extends Relation<T, O> {
|
|
188
|
-
protected deleteRelationData(data: T[]): Promise<void>;
|
|
189
|
-
diff(dataset: T[], callback?: (a: T, b: T) => boolean): Promise<void>;
|
|
190
|
-
set(obj: T[]): Promise<void>;
|
|
191
|
-
intersection(obj: T[], callback?: (a: T, b: T) => boolean): Promise<void>;
|
|
192
|
-
union(obj: T[], mode?: InsertBehaviour): Promise<void>;
|
|
193
|
-
remove(obj: T | T[]): Promise<void>;
|
|
194
|
-
add(obj: T | T[] | Partial<T> | Partial<T>[], mode?: InsertBehaviour): Promise<void>;
|
|
56
|
+
protected _joinQuery: ISelectQueryBuilder;
|
|
57
|
+
get TableJoinQuery(): ISelectQueryBuilder<unknown>;
|
|
58
|
+
get RelationQuery(): ISelectQueryBuilder<unknown>;
|
|
59
|
+
constructor(_container: Container, _orm: Orm, _query: ISelectQueryBuilder<any>, _description: IRelationDescriptor, _parentRelation?: OrmRelation);
|
|
60
|
+
execute(callback?: (this: ISelectQueryBuilder<any>, relation: OrmRelation) => void): void;
|
|
195
61
|
}
|
|
196
62
|
//# sourceMappingURL=relations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../src/relations.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAgB,
|
|
1
|
+
{"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../src/relations.ts"],"names":[],"mappings":"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"}
|