@decaf-ts/core 0.7.2 → 0.7.4
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/README.md +6 -1
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/lib/esm/identity/decorators.d.ts +3 -4
- package/lib/esm/identity/decorators.js +5 -11
- package/lib/esm/identity/decorators.js.map +1 -1
- package/lib/esm/identity/index.d.ts +0 -1
- package/lib/esm/identity/index.js +0 -1
- package/lib/esm/identity/index.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/interfaces/ContextuallyLogged.d.ts +8 -0
- package/lib/esm/interfaces/ContextuallyLogged.js +2 -0
- package/lib/esm/interfaces/ContextuallyLogged.js.map +1 -0
- package/lib/esm/interfaces/ErrorParser.d.ts +2 -2
- package/lib/esm/interfaces/Executor.d.ts +1 -1
- package/lib/esm/interfaces/Observable.d.ts +8 -8
- package/lib/esm/interfaces/Observer.d.ts +2 -2
- package/lib/esm/interfaces/RawExecutor.d.ts +1 -1
- package/lib/esm/model/BaseModel.d.ts +2 -2
- package/lib/esm/model/BaseModel.js +2 -2
- package/lib/esm/{ram/model/RamSequenceModel.d.ts → model/SequenceModel.d.ts} +3 -3
- package/lib/esm/{ram/model/RamSequenceModel.js → model/SequenceModel.js} +12 -11
- package/lib/esm/model/SequenceModel.js.map +1 -0
- package/lib/esm/model/construction.d.ts +9 -8
- package/lib/esm/model/construction.js +2 -2
- package/lib/esm/model/construction.js.map +1 -1
- package/lib/esm/model/decorators.d.ts +5 -4
- package/lib/esm/model/decorators.js +3 -3
- package/lib/esm/model/decorators.js.map +1 -1
- package/lib/esm/model/index.d.ts +1 -0
- package/lib/esm/model/index.js +1 -0
- package/lib/esm/model/index.js.map +1 -1
- package/lib/esm/overrides/Metadata.d.ts +1 -8
- package/lib/esm/overrides/Model.d.ts +75 -0
- package/lib/esm/overrides/Model.js +2 -0
- package/lib/esm/overrides/Model.js.map +1 -0
- package/lib/esm/overrides/index.d.ts +2 -0
- package/lib/esm/overrides/index.js +2 -0
- package/lib/esm/overrides/index.js.map +1 -1
- package/lib/esm/overrides/injectables.d.ts +10 -0
- package/lib/esm/overrides/injectables.js +2 -0
- package/lib/esm/overrides/injectables.js.map +1 -0
- package/lib/esm/overrides/overrides.js +45 -3
- package/lib/esm/overrides/overrides.js.map +1 -1
- package/lib/esm/persistence/Adapter.d.ts +55 -53
- package/lib/esm/persistence/Adapter.js +85 -61
- package/lib/esm/persistence/Adapter.js.map +1 -1
- package/lib/esm/persistence/Dispatch.d.ts +7 -6
- package/lib/esm/persistence/Dispatch.js +25 -18
- package/lib/esm/persistence/Dispatch.js.map +1 -1
- package/lib/esm/persistence/ObserverHandler.d.ts +7 -6
- package/lib/esm/persistence/ObserverHandler.js +5 -4
- package/lib/esm/persistence/ObserverHandler.js.map +1 -1
- package/lib/esm/persistence/Sequence.d.ts +34 -25
- package/lib/esm/persistence/Sequence.js +136 -15
- package/lib/esm/persistence/Sequence.js.map +1 -1
- package/lib/esm/persistence/constants.d.ts +1 -0
- package/lib/esm/persistence/constants.js +1 -0
- package/lib/esm/persistence/constants.js.map +1 -1
- package/lib/esm/persistence/generators.d.ts +14 -0
- package/lib/esm/persistence/generators.js +31 -0
- package/lib/esm/persistence/generators.js.map +1 -0
- package/lib/esm/persistence/index.d.ts +1 -0
- package/lib/esm/persistence/index.js +1 -0
- package/lib/esm/persistence/index.js.map +1 -1
- package/lib/esm/persistence/migrations.d.ts +8 -8
- package/lib/esm/persistence/migrations.js +8 -9
- package/lib/esm/persistence/migrations.js.map +1 -1
- package/lib/esm/persistence/types.d.ts +38 -20
- package/lib/esm/query/Paginator.d.ts +6 -5
- package/lib/esm/query/Paginator.js +4 -4
- package/lib/esm/query/Paginator.js.map +1 -1
- package/lib/esm/query/Statement.d.ts +9 -8
- package/lib/esm/query/Statement.js +23 -10
- package/lib/esm/query/Statement.js.map +1 -1
- package/lib/esm/ram/RamAdapter.d.ts +22 -31
- package/lib/esm/ram/RamAdapter.js +36 -34
- package/lib/esm/ram/RamAdapter.js.map +1 -1
- package/lib/esm/ram/RamPaginator.d.ts +2 -1
- package/lib/esm/ram/RamPaginator.js +5 -3
- package/lib/esm/ram/RamPaginator.js.map +1 -1
- package/lib/esm/ram/RamStatement.d.ts +7 -7
- package/lib/esm/ram/RamStatement.js.map +1 -1
- package/lib/esm/ram/handlers.d.ts +3 -4
- package/lib/esm/ram/handlers.js.map +1 -1
- package/lib/esm/ram/index.d.ts +0 -3
- package/lib/esm/ram/index.js +0 -3
- package/lib/esm/ram/index.js.map +1 -1
- package/lib/esm/ram/types.d.ts +4 -12
- package/lib/esm/repository/Repository.d.ts +31 -95
- package/lib/esm/repository/Repository.js +107 -203
- package/lib/esm/repository/Repository.js.map +1 -1
- package/lib/esm/repository/decorators.js +4 -3
- package/lib/esm/repository/decorators.js.map +1 -1
- package/lib/esm/repository/utils.d.ts +1 -1
- package/lib/esm/repository/utils.js +2 -3
- package/lib/esm/repository/utils.js.map +1 -1
- package/lib/esm/utils/ContextualLoggedClass.d.ts +16 -0
- package/lib/esm/utils/ContextualLoggedClass.js +29 -0
- package/lib/esm/utils/ContextualLoggedClass.js.map +1 -0
- package/lib/esm/utils/Services.d.ts +50 -0
- package/lib/esm/utils/Services.js +154 -0
- package/lib/esm/utils/Services.js.map +1 -0
- package/lib/esm/utils/decorators.d.ts +1 -9
- package/lib/esm/utils/decorators.js +26 -15
- package/lib/esm/utils/decorators.js.map +1 -1
- package/lib/esm/utils/index.d.ts +2 -1
- package/lib/esm/utils/index.js +2 -1
- package/lib/esm/utils/index.js.map +1 -1
- package/lib/identity/decorators.cjs +5 -11
- package/lib/identity/decorators.d.ts +3 -4
- package/lib/identity/decorators.js.map +1 -1
- package/lib/identity/index.cjs +0 -1
- package/lib/identity/index.d.ts +0 -1
- package/lib/identity/index.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/interfaces/ContextuallyLogged.cjs +3 -0
- package/lib/interfaces/ContextuallyLogged.d.ts +8 -0
- package/lib/interfaces/ContextuallyLogged.js.map +1 -0
- package/lib/interfaces/ErrorParser.d.ts +2 -2
- package/lib/interfaces/Executor.d.ts +1 -1
- package/lib/interfaces/Observable.d.ts +8 -8
- package/lib/interfaces/Observer.d.ts +2 -2
- package/lib/interfaces/RawExecutor.d.ts +1 -1
- package/lib/model/BaseModel.cjs +2 -2
- package/lib/model/BaseModel.d.ts +2 -2
- package/lib/{ram/model/RamSequenceModel.cjs → model/SequenceModel.cjs} +14 -13
- package/lib/{ram/model/RamSequenceModel.d.ts → model/SequenceModel.d.ts} +3 -3
- package/lib/model/SequenceModel.js.map +1 -0
- package/lib/model/construction.cjs +2 -2
- package/lib/model/construction.d.ts +9 -8
- package/lib/model/construction.js.map +1 -1
- package/lib/model/decorators.cjs +3 -3
- package/lib/model/decorators.d.ts +5 -4
- package/lib/model/decorators.js.map +1 -1
- package/lib/model/index.cjs +1 -0
- package/lib/model/index.d.ts +1 -0
- package/lib/model/index.js.map +1 -1
- package/lib/overrides/Metadata.d.ts +1 -8
- package/lib/overrides/Model.cjs +4 -0
- package/lib/overrides/Model.d.ts +75 -0
- package/lib/overrides/Model.js.map +1 -0
- package/lib/overrides/index.cjs +2 -0
- package/lib/overrides/index.d.ts +2 -0
- package/lib/overrides/index.js.map +1 -1
- package/lib/overrides/injectables.cjs +4 -0
- package/lib/overrides/injectables.d.ts +10 -0
- package/lib/overrides/injectables.js.map +1 -0
- package/lib/overrides/overrides.cjs +43 -1
- package/lib/overrides/overrides.js.map +1 -1
- package/lib/persistence/Adapter.cjs +90 -66
- package/lib/persistence/Adapter.d.ts +55 -53
- package/lib/persistence/Adapter.js.map +1 -1
- package/lib/persistence/Dispatch.cjs +25 -18
- package/lib/persistence/Dispatch.d.ts +7 -6
- package/lib/persistence/Dispatch.js.map +1 -1
- package/lib/persistence/ObserverHandler.cjs +5 -4
- package/lib/persistence/ObserverHandler.d.ts +7 -6
- package/lib/persistence/ObserverHandler.js.map +1 -1
- package/lib/persistence/Sequence.cjs +136 -15
- package/lib/persistence/Sequence.d.ts +34 -25
- package/lib/persistence/Sequence.js.map +1 -1
- package/lib/persistence/constants.cjs +1 -0
- package/lib/persistence/constants.d.ts +1 -0
- package/lib/persistence/constants.js.map +1 -1
- package/lib/persistence/generators.cjs +36 -0
- package/lib/persistence/generators.d.ts +14 -0
- package/lib/persistence/generators.js.map +1 -0
- package/lib/persistence/index.cjs +1 -0
- package/lib/persistence/index.d.ts +1 -0
- package/lib/persistence/index.js.map +1 -1
- package/lib/persistence/migrations.cjs +7 -8
- package/lib/persistence/migrations.d.ts +8 -8
- package/lib/persistence/migrations.js.map +1 -1
- package/lib/persistence/types.d.ts +38 -20
- package/lib/query/Paginator.cjs +4 -4
- package/lib/query/Paginator.d.ts +6 -5
- package/lib/query/Paginator.js.map +1 -1
- package/lib/query/Statement.cjs +34 -21
- package/lib/query/Statement.d.ts +9 -8
- package/lib/query/Statement.js.map +1 -1
- package/lib/ram/RamAdapter.cjs +35 -33
- package/lib/ram/RamAdapter.d.ts +22 -31
- package/lib/ram/RamAdapter.js.map +1 -1
- package/lib/ram/RamPaginator.cjs +5 -3
- package/lib/ram/RamPaginator.d.ts +2 -1
- package/lib/ram/RamPaginator.js.map +1 -1
- package/lib/ram/RamStatement.d.ts +7 -7
- package/lib/ram/RamStatement.js.map +1 -1
- package/lib/ram/handlers.d.ts +3 -4
- package/lib/ram/handlers.js.map +1 -1
- package/lib/ram/index.cjs +0 -3
- package/lib/ram/index.d.ts +0 -3
- package/lib/ram/index.js.map +1 -1
- package/lib/ram/types.d.ts +4 -12
- package/lib/repository/Repository.cjs +108 -204
- package/lib/repository/Repository.d.ts +31 -95
- package/lib/repository/Repository.js.map +1 -1
- package/lib/repository/decorators.cjs +2 -1
- package/lib/repository/decorators.js.map +1 -1
- package/lib/repository/utils.cjs +2 -3
- package/lib/repository/utils.d.ts +1 -1
- package/lib/repository/utils.js.map +1 -1
- package/lib/utils/ContextualLoggedClass.cjs +33 -0
- package/lib/utils/ContextualLoggedClass.d.ts +16 -0
- package/lib/utils/ContextualLoggedClass.js.map +1 -0
- package/lib/utils/Services.cjs +159 -0
- package/lib/utils/Services.d.ts +50 -0
- package/lib/utils/Services.js.map +1 -0
- package/lib/utils/decorators.cjs +27 -16
- package/lib/utils/decorators.d.ts +1 -9
- package/lib/utils/decorators.js.map +1 -1
- package/lib/utils/index.cjs +2 -1
- package/lib/utils/index.d.ts +2 -1
- package/lib/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/lib/esm/identity/utils.d.ts +0 -24
- package/lib/esm/identity/utils.js +0 -44
- package/lib/esm/identity/utils.js.map +0 -1
- package/lib/esm/ram/RamContext.d.ts +0 -28
- package/lib/esm/ram/RamContext.js +0 -30
- package/lib/esm/ram/RamContext.js.map +0 -1
- package/lib/esm/ram/RamSequence.d.ts +0 -75
- package/lib/esm/ram/RamSequence.js +0 -145
- package/lib/esm/ram/RamSequence.js.map +0 -1
- package/lib/esm/ram/model/RamSequenceModel.js.map +0 -1
- package/lib/esm/ram/model/index.d.ts +0 -1
- package/lib/esm/ram/model/index.js +0 -2
- package/lib/esm/ram/model/index.js.map +0 -1
- package/lib/identity/utils.cjs +0 -49
- package/lib/identity/utils.d.ts +0 -24
- package/lib/identity/utils.js.map +0 -1
- package/lib/ram/RamContext.cjs +0 -34
- package/lib/ram/RamContext.d.ts +0 -28
- package/lib/ram/RamContext.js.map +0 -1
- package/lib/ram/RamSequence.cjs +0 -149
- package/lib/ram/RamSequence.d.ts +0 -75
- package/lib/ram/RamSequence.js.map +0 -1
- package/lib/ram/model/RamSequenceModel.js.map +0 -1
- package/lib/ram/model/index.cjs +0 -18
- package/lib/ram/model/index.d.ts +0 -1
- package/lib/ram/model/index.js.map +0 -1
|
@@ -7,16 +7,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
import { Context, DefaultSeparator, enforceDBDecorators, InternalError, ValidationError, OperationKeys, Repository as Rep, wrapMethodWithContext,
|
|
10
|
+
import { Context, DefaultSeparator, enforceDBDecorators, InternalError, ValidationError, OperationKeys, Repository as Rep, wrapMethodWithContext, reduceErrorsToPrint, } from "@decaf-ts/db-decorators";
|
|
11
11
|
import { Adapter } from "./../persistence/Adapter.js";
|
|
12
12
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
13
13
|
import { PersistenceKeys } from "./../persistence/constants.js";
|
|
14
14
|
import { OrderDirection } from "./constants.js";
|
|
15
|
-
import { Sequence } from "./../persistence/Sequence.js";
|
|
16
15
|
import { Condition } from "./../query/Condition.js";
|
|
17
|
-
import { getColumnName, getTableName } from "./../identity/utils.js";
|
|
18
16
|
import { ObserverHandler } from "./../persistence/ObserverHandler.js";
|
|
19
|
-
import { final } from "
|
|
17
|
+
import { final } from "@decaf-ts/logging";
|
|
20
18
|
import { DecorationKeys, DefaultFlavour, Metadata, uses, } from "@decaf-ts/decoration";
|
|
21
19
|
/**
|
|
22
20
|
* @description Core repository implementation for database operations on models on a table by table way.
|
|
@@ -102,13 +100,14 @@ export class Repository extends Rep {
|
|
|
102
100
|
*/
|
|
103
101
|
get tableName() {
|
|
104
102
|
if (!this._tableName)
|
|
105
|
-
this._tableName =
|
|
103
|
+
this._tableName = Model.tableName(this.class);
|
|
106
104
|
return this._tableName;
|
|
107
105
|
}
|
|
108
106
|
/**
|
|
109
107
|
* @description Primary key properties for this repository's model.
|
|
110
108
|
* @summary Gets the sequence options containing primary key information.
|
|
111
109
|
* @return {SequenceOptions} The primary key properties.
|
|
110
|
+
* @deprecated for Model.sequenceFor(class)
|
|
112
111
|
*/
|
|
113
112
|
get pkProps() {
|
|
114
113
|
return super.pkProps;
|
|
@@ -122,17 +121,6 @@ export class Repository extends Rep {
|
|
|
122
121
|
if (clazz) {
|
|
123
122
|
Repository.register(clazz, this, this.adapter.alias);
|
|
124
123
|
if (adapter) {
|
|
125
|
-
// const flavour = Metadata.flavourOf(clazz);
|
|
126
|
-
// if (
|
|
127
|
-
// flavour &&
|
|
128
|
-
// flavour !== DefaultFlavour &&
|
|
129
|
-
// flavour !== adapter.flavour
|
|
130
|
-
// ) {
|
|
131
|
-
// this.log.warn(
|
|
132
|
-
// `Incompatible flavours detected between adapter (${adapter.flavour}) and model (${flavour})`
|
|
133
|
-
// );
|
|
134
|
-
// // throw new InternalError("Incompatible flavours");
|
|
135
|
-
// }
|
|
136
124
|
const flavour = Metadata.get(clazz, DecorationKeys.FLAVOUR);
|
|
137
125
|
if (flavour === DefaultFlavour) {
|
|
138
126
|
uses(adapter.flavour)(clazz);
|
|
@@ -144,6 +132,9 @@ export class Repository extends Rep {
|
|
|
144
132
|
wrapMethodWithContext(this, this[name + "Prefix"], m, this[name + "Suffix"]);
|
|
145
133
|
});
|
|
146
134
|
}
|
|
135
|
+
logCtx(args, method) {
|
|
136
|
+
return Adapter.logCtx(args, method);
|
|
137
|
+
}
|
|
147
138
|
/**
|
|
148
139
|
* @description Creates a proxy with overridden repository flags.
|
|
149
140
|
* @summary Returns a proxy of this repository with the specified flags overridden.
|
|
@@ -151,9 +142,6 @@ export class Repository extends Rep {
|
|
|
151
142
|
* @return {Repository} A proxy of this repository with overridden flags.
|
|
152
143
|
*/
|
|
153
144
|
override(flags) {
|
|
154
|
-
this.log
|
|
155
|
-
.for(this.override)
|
|
156
|
-
.debug(`Overriding repository flags with ${JSON.stringify(flags)}`);
|
|
157
145
|
return new Proxy(this, {
|
|
158
146
|
get: (target, p, receiver) => {
|
|
159
147
|
const result = Reflect.get(target, p, receiver);
|
|
@@ -205,11 +193,16 @@ export class Repository extends Rep {
|
|
|
205
193
|
*/
|
|
206
194
|
async createPrefix(model, ...args) {
|
|
207
195
|
const contextArgs = await Context.args(OperationKeys.CREATE, this.class, args, this.adapter, this._overrides || {});
|
|
196
|
+
const shouldRunHandlers = contextArgs.context.get("ignoreHandlers") !== false;
|
|
197
|
+
const shouldValidate = !contextArgs.context.get("ignoreValidation");
|
|
208
198
|
model = new this.class(model);
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
if (
|
|
212
|
-
|
|
199
|
+
if (shouldRunHandlers)
|
|
200
|
+
await enforceDBDecorators(this, contextArgs.context, model, OperationKeys.CREATE, OperationKeys.ON);
|
|
201
|
+
if (shouldValidate) {
|
|
202
|
+
const errors = await Promise.resolve(model.hasErrors(...(contextArgs.context.get("ignoredValidationProperties") || [])));
|
|
203
|
+
if (errors)
|
|
204
|
+
throw new ValidationError(errors.toString());
|
|
205
|
+
}
|
|
213
206
|
return [model, ...contextArgs.args];
|
|
214
207
|
}
|
|
215
208
|
/**
|
|
@@ -220,13 +213,12 @@ export class Repository extends Rep {
|
|
|
220
213
|
* @return {Promise<M>} The created model with updated properties.
|
|
221
214
|
*/
|
|
222
215
|
async create(model, ...args) {
|
|
216
|
+
const { ctx, log, ctxArgs } = this.logCtx(args, this.create);
|
|
217
|
+
log.debug(`Creating new ${this.class.name} in table ${Model.tableName(this.class)}`);
|
|
223
218
|
// eslint-disable-next-line prefer-const
|
|
224
|
-
let { record, id, transient } = this.adapter.prepare(model,
|
|
225
|
-
record = await this.adapter.create(this.
|
|
226
|
-
|
|
227
|
-
if (args.length)
|
|
228
|
-
c = args[args.length - 1];
|
|
229
|
-
return this.adapter.revert(record, this.class, this.pk, id, c && c.get("rebuildWithTransient") ? transient : undefined);
|
|
219
|
+
let { record, id, transient } = this.adapter.prepare(model, ctx);
|
|
220
|
+
record = await this.adapter.create(this.class, id, record, ...ctxArgs);
|
|
221
|
+
return this.adapter.revert(record, this.class, id, transient, ctx);
|
|
230
222
|
}
|
|
231
223
|
/**
|
|
232
224
|
* @description Post-creation hook.
|
|
@@ -248,11 +240,13 @@ export class Repository extends Rep {
|
|
|
248
240
|
async createAll(models, ...args) {
|
|
249
241
|
if (!models.length)
|
|
250
242
|
return models;
|
|
251
|
-
const
|
|
243
|
+
const { ctx, log, ctxArgs } = this.logCtx(args, this.createAll);
|
|
244
|
+
log.debug(`Creating ${models.length} new ${this.class.name} in table ${Model.tableName(this.class)}`);
|
|
245
|
+
const prepared = models.map((m) => this.adapter.prepare(m, ctx));
|
|
252
246
|
const ids = prepared.map((p) => p.id);
|
|
253
247
|
let records = prepared.map((p) => p.record);
|
|
254
|
-
records = await this.adapter.createAll(this.
|
|
255
|
-
return records.map((r, i) => this.adapter.revert(r, this.class,
|
|
248
|
+
records = await this.adapter.createAll(this.class, ids, records, ...ctxArgs);
|
|
249
|
+
return records.map((r, i) => this.adapter.revert(r, this.class, ids[i], ctx.get("rebuildWithTransient") ? prepared[i].transient : undefined, ctx));
|
|
256
250
|
}
|
|
257
251
|
/**
|
|
258
252
|
* @description Prepares multiple models for creation.
|
|
@@ -264,14 +258,16 @@ export class Repository extends Rep {
|
|
|
264
258
|
*/
|
|
265
259
|
async createAllPrefix(models, ...args) {
|
|
266
260
|
const contextArgs = await Context.args(OperationKeys.CREATE, this.class, args, this.adapter, this._overrides || {});
|
|
261
|
+
const shouldRunHandlers = contextArgs.context.get("ignoreHandlers") !== false;
|
|
262
|
+
const shouldValidate = !contextArgs.context.get("ignoreValidation");
|
|
267
263
|
if (!models.length)
|
|
268
264
|
return [models, ...contextArgs.args];
|
|
269
|
-
const opts =
|
|
265
|
+
const opts = Model.sequenceFor(models[0]);
|
|
270
266
|
let ids = [];
|
|
271
267
|
if (opts.type) {
|
|
272
268
|
if (!opts.name)
|
|
273
|
-
opts.name =
|
|
274
|
-
ids = await (await this.adapter.Sequence(opts)).range(models.length);
|
|
269
|
+
opts.name = Model.sequenceName(models[0], "pk");
|
|
270
|
+
ids = await (await this.adapter.Sequence(opts)).range(models.length, ...contextArgs.args);
|
|
275
271
|
}
|
|
276
272
|
else {
|
|
277
273
|
ids = models.map((m, i) => {
|
|
@@ -289,21 +285,17 @@ export class Repository extends Rep {
|
|
|
289
285
|
? ids[i]
|
|
290
286
|
: `${m[this.pk]}`.toString());
|
|
291
287
|
}
|
|
292
|
-
|
|
288
|
+
if (shouldRunHandlers)
|
|
289
|
+
await enforceDBDecorators(this, contextArgs.context, m, OperationKeys.CREATE, OperationKeys.ON);
|
|
293
290
|
return m;
|
|
294
291
|
}));
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
: ` - ${i}: ${e.toString()}`;
|
|
303
|
-
return accum;
|
|
304
|
-
}, undefined);
|
|
305
|
-
if (errorMessages)
|
|
306
|
-
throw new ValidationError(errorMessages);
|
|
292
|
+
if (shouldValidate) {
|
|
293
|
+
const ignoredProps = contextArgs.context.get("ignoredValidationProperties") || [];
|
|
294
|
+
const errors = await Promise.all(models.map((m) => Promise.resolve(m.hasErrors(...ignoredProps))));
|
|
295
|
+
const errorMessages = reduceErrorsToPrint(errors);
|
|
296
|
+
if (errorMessages)
|
|
297
|
+
throw new ValidationError(errorMessages);
|
|
298
|
+
}
|
|
307
299
|
return [models, ...contextArgs.args];
|
|
308
300
|
}
|
|
309
301
|
/**
|
|
@@ -323,13 +315,15 @@ export class Repository extends Rep {
|
|
|
323
315
|
/**
|
|
324
316
|
* @description Reads a model from the database by ID.
|
|
325
317
|
* @summary Retrieves a model instance from the database using its primary key.
|
|
326
|
-
* @param {
|
|
318
|
+
* @param {PrimaryKeyType} id - The primary key of the model to read.
|
|
327
319
|
* @param {...any[]} args - Additional arguments.
|
|
328
320
|
* @return {Promise<M>} The retrieved model instance.
|
|
329
321
|
*/
|
|
330
322
|
async read(id, ...args) {
|
|
331
|
-
const
|
|
332
|
-
|
|
323
|
+
const { ctx, log, ctxArgs } = this.logCtx(args, this.read);
|
|
324
|
+
log.debug(`reading ${this.class.name} from table ${Model.tableName(this.class)} with pk ${this.pk}`);
|
|
325
|
+
const m = await this.adapter.read(this.class, id, ...ctxArgs);
|
|
326
|
+
return this.adapter.revert(m, this.class, id, undefined, ctx);
|
|
333
327
|
}
|
|
334
328
|
/**
|
|
335
329
|
* @description Prepares for reading multiple models by IDs.
|
|
@@ -355,8 +349,10 @@ export class Repository extends Rep {
|
|
|
355
349
|
* @return {Promise<M[]>} The retrieved model instances.
|
|
356
350
|
*/
|
|
357
351
|
async readAll(keys, ...args) {
|
|
358
|
-
const
|
|
359
|
-
|
|
352
|
+
const { ctx, log, ctxArgs } = this.logCtx(args, this.readAll);
|
|
353
|
+
log.debug(`reading ${keys.length} ${this.class.name} in table ${Model.tableName(this.class)}`);
|
|
354
|
+
const records = await this.adapter.readAll(this.class, keys, ...ctxArgs);
|
|
355
|
+
return records.map((r, i) => this.adapter.revert(r, this.class, keys[i], undefined, ctx));
|
|
360
356
|
}
|
|
361
357
|
/**
|
|
362
358
|
* @description Updates a model in the database.
|
|
@@ -366,10 +362,12 @@ export class Repository extends Rep {
|
|
|
366
362
|
* @return {Promise<M>} The updated model with refreshed properties.
|
|
367
363
|
*/
|
|
368
364
|
async update(model, ...args) {
|
|
365
|
+
const { ctxArgs, log, ctx } = this.logCtx(args, this.update);
|
|
369
366
|
// eslint-disable-next-line prefer-const
|
|
370
|
-
let { record, id, transient } = this.adapter.prepare(model,
|
|
371
|
-
|
|
372
|
-
|
|
367
|
+
let { record, id, transient } = this.adapter.prepare(model, ctx);
|
|
368
|
+
log.debug(`updating ${this.class.name} in table ${Model.tableName(this.class)} with id ${id}`);
|
|
369
|
+
record = await this.adapter.update(this.class, id, record, ...ctxArgs);
|
|
370
|
+
return this.adapter.revert(record, this.class, id, transient, ctx);
|
|
373
371
|
}
|
|
374
372
|
/**
|
|
375
373
|
* @description Prepares a model for update.
|
|
@@ -382,18 +380,19 @@ export class Repository extends Rep {
|
|
|
382
380
|
*/
|
|
383
381
|
async updatePrefix(model, ...args) {
|
|
384
382
|
const contextArgs = await Context.args(OperationKeys.UPDATE, this.class, args, this.adapter, this._overrides || {});
|
|
383
|
+
const shouldRunHandlers = contextArgs.context.get("ignoreHandlers") !== false;
|
|
384
|
+
const shouldValidate = !contextArgs.context.get("ignoreValidation");
|
|
385
385
|
const pk = model[this.pk];
|
|
386
386
|
if (!pk)
|
|
387
387
|
throw new InternalError(`No value for the Id is defined under the property ${this.pk}`);
|
|
388
388
|
const oldModel = await this.read(pk, ...contextArgs.args);
|
|
389
|
-
model =
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
if (
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
Repository.setMetadata(model, Repository.getMetadata(oldModel));
|
|
389
|
+
model = Model.merge(oldModel, model, this.class);
|
|
390
|
+
if (shouldRunHandlers)
|
|
391
|
+
await enforceDBDecorators(this, contextArgs.context, model, OperationKeys.UPDATE, OperationKeys.ON, oldModel);
|
|
392
|
+
if (shouldValidate) {
|
|
393
|
+
const errors = await Promise.resolve(model.hasErrors(oldModel, ...Model.relations(this.class), ...(contextArgs.context.get("ignoredValidationProperties") || [])));
|
|
394
|
+
if (errors)
|
|
395
|
+
throw new ValidationError(errors.toString());
|
|
397
396
|
}
|
|
398
397
|
return [model, ...contextArgs.args];
|
|
399
398
|
}
|
|
@@ -405,9 +404,11 @@ export class Repository extends Rep {
|
|
|
405
404
|
* @return {Promise<M[]>} The updated models with refreshed properties.
|
|
406
405
|
*/
|
|
407
406
|
async updateAll(models, ...args) {
|
|
408
|
-
const
|
|
409
|
-
|
|
410
|
-
|
|
407
|
+
const { ctx, log, ctxArgs } = this.logCtx(args, this.updateAll);
|
|
408
|
+
log.debug(`Updating ${models.length} new ${this.class.name} in table ${Model.tableName(this.class)}`);
|
|
409
|
+
const records = models.map((m) => this.adapter.prepare(m, ctx));
|
|
410
|
+
const updated = await this.adapter.updateAll(this.class, records.map((r) => r.id), records.map((r) => r.record), ...ctxArgs);
|
|
411
|
+
return updated.map((u, i) => this.adapter.revert(u, this.class, records[i].id, ctx.get("rebuildWithTransient") ? records[i].transient : undefined, ctx));
|
|
411
412
|
}
|
|
412
413
|
/**
|
|
413
414
|
* @description Prepares multiple models for update.
|
|
@@ -420,6 +421,8 @@ export class Repository extends Rep {
|
|
|
420
421
|
*/
|
|
421
422
|
async updateAllPrefix(models, ...args) {
|
|
422
423
|
const contextArgs = await Context.args(OperationKeys.UPDATE, this.class, args, this.adapter, this._overrides || {});
|
|
424
|
+
const shouldRunHandlers = contextArgs.context.get("ignoreHandlers") !== false;
|
|
425
|
+
const shouldValidate = !contextArgs.context.get("ignoreValidation");
|
|
423
426
|
const ids = models.map((m) => {
|
|
424
427
|
const id = m[this.pk];
|
|
425
428
|
if (!id)
|
|
@@ -428,32 +431,18 @@ export class Repository extends Rep {
|
|
|
428
431
|
});
|
|
429
432
|
const oldModels = await this.readAll(ids, ...contextArgs.args);
|
|
430
433
|
models = models.map((m, i) => {
|
|
431
|
-
m =
|
|
432
|
-
if (Repository.getMetadata(oldModels[i])) {
|
|
433
|
-
if (!Repository.getMetadata(m))
|
|
434
|
-
Repository.setMetadata(m, Repository.getMetadata(oldModels[i]));
|
|
435
|
-
}
|
|
434
|
+
m = Model.merge(oldModels[i], m, this.class);
|
|
436
435
|
return m;
|
|
437
436
|
});
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
return accum;
|
|
448
|
-
}, undefined);
|
|
449
|
-
if (errorMessages)
|
|
450
|
-
throw new ValidationError(errorMessages);
|
|
451
|
-
models.forEach((m, i) => {
|
|
452
|
-
if (Repository.getMetadata(oldModels[i])) {
|
|
453
|
-
if (!Repository.getMetadata(m))
|
|
454
|
-
Repository.setMetadata(m, Repository.getMetadata(oldModels[i]));
|
|
455
|
-
}
|
|
456
|
-
});
|
|
437
|
+
if (shouldRunHandlers)
|
|
438
|
+
await Promise.all(models.map((m, i) => enforceDBDecorators(this, contextArgs.context, m, OperationKeys.UPDATE, OperationKeys.ON, oldModels[i])));
|
|
439
|
+
if (shouldValidate) {
|
|
440
|
+
const ignoredProps = contextArgs.context.get("ignoredValidationProperties") || [];
|
|
441
|
+
const errors = await Promise.all(models.map((m, i) => Promise.resolve(m.hasErrors(oldModels[i], m, ...ignoredProps))));
|
|
442
|
+
const errorMessages = reduceErrorsToPrint(errors);
|
|
443
|
+
if (errorMessages)
|
|
444
|
+
throw new ValidationError(errorMessages);
|
|
445
|
+
}
|
|
457
446
|
return [models, ...contextArgs.args];
|
|
458
447
|
}
|
|
459
448
|
/**
|
|
@@ -477,8 +466,10 @@ export class Repository extends Rep {
|
|
|
477
466
|
* @return {Promise<M>} The deleted model instance.
|
|
478
467
|
*/
|
|
479
468
|
async delete(id, ...args) {
|
|
480
|
-
const
|
|
481
|
-
|
|
469
|
+
const { ctx, log, ctxArgs } = this.logCtx(args, this.delete);
|
|
470
|
+
log.debug(`deleting new ${this.class.name} in table ${Model.tableName(this.class)} with pk ${id}`);
|
|
471
|
+
const m = await this.adapter.delete(this.class, id, ...ctxArgs);
|
|
472
|
+
return this.adapter.revert(m, this.class, id, undefined, ctx);
|
|
482
473
|
}
|
|
483
474
|
/**
|
|
484
475
|
* @description Prepares for deleting multiple models by IDs.
|
|
@@ -503,8 +494,10 @@ export class Repository extends Rep {
|
|
|
503
494
|
* @return {Promise<M[]>} The deleted model instances.
|
|
504
495
|
*/
|
|
505
496
|
async deleteAll(keys, ...args) {
|
|
506
|
-
const
|
|
507
|
-
|
|
497
|
+
const { ctx, log, ctxArgs } = this.logCtx(args, this.create);
|
|
498
|
+
log.debug(`deleting ${keys.length} ${this.class.name} in table ${Model.tableName(this.class)}`);
|
|
499
|
+
const results = await this.adapter.deleteAll(this.class, keys, ...ctxArgs);
|
|
500
|
+
return results.map((r, i) => this.adapter.revert(r, this.class, keys[i], undefined, ctx));
|
|
508
501
|
}
|
|
509
502
|
/**
|
|
510
503
|
* @description Implementation of the select method.
|
|
@@ -556,8 +549,18 @@ export class Repository extends Rep {
|
|
|
556
549
|
writable: false,
|
|
557
550
|
});
|
|
558
551
|
const log = this.log.for(this.observe);
|
|
559
|
-
const tableName =
|
|
560
|
-
this.adapter.observe(this, (table
|
|
552
|
+
const tableName = Model.tableName(this.class);
|
|
553
|
+
this.adapter.observe(this, (table,
|
|
554
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
555
|
+
event,
|
|
556
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
557
|
+
id,
|
|
558
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
559
|
+
...args) => {
|
|
560
|
+
if (typeof table === "string")
|
|
561
|
+
return table === tableName;
|
|
562
|
+
return Metadata.constr(table) === Metadata.constr(this.class);
|
|
563
|
+
});
|
|
561
564
|
log.verbose(`now observing ${this.adapter} filtering on table === ${tableName}`);
|
|
562
565
|
this.observerHandler.observe(observer, filter);
|
|
563
566
|
log.verbose(`Registered new observer ${observer.toString()}`);
|
|
@@ -596,12 +599,11 @@ export class Repository extends Rep {
|
|
|
596
599
|
async updateObservers(table, event, id, ...args) {
|
|
597
600
|
if (!this.observerHandler)
|
|
598
601
|
throw new InternalError("ObserverHandler not initialized. Did you register any observables?");
|
|
599
|
-
this.
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
: Sequence.parseValue(this.pkProps?.type, id), ...args);
|
|
602
|
+
const { log, ctxArgs } = this.logCtx(args, this.updateObservers);
|
|
603
|
+
log.verbose(`Updating ${this.observerHandler.count()} observers for ${this}`);
|
|
604
|
+
await this.observerHandler.updateObservers(table, event, Array.isArray(id)
|
|
605
|
+
? id.map((i) => Adapter["_baseSequence"].parseValue(Model.sequenceFor(this.class).type, i))
|
|
606
|
+
: Adapter["_baseSequence"].parseValue(Model.sequenceFor(this.class).type, id), ...ctxArgs);
|
|
605
607
|
}
|
|
606
608
|
/**
|
|
607
609
|
* @description Alias for updateObservers.
|
|
@@ -660,7 +662,7 @@ export class Repository extends Rep {
|
|
|
660
662
|
* @throws {InternalError} If no repository is registered for the model.
|
|
661
663
|
*/
|
|
662
664
|
static get(model, alias) {
|
|
663
|
-
const name =
|
|
665
|
+
const name = Model.tableName(model);
|
|
664
666
|
let registryName = name;
|
|
665
667
|
if (alias) {
|
|
666
668
|
registryName = [name, alias].join(DefaultSeparator);
|
|
@@ -681,7 +683,7 @@ export class Repository extends Rep {
|
|
|
681
683
|
* @throws {InternalError} If a repository is already registered for the model.
|
|
682
684
|
*/
|
|
683
685
|
static register(model, repo, alias) {
|
|
684
|
-
let name =
|
|
686
|
+
let name = Model.tableName(model);
|
|
685
687
|
if (alias) {
|
|
686
688
|
name = [name, alias].join(DefaultSeparator);
|
|
687
689
|
}
|
|
@@ -691,104 +693,6 @@ export class Repository extends Rep {
|
|
|
691
693
|
}
|
|
692
694
|
this._cache[name] = repo;
|
|
693
695
|
}
|
|
694
|
-
/**
|
|
695
|
-
* @description Sets metadata on a model instance.
|
|
696
|
-
* @summary Attaches metadata to a model instance using a non-enumerable property.
|
|
697
|
-
* @template M - The model type that extends Model.
|
|
698
|
-
* @param {M} model - The model instance.
|
|
699
|
-
* @param {any} metadata - The metadata to attach to the model.
|
|
700
|
-
*/
|
|
701
|
-
static setMetadata(model, metadata) {
|
|
702
|
-
Object.defineProperty(model, PersistenceKeys.METADATA, {
|
|
703
|
-
enumerable: false,
|
|
704
|
-
configurable: true,
|
|
705
|
-
writable: false,
|
|
706
|
-
value: metadata,
|
|
707
|
-
});
|
|
708
|
-
}
|
|
709
|
-
/**
|
|
710
|
-
* @description Gets metadata from a model instance.
|
|
711
|
-
* @summary Retrieves previously attached metadata from a model instance.
|
|
712
|
-
* @template M - The model type that extends Model.
|
|
713
|
-
* @param {M} model - The model instance.
|
|
714
|
-
* @return {any} The metadata or undefined if not found.
|
|
715
|
-
*/
|
|
716
|
-
static getMetadata(model) {
|
|
717
|
-
const descriptor = Object.getOwnPropertyDescriptor(model, PersistenceKeys.METADATA);
|
|
718
|
-
return descriptor ? descriptor.value : undefined;
|
|
719
|
-
}
|
|
720
|
-
/**
|
|
721
|
-
* @description Removes metadata from a model instance.
|
|
722
|
-
* @summary Deletes the metadata property from a model instance.
|
|
723
|
-
* @template M - The model type that extends Model.
|
|
724
|
-
* @param {M} model - The model instance.
|
|
725
|
-
*/
|
|
726
|
-
static removeMetadata(model) {
|
|
727
|
-
const descriptor = Object.getOwnPropertyDescriptor(model, PersistenceKeys.METADATA);
|
|
728
|
-
if (descriptor)
|
|
729
|
-
delete model[PersistenceKeys.METADATA];
|
|
730
|
-
}
|
|
731
|
-
/**
|
|
732
|
-
* @description Gets sequence options for a model's primary key.
|
|
733
|
-
* @summary Retrieves the sequence configuration for a model's primary key from metadata.
|
|
734
|
-
* @template M - The model type that extends Model.
|
|
735
|
-
* @param {M} model - The model instance.
|
|
736
|
-
* @return {SequenceOptions} The sequence options for the model's primary key.
|
|
737
|
-
* @throws {InternalError} If no sequence options are defined for the model.
|
|
738
|
-
*/
|
|
739
|
-
static getSequenceOptions(model) {
|
|
740
|
-
const pkName = Model.pk(model.constructor);
|
|
741
|
-
const key = Metadata.key(DBKeys.ID, pkName);
|
|
742
|
-
const metadata = Metadata.get(model.constructor, key);
|
|
743
|
-
if (!metadata)
|
|
744
|
-
throw new InternalError("No sequence options defined for model. did you use the @pk decorator?");
|
|
745
|
-
return metadata;
|
|
746
|
-
}
|
|
747
|
-
/**
|
|
748
|
-
* @description Gets all indexes defined on a model.
|
|
749
|
-
* @summary Retrieves all index metadata from a model's property decorators.
|
|
750
|
-
* @template M - The model type that extends Model.
|
|
751
|
-
* @param {M | Constructor<M>} model - The model instance or constructor.
|
|
752
|
-
* @return {Record<string, Record<string, IndexMetadata>>} A nested record of property names to index metadata.
|
|
753
|
-
*/
|
|
754
|
-
static indexes(model) {
|
|
755
|
-
const indexDecorators = Metadata.get(model instanceof Model ? model.constructor : model, PersistenceKeys.INDEX);
|
|
756
|
-
return Object.keys(indexDecorators || {}).reduce((acum, t) => {
|
|
757
|
-
acum[t] = { [PersistenceKeys.INDEX]: indexDecorators[t] };
|
|
758
|
-
return acum;
|
|
759
|
-
}, {});
|
|
760
|
-
}
|
|
761
|
-
/**
|
|
762
|
-
* @description Gets all relation properties defined on a model.
|
|
763
|
-
* @summary Retrieves the names of all properties marked as relations in the model hierarchy.
|
|
764
|
-
* @template M - The model type that extends Model.
|
|
765
|
-
* @param {M | Constructor<M>} model - The model instance or constructor.
|
|
766
|
-
* @return {string[]} An array of property names that are relations.
|
|
767
|
-
*/
|
|
768
|
-
static relations(model) {
|
|
769
|
-
return (Metadata.relations(model instanceof Model ? model.constructor : model) || []);
|
|
770
|
-
}
|
|
771
|
-
/**
|
|
772
|
-
* @description Gets the table name for a model.
|
|
773
|
-
* @summary Retrieves the database table name associated with a model.
|
|
774
|
-
* @template M - The model type that extends Model.
|
|
775
|
-
* @param {M | Constructor<M>} model - The model instance or constructor.
|
|
776
|
-
* @return {string} The table name for the model.
|
|
777
|
-
*/
|
|
778
|
-
static table(model) {
|
|
779
|
-
return getTableName(model);
|
|
780
|
-
}
|
|
781
|
-
/**
|
|
782
|
-
* @description Gets the column name for a model attribute.
|
|
783
|
-
* @summary Retrieves the database column name for a model property.
|
|
784
|
-
* @template M - The model type that extends Model.
|
|
785
|
-
* @param {M} model - The model instance.
|
|
786
|
-
* @param {string} attribute - The attribute/property name.
|
|
787
|
-
* @return {string} The column name for the attribute.
|
|
788
|
-
*/
|
|
789
|
-
static column(model, attribute) {
|
|
790
|
-
return getColumnName(model, attribute);
|
|
791
|
-
}
|
|
792
696
|
}
|
|
793
697
|
__decorate([
|
|
794
698
|
final(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Repository.js","sourceRoot":"","sources":["../../../src/repository/Repository.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Repository.js","sourceRoot":"","sources":["../../../src/repository/Repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { inject, injectable, } from "@decaf-ts/injectable-decorators";
|
|
2
2
|
import { DBKeys } from "@decaf-ts/db-decorators";
|
|
3
|
-
import {
|
|
3
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
4
4
|
import { Repository } from "./Repository.js";
|
|
5
|
-
import { PersistenceKeys } from "./../persistence/index.js";
|
|
5
|
+
import { Adapter, PersistenceKeys } from "./../persistence/index.js";
|
|
6
6
|
import { Metadata, metadata } from "@decaf-ts/decoration";
|
|
7
7
|
/**
|
|
8
8
|
* @description Repository decorator for model classes.
|
|
@@ -34,8 +34,9 @@ import { Metadata, metadata } from "@decaf-ts/decoration";
|
|
|
34
34
|
export function repository(model, flavour) {
|
|
35
35
|
return ((original, propertyKey) => {
|
|
36
36
|
if (propertyKey) {
|
|
37
|
-
return inject(
|
|
37
|
+
return inject(Metadata.constr(model))(original, propertyKey);
|
|
38
38
|
}
|
|
39
|
+
Metadata.set(DBKeys.REPOSITORY, Metadata.key(flavour || Adapter.currentFlavour, Model.tableName(model)), original);
|
|
39
40
|
metadata(DBKeys.REPOSITORY, original.name)(model);
|
|
40
41
|
flavour =
|
|
41
42
|
flavour || Metadata.get(original.constructor, PersistenceKeys.ADAPTER);
|