@iamkirbki/database-handler-core 4.0.0 → 4.0.1
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/dist/abstract/Model.d.ts
CHANGED
|
@@ -22,12 +22,15 @@ export default abstract class Model<ModelType extends columnType> {
|
|
|
22
22
|
find(primaryKeyValue: QueryValues): this;
|
|
23
23
|
static findOrFail<ParamterModelType extends Model<columnType>>(this: new () => ParamterModelType, primaryKeyValue: QueryValues): Partial<columnType>;
|
|
24
24
|
findOrFail(primaryKeyValue?: QueryValues): Partial<ModelType> | ModelType;
|
|
25
|
-
|
|
25
|
+
static first<ParamterModelType extends Model<columnType>>(this: new () => ParamterModelType, primaryKeyValue?: string | number): Promise<Partial<columnType> | ParamterModelType>;
|
|
26
|
+
first(primaryKeyValue?: string | number): Promise<Partial<ModelType>>;
|
|
27
|
+
get(): Promise<Partial<ModelType>[]>;
|
|
28
|
+
static all<ParamterModelType extends Model<columnType>>(this: new () => ParamterModelType): Promise<Partial<columnType>[]>;
|
|
29
|
+
all(): Promise<Partial<ModelType>[]>;
|
|
26
30
|
static set<ParamterModelType extends Model<columnType>>(this: new () => ParamterModelType, attributes: Partial<columnType>): ParamterModelType;
|
|
27
31
|
set(attributes: Partial<ModelType>): this;
|
|
28
32
|
save(): this;
|
|
29
33
|
update(attributes: Partial<ModelType>): this;
|
|
30
|
-
all(): Promise<Partial<ModelType>[]>;
|
|
31
34
|
protected joinedEntities: string[];
|
|
32
35
|
protected relations: relation[];
|
|
33
36
|
get JoinedEntities(): string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../src/abstract/Model.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEtG,+DAA+D;AAC/D,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,KAAK,CAAC,SAAS,SAAS,UAAU;IAC5D,OAAO,CAAC,WAAW,CAAC,CAA0C;IAE9D,SAAS,KAAK,UAAU,IAAI,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAQlE;IAED,SAAS,CAAC,aAAa,EAAE,WAAW,CASlC;IAEF,IAAW,aAAa,IAAI,WAAW,CAEtC;IAED,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAC,SAAS,CAAC,CAAM;IACtD,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAM;IAC9C,SAAS,CAAC,MAAM,EAAE,OAAO,CAAS;IAClC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAS;IACjC,SAAS,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC;IAEvC,IAAW,gBAAgB,IAAI,MAAM,CAEpC;IAED,IAAW,UAAU,IAAI,WAAW,GAAG,SAAS,CAE/C;IAED,IAAW,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAElD;WAEa,KAAK,CAAC,iBAAiB,SAAS,KAAK,CAAC,UAAU,CAAC,EAC3D,IAAI,EAAE,UAAU,iBAAiB,EACjC,UAAU,EAAE,cAAc,GAC3B,iBAAiB;IAKb,KAAK,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI;WAKhC,OAAO,CAAC,iBAAiB,SAAS,KAAK,CAAC,UAAU,CAAC,EAC7D,IAAI,EAAE,UAAU,iBAAiB,EACjC,EAAE,EAAE,WAAW,GAChB,iBAAiB;IAKb,OAAO,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;WAKvB,IAAI,CAAC,iBAAiB,SAAS,KAAK,CAAC,UAAU,CAAC,EAC1D,IAAI,EAAE,UAAU,iBAAiB,EACjC,eAAe,EAAE,WAAW,GAC7B,iBAAiB;IAKb,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,IAAI;WAKjC,UAAU,CAAC,iBAAiB,SAAS,KAAK,CAAC,UAAU,CAAC,EAChE,IAAI,EAAE,UAAU,iBAAiB,EACjC,eAAe,EAAE,WAAW,GAC7B,OAAO,CAAC,UAAU,CAAC;IAKf,UAAU,CAAC,eAAe,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../src/abstract/Model.ts"],"names":[],"mappings":"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"}
|
package/dist/abstract/Model.js
CHANGED
|
@@ -80,7 +80,7 @@ export default class Model {
|
|
|
80
80
|
this.queryScopes = { [this.primaryKeyColumn]: primaryKeyValue };
|
|
81
81
|
}
|
|
82
82
|
const query = this.queryScopes || {};
|
|
83
|
-
(_a = this.repository) === null || _a === void 0 ? void 0 : _a.
|
|
83
|
+
(_a = this.repository) === null || _a === void 0 ? void 0 : _a.first(query, this).then((record) => {
|
|
84
84
|
if (!record) {
|
|
85
85
|
throw new Error(`Record with primary key ${primaryKeyValue} not found.`);
|
|
86
86
|
}
|
|
@@ -88,13 +88,31 @@ export default class Model {
|
|
|
88
88
|
});
|
|
89
89
|
return this.attributes;
|
|
90
90
|
}
|
|
91
|
-
|
|
91
|
+
static first(primaryKeyValue) {
|
|
92
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
93
|
+
const instance = new this();
|
|
94
|
+
return instance.first(primaryKeyValue);
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
first(primaryKeyValue) {
|
|
92
98
|
return __awaiter(this, void 0, void 0, function* () {
|
|
93
99
|
var _a;
|
|
94
|
-
this.attributes = (yield ((_a = this.repository) === null || _a === void 0 ? void 0 : _a.
|
|
100
|
+
this.attributes = (yield ((_a = this.repository) === null || _a === void 0 ? void 0 : _a.first(primaryKeyValue ? { [this.configuration.primaryKey]: primaryKeyValue } : {}, this)));
|
|
95
101
|
return this.attributes;
|
|
96
102
|
});
|
|
97
103
|
}
|
|
104
|
+
get() {
|
|
105
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
106
|
+
return this.repository.get(this.queryScopes || {}, this);
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
static all() {
|
|
110
|
+
const instance = new this();
|
|
111
|
+
return instance.all();
|
|
112
|
+
}
|
|
113
|
+
all() {
|
|
114
|
+
return this.repository.all(this);
|
|
115
|
+
}
|
|
98
116
|
static set(attributes) {
|
|
99
117
|
const instance = new this();
|
|
100
118
|
return instance.set(attributes);
|
|
@@ -108,8 +126,8 @@ export default class Model {
|
|
|
108
126
|
return this;
|
|
109
127
|
}
|
|
110
128
|
save() {
|
|
111
|
-
this.repository.save(this.attributes, this.originalAttributes);
|
|
112
129
|
this.originalAttributes = Object.assign(Object.assign({}, this.originalAttributes), this.attributes);
|
|
130
|
+
this.repository.save(this.originalAttributes);
|
|
113
131
|
this.exists = true;
|
|
114
132
|
this.dirty = false;
|
|
115
133
|
return this;
|
|
@@ -122,9 +140,6 @@ export default class Model {
|
|
|
122
140
|
(_a = this.repository) === null || _a === void 0 ? void 0 : _a.update(attributes);
|
|
123
141
|
return this;
|
|
124
142
|
}
|
|
125
|
-
all() {
|
|
126
|
-
return this.repository.all(this);
|
|
127
|
-
}
|
|
128
143
|
get JoinedEntities() {
|
|
129
144
|
return this.joinedEntities;
|
|
130
145
|
}
|
|
@@ -8,10 +8,11 @@ export default class Repository<Type extends columnType, ModelType extends Model
|
|
|
8
8
|
static getInstance<ModelType extends columnType>(ModelClass: new () => Model<ModelType>, tableName: string): Repository<ModelType, Model<ModelType>>;
|
|
9
9
|
syncModel(model: ModelType): void;
|
|
10
10
|
getModel(name: string): ModelType;
|
|
11
|
-
save(attributes:
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
save(attributes: Type): Promise<void>;
|
|
12
|
+
first(conditions: QueryCondition, Model: Model<Type>): Promise<Type | null>;
|
|
13
|
+
get(conditions: QueryCondition, Model: Model<Type>): Promise<Type[]>;
|
|
14
14
|
all(Model: Model<Type>): Promise<Type[]>;
|
|
15
|
+
update(attributes: Partial<Type>): Promise<this>;
|
|
15
16
|
private join;
|
|
16
17
|
}
|
|
17
18
|
//# sourceMappingURL=Repository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Repository.d.ts","sourceRoot":"","sources":["../../src/runtime/Repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAQ,cAAc,
|
|
1
|
+
{"version":3,"file":"Repository.d.ts","sourceRoot":"","sources":["../../src/runtime/Repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAQ,cAAc,EAA0B,MAAM,mBAAmB,CAAC;AAE7F,MAAM,CAAC,OAAO,OAAO,UAAU,CAAC,IAAI,SAAS,UAAU,EAAE,SAAS,SAAS,KAAK,CAAC,IAAI,CAAC;IAClF,OAAO,CAAC,MAAM,CAAC,UAAU,CAAqE;IAC9F,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,KAAK,CAAO;gBAER,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS;WAMtC,WAAW,CAAC,SAAS,SAAS,UAAU,EAClD,UAAU,EAAE,UAAU,KAAK,CAAC,SAAS,CAAC,EACtC,SAAS,EAAE,MAAM,GAClB,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAWnC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAKjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IAI3B,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrC,KAAK,CAAC,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAW3E,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAQpE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAQxC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAe/C,IAAI;CAoBrB"}
|
|
@@ -33,17 +33,16 @@ class Repository {
|
|
|
33
33
|
getModel(name) {
|
|
34
34
|
return this.models.get(name);
|
|
35
35
|
}
|
|
36
|
-
save(attributes
|
|
36
|
+
save(attributes) {
|
|
37
37
|
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
-
|
|
39
|
-
yield this.Table.Insert(dataToSave);
|
|
38
|
+
yield this.Table.Insert(attributes);
|
|
40
39
|
});
|
|
41
40
|
}
|
|
42
|
-
|
|
41
|
+
first(conditions, Model) {
|
|
43
42
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
43
|
let record;
|
|
45
44
|
if (Model.JoinedEntities.length > 0) {
|
|
46
|
-
record = yield this.join(Model, conditions);
|
|
45
|
+
record = yield this.join(Model, conditions, { limit: 1 }).then(results => results[0]);
|
|
47
46
|
}
|
|
48
47
|
else {
|
|
49
48
|
record = yield this.Table.Record({ where: conditions });
|
|
@@ -51,20 +50,14 @@ class Repository {
|
|
|
51
50
|
return record ? record.values : null;
|
|
52
51
|
});
|
|
53
52
|
}
|
|
54
|
-
|
|
53
|
+
get(conditions, Model) {
|
|
55
54
|
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
if (pkValue) {
|
|
59
|
-
const record = yield this.Table.Record({ where: { [primaryKey]: pkValue } });
|
|
60
|
-
if (record) {
|
|
61
|
-
yield record.Update(attributes);
|
|
62
|
-
}
|
|
55
|
+
if (Model.JoinedEntities.length > 0) {
|
|
56
|
+
return yield this.join(Model, conditions);
|
|
63
57
|
}
|
|
64
58
|
else {
|
|
65
|
-
|
|
59
|
+
return yield this.Table.Records({ where: conditions }).then(records => records.map(record => record.values));
|
|
66
60
|
}
|
|
67
|
-
return this;
|
|
68
61
|
});
|
|
69
62
|
}
|
|
70
63
|
all(Model) {
|
|
@@ -77,7 +70,23 @@ class Repository {
|
|
|
77
70
|
}
|
|
78
71
|
});
|
|
79
72
|
}
|
|
80
|
-
|
|
73
|
+
update(attributes) {
|
|
74
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
75
|
+
const primaryKey = this.models.values().next().value.Configuration.primaryKey;
|
|
76
|
+
const pkValue = attributes[primaryKey];
|
|
77
|
+
if (pkValue) {
|
|
78
|
+
const record = yield this.Table.Record({ where: { [primaryKey]: pkValue } });
|
|
79
|
+
if (record) {
|
|
80
|
+
yield record.Update(attributes);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
throw new Error("Primary key value is required for update.");
|
|
85
|
+
}
|
|
86
|
+
return this;
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
join(Model, conditions, queryOptions) {
|
|
81
90
|
return __awaiter(this, void 0, void 0, function* () {
|
|
82
91
|
const Join = Model.JoinedEntities.map(join => {
|
|
83
92
|
const relation = Model.Relations.find(rel => rel.model.Configuration.table.toLowerCase() === join.toLowerCase());
|
|
@@ -93,7 +102,7 @@ class Repository {
|
|
|
93
102
|
]
|
|
94
103
|
};
|
|
95
104
|
});
|
|
96
|
-
return (yield this.Table.Join(Join, { where: conditions })).map(record => record.values);
|
|
105
|
+
return (yield this.Table.Join(Join, Object.assign({ where: conditions }, queryOptions))).map(record => record.values);
|
|
97
106
|
});
|
|
98
107
|
}
|
|
99
108
|
}
|