@decaf-ts/db-decorators 0.6.20 → 0.7.0
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 +1 -1
- package/dist/db-decorators.cjs +1 -1
- package/dist/db-decorators.cjs.map +1 -1
- package/dist/db-decorators.js +1 -1
- package/dist/db-decorators.js.map +1 -1
- package/lib/esm/identity/decorators.d.ts +1 -1
- package/lib/esm/identity/decorators.js +8 -4
- 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 +3 -1
- package/lib/esm/index.js +5 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/model/constants.js +1 -1
- package/lib/esm/model/constants.js.map +1 -1
- package/lib/esm/model/decorators.d.ts +3 -3
- package/lib/esm/model/decorators.js +9 -11
- package/lib/esm/model/decorators.js.map +1 -1
- package/lib/esm/model/index.d.ts +0 -2
- package/lib/esm/model/index.js +0 -2
- package/lib/esm/model/index.js.map +1 -1
- package/lib/esm/model/validation.d.ts +7 -7
- package/lib/esm/model/validation.js +52 -56
- package/lib/esm/model/validation.js.map +1 -1
- package/lib/esm/operations/constants.d.ts +11 -0
- package/lib/esm/operations/constants.js +12 -0
- package/lib/esm/operations/constants.js.map +1 -1
- package/lib/esm/operations/decorators.js +4 -6
- package/lib/esm/operations/decorators.js.map +1 -1
- package/lib/esm/overrides/Metadata.d.ts +50 -0
- package/lib/esm/overrides/Metadata.js +2 -0
- package/lib/esm/overrides/Metadata.js.map +1 -0
- package/lib/esm/overrides/Model.d.ts +65 -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 +3 -0
- package/lib/esm/overrides/index.js +4 -0
- package/lib/esm/overrides/index.js.map +1 -0
- package/lib/esm/overrides/overrides.js +102 -0
- package/lib/esm/overrides/overrides.js.map +1 -0
- package/lib/esm/repository/BaseRepository.d.ts +3 -1
- package/lib/esm/repository/BaseRepository.js +6 -4
- package/lib/esm/repository/BaseRepository.js.map +1 -1
- package/lib/esm/repository/Context.d.ts +2 -1
- package/lib/esm/repository/Context.js.map +1 -1
- package/lib/esm/repository/Repository.d.ts +2 -9
- package/lib/esm/repository/Repository.js +0 -11
- package/lib/esm/repository/Repository.js.map +1 -1
- package/lib/esm/repository/types.d.ts +2 -1
- package/lib/esm/repository/utils.d.ts +2 -16
- package/lib/esm/repository/utils.js +96 -77
- package/lib/esm/repository/utils.js.map +1 -1
- package/lib/esm/validation/decorators.d.ts +1 -1
- package/lib/esm/validation/decorators.js +13 -8
- package/lib/esm/validation/decorators.js.map +1 -1
- package/lib/esm/validation/validators/ReadOnlyValidator.js +1 -1
- package/lib/esm/validation/validators/ReadOnlyValidator.js.map +1 -1
- package/lib/identity/decorators.cjs +7 -3
- package/lib/identity/decorators.d.ts +1 -1
- 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 +6 -2
- package/lib/index.d.ts +3 -1
- package/lib/index.js.map +1 -1
- package/lib/model/constants.cjs +1 -1
- package/lib/model/constants.js.map +1 -1
- package/lib/model/decorators.cjs +10 -12
- package/lib/model/decorators.d.ts +3 -3
- package/lib/model/decorators.js.map +1 -1
- package/lib/model/index.cjs +0 -2
- package/lib/model/index.d.ts +0 -2
- package/lib/model/index.js.map +1 -1
- package/lib/model/validation.cjs +51 -55
- package/lib/model/validation.d.ts +7 -7
- package/lib/model/validation.js.map +1 -1
- package/lib/operations/constants.cjs +13 -1
- package/lib/operations/constants.d.ts +11 -0
- package/lib/operations/constants.js.map +1 -1
- package/lib/operations/decorators.cjs +3 -5
- package/lib/operations/decorators.js.map +1 -1
- package/lib/overrides/Metadata.cjs +3 -0
- package/lib/overrides/Metadata.d.ts +50 -0
- package/lib/overrides/Metadata.js.map +1 -0
- package/lib/overrides/Model.cjs +4 -0
- package/lib/overrides/Model.d.ts +65 -0
- package/lib/overrides/Model.js.map +1 -0
- package/lib/overrides/index.cjs +20 -0
- package/lib/overrides/index.d.ts +3 -0
- package/lib/overrides/index.js.map +1 -0
- package/lib/overrides/overrides.cjs +104 -0
- package/lib/overrides/overrides.js.map +1 -0
- package/lib/repository/BaseRepository.cjs +6 -4
- package/lib/repository/BaseRepository.d.ts +3 -1
- package/lib/repository/BaseRepository.js.map +1 -1
- package/lib/repository/Context.d.ts +2 -1
- package/lib/repository/Context.js.map +1 -1
- package/lib/repository/Repository.cjs +0 -11
- package/lib/repository/Repository.d.ts +2 -9
- package/lib/repository/Repository.js.map +1 -1
- package/lib/repository/types.d.ts +2 -1
- package/lib/repository/utils.cjs +96 -78
- package/lib/repository/utils.d.ts +2 -16
- package/lib/repository/utils.js.map +1 -1
- package/lib/validation/decorators.cjs +16 -11
- package/lib/validation/decorators.d.ts +1 -1
- package/lib/validation/decorators.js.map +1 -1
- package/lib/validation/validators/ReadOnlyValidator.cjs +2 -2
- package/lib/validation/validators/ReadOnlyValidator.js.map +1 -1
- package/package.json +2 -3
- package/lib/esm/identity/utils.d.ts +0 -47
- package/lib/esm/identity/utils.js +0 -75
- package/lib/esm/identity/utils.js.map +0 -1
- package/lib/esm/model/overrides.js +0 -33
- package/lib/esm/model/overrides.js.map +0 -1
- package/lib/esm/model/utils.d.ts +0 -45
- package/lib/esm/model/utils.js +0 -71
- package/lib/esm/model/utils.js.map +0 -1
- package/lib/identity/utils.cjs +0 -79
- package/lib/identity/utils.d.ts +0 -47
- package/lib/identity/utils.js.map +0 -1
- package/lib/model/overrides.cjs +0 -35
- package/lib/model/overrides.js.map +0 -1
- package/lib/model/utils.cjs +0 -75
- package/lib/model/utils.d.ts +0 -45
- package/lib/model/utils.js.map +0 -1
- /package/lib/esm/{model → overrides}/overrides.d.ts +0 -0
- /package/lib/{model → overrides}/overrides.d.ts +0 -0
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import "../overrides";
|
|
1
2
|
import { IRepository } from "../interfaces/IRepository";
|
|
2
|
-
import {
|
|
3
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
3
4
|
import { Context } from "./Context";
|
|
4
5
|
import { RepositoryFlags } from "./types";
|
|
6
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
5
7
|
/**
|
|
6
8
|
* @description Base repository implementation providing CRUD operations for models.
|
|
7
9
|
* @summary The BaseRepository class serves as a foundation for repository implementations, providing
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import "./../overrides/index.js";
|
|
2
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
1
3
|
import { enforceDBDecorators } from "./utils.js";
|
|
2
4
|
import { OperationKeys } from "./../operations/constants.js";
|
|
3
5
|
import { InternalError } from "./errors.js";
|
|
4
6
|
import { wrapMethodWithContext } from "./wrappers.js";
|
|
5
|
-
import { findPrimaryKey } from "./../identity/utils.js";
|
|
6
7
|
import { Context } from "./Context.js";
|
|
8
|
+
import { Metadata } from "@decaf-ts/decoration";
|
|
9
|
+
import { DBKeys } from "./../model/constants.js";
|
|
7
10
|
/**
|
|
8
11
|
* @description Base repository implementation providing CRUD operations for models.
|
|
9
12
|
* @summary The BaseRepository class serves as a foundation for repository implementations, providing
|
|
@@ -115,9 +118,8 @@ export class BaseRepository {
|
|
|
115
118
|
*/
|
|
116
119
|
get pk() {
|
|
117
120
|
if (!this._pk) {
|
|
118
|
-
|
|
119
|
-
this.
|
|
120
|
-
this._pkProps = props;
|
|
121
|
+
this._pk = Model.pk(this.class);
|
|
122
|
+
this._pkProps = Metadata.get(this.class, Metadata.key(DBKeys.ID, this._pk));
|
|
121
123
|
}
|
|
122
124
|
return this._pk;
|
|
123
125
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseRepository.js","sourceRoot":"","sources":["../../../src/repository/BaseRepository.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BaseRepository.js","sourceRoot":"","sources":["../../../src/repository/BaseRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { ContextArgs } from "./utils";
|
|
2
2
|
import { Contextual } from "../interfaces/Contextual";
|
|
3
3
|
import { OperationKeys } from "../operations/constants";
|
|
4
|
-
import {
|
|
4
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
5
5
|
import { ObjectAccumulator } from "typed-object-accumulator";
|
|
6
6
|
import { RepositoryFlags } from "./types";
|
|
7
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
7
8
|
/**
|
|
8
9
|
* @description Factory type for creating context instances.
|
|
9
10
|
* @summary Defines a function type that creates context instances with specific repository flags.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../src/repository/Context.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,uBAAoB;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../src/repository/Context.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,uBAAoB;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAe7D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAwB,CAIxD,GAAyB,EACzB,EAAE;IACF,OAAO,IAAI,OAAO,EAAK,CAAC,UAAU,CAChC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAM,CAClD,CAAC;AACT,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,MAAM,OAAO,OAAO;IAClB;QAWS,UAAK,GACZ,IAAI,iBAAiB,EACG,CAAC;QAZzB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;YACnC,KAAK,EAAE,IAAI,iBAAiB,EAAK;YACjC,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;aAEM,YAAO,GAAwB,qBAAqB,AAA7C,CAA8C;IAM5D;;;;OAIG;IACH,UAAU,CAAmB,KAAQ;QACnC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;YACnC,KAAK,EAAG,IAAI,CAAC,KAAgC,CAAC,UAAU,CAAC,KAAK,CAAC;YAC/D,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,OAAO,IAAiC,CAAC;IAC3C,CAAC;IAED,IAAI,SAAS;QACX,OAAQ,IAAI,CAAC,KAAa,CAAC,SAA2B,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAoB,GAAM;QAC3B,IAAI,CAAC;YACH,OAAQ,IAAI,CAAC,KAAgC,CAAC,GAAG,CAC/C,GAAwB,CACjB,CAAC;QACZ,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,MAAM,GAAI,IAAI,CAAC,KAAa,CAAC,aAEtB,CAAC;YACd,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,OAAU,EACV,SAAsB;QAEtB,OAAO,OAAO,CAAC,OAAO,CACpB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAG,OAAe,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC,CAC3C,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAKf,SAIwB,EACxB,SAAqB,EACrB,KAAqB;IACrB,6DAA6D;IAC7D,GAAG,IAAW;QAEd,OAAO,OAAO,CAAC,OAAO,CACpB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,sBAAyC,EAAE,SAAS,EAAE;YACtE,SAAS,EAAE,SAAS;YACpB,KAAK,EAAE,KAAK;SACb,CAAC,CACE,CAAC;IACT,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAKf,SAIwB,EACxB,KAAqB,EACrB,IAAW,EACX,UAA0B,EAC1B,SAAsB;QAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAExB,KAAK,UAAU,UAAU;YACvB,IAAI,UAAU;gBACZ,OAAO,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;YACxE,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAI,CAAC;QACT,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,IAAI,YAAY,OAAO,EAAE,CAAC;gBAC5B,CAAC,GAAG,IAAS,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC,GAAG,CAAC,MAAM,UAAU,EAAE,CAAM,CAAC;gBAC9B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;QACH,CAAC;aAAM,CAAC;YACN,CAAC,GAAG,CAAC,MAAM,UAAU,EAAE,CAAM,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACpC,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { BaseRepository } from "./BaseRepository";
|
|
2
|
-
import {
|
|
2
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
3
3
|
import { Context } from "./Context";
|
|
4
4
|
import { RepositoryFlags } from "./types";
|
|
5
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
5
6
|
/**
|
|
6
7
|
* @description Concrete repository implementation with validation support.
|
|
7
8
|
* @summary The Repository class extends BaseRepository to provide additional validation
|
|
@@ -90,12 +91,4 @@ export declare abstract class Repository<M extends Model<boolean>, F extends Rep
|
|
|
90
91
|
* @throws {ValidationError} If any model fails validation, with details about which models failed
|
|
91
92
|
*/
|
|
92
93
|
protected updateAllPrefix(models: M[], ...args: any[]): Promise<any[]>;
|
|
93
|
-
/**
|
|
94
|
-
* @description Creates a reflection key for database operations.
|
|
95
|
-
* @summary Generates a key for storing metadata in the reflection system by prefixing
|
|
96
|
-
* the provided key with the database reflection prefix.
|
|
97
|
-
* @param {string} key - The base key to prefix
|
|
98
|
-
* @return {string} The prefixed reflection key
|
|
99
|
-
*/
|
|
100
|
-
static key(key: string): string;
|
|
101
94
|
}
|
|
@@ -2,7 +2,6 @@ import { enforceDBDecorators } from "./utils.js";
|
|
|
2
2
|
import { OperationKeys } from "./../operations/constants.js";
|
|
3
3
|
import { InternalError, ValidationError } from "./errors.js";
|
|
4
4
|
import { BaseRepository } from "./BaseRepository.js";
|
|
5
|
-
import { DBKeys } from "./../model/constants.js";
|
|
6
5
|
import { Context } from "./Context.js";
|
|
7
6
|
/**
|
|
8
7
|
* @description Concrete repository implementation with validation support.
|
|
@@ -156,15 +155,5 @@ export class Repository extends BaseRepository {
|
|
|
156
155
|
throw new ValidationError(errors);
|
|
157
156
|
return [models, ...contextArgs.args];
|
|
158
157
|
}
|
|
159
|
-
/**
|
|
160
|
-
* @description Creates a reflection key for database operations.
|
|
161
|
-
* @summary Generates a key for storing metadata in the reflection system by prefixing
|
|
162
|
-
* the provided key with the database reflection prefix.
|
|
163
|
-
* @param {string} key - The base key to prefix
|
|
164
|
-
* @return {string} The prefixed reflection key
|
|
165
|
-
*/
|
|
166
|
-
static key(key) {
|
|
167
|
-
return DBKeys.REFLECT + key;
|
|
168
|
-
}
|
|
169
158
|
}
|
|
170
159
|
//# sourceMappingURL=Repository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Repository.js","sourceRoot":"","sources":["../../../src/repository/Repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAgB;AAC9C,OAAO,EAAE,aAAa,EAAE,qCAAgC;AACxD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,oBAAiB;AAC1D,OAAO,EAAE,cAAc,EAAE,4BAAyB;AAElD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Repository.js","sourceRoot":"","sources":["../../../src/repository/Repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAgB;AAC9C,OAAO,EAAE,aAAa,EAAE,qCAAgC;AACxD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,oBAAiB;AAC1D,OAAO,EAAE,cAAc,EAAE,4BAAyB;AAElD,OAAO,EAAE,OAAO,EAAE,qBAAkB;AAIpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,OAAgB,UAIpB,SAAQ,cAAuB;IAC/B,YAAsB,KAAsB;QAC1C,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAED;;;;;;;;;OASG;IACgB,KAAK,CAAC,YAAY,CACnC,KAAQ,EACR,GAAG,IAAW;QAEd,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CACpC,aAAa,CAAC,MAAM,EACpB,IAAI,CAAC,KAAK,EACV,IAAI,CACL,CAAC;QACF,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,mBAAmB,CACvB,IAAI,EACJ,WAAW,CAAC,OAAO,EACnB,KAAK,EACL,aAAa,CAAC,MAAM,EACpB,aAAa,CAAC,EAAE,CACjB,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACxD,IAAI,MAAM;YAAE,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzD,OAAO,CAAC,KAAK,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;;;;OASG;IACgB,KAAK,CAAC,eAAe,CACtC,MAAW,EACX,GAAG,IAAW;QAEd,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CACpC,aAAa,CAAC,MAAM,EACpB,IAAI,CAAC,KAAK,EACV,IAAI,CACL,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACrB,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,mBAAmB,CACvB,IAAI,EACJ,WAAW,CAAC,OAAO,EACnB,CAAC,EACD,aAAa,CAAC,MAAM,EACpB,aAAa,CAAC,EAAE,CACjB,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,GAAG,CACxC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAClD,CAAC;QAEF,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CACpC,CAAC,KAAyB,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,CAAC;gBACH,KAAK;oBACH,OAAO,KAAK,KAAK,QAAQ;wBACvB,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE;wBACtC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC;QACf,CAAC,EACD,SAAS,CACV,CAAC;QAEF,IAAI,MAAM;YAAE,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;QAC9C,OAAO,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;OAWG;IACgB,KAAK,CAAC,YAAY,CACnC,KAAQ,EACR,GAAG,IAAW;QAEd,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CACpC,aAAa,CAAC,MAAM,EACpB,IAAI,CAAC,KAAK,EACV,IAAI,CACL,CAAC;QACF,MAAM,EAAE,GAAI,KAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE;YACL,MAAM,IAAI,aAAa,CACrB,qDAAqD,IAAI,CAAC,EAAY,EAAE,CACzE,CAAC;QAEJ,MAAM,QAAQ,GAAM,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAExC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAEpC,MAAM,mBAAmB,CACvB,IAAI,EACJ,WAAW,CAAC,OAAO,EACnB,KAAK,EACL,aAAa,CAAC,MAAM,EACpB,aAAa,CAAC,EAAE,EAChB,QAAQ,CACT,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,QAAe,CAAC,CAAC,CAAC;QACvE,IAAI,MAAM;YAAE,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,KAAK,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;;;;;;OAWG;IACgB,KAAK,CAAC,eAAe,CAAC,MAAW,EAAE,GAAG,IAAW;QAClE,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CACpC,aAAa,CAAC,MAAM,EACpB,IAAI,CAAC,KAAK,EACV,IAAI,CACL,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3B,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,IAAI,OAAO,EAAE,KAAK,WAAW;gBAC3B,MAAM,IAAI,aAAa,CACrB,qDAAqD,IAAI,CAAC,EAAY,EAAE,CACzE,CAAC;YACJ,OAAO,EAAY,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,MAAM,SAAS,GAAQ,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAClB,mBAAmB,CACjB,IAAI,EACJ,WAAW,CAAC,OAAO,EACnB,CAAC,EACD,aAAa,CAAC,MAAM,EACpB,aAAa,CAAC,EAAE,EAChB,SAAS,CAAC,CAAC,CAAC,CACb,CACF,CACF,CAAC;QAEF,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,GAAG,CACxC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAQ,CAAC,CAAC,CAAC,CACxE,CAAC;QAEF,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CACpC,CAAC,KAAyB,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,CAAC;gBACH,KAAK;oBACH,OAAO,KAAK,KAAK,QAAQ;wBACvB,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE;wBACtC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC;QACf,CAAC,EACD,SAAS,CACV,CAAC;QAEF,IAAI,MAAM;YAAE,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;QAC9C,OAAO,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CAYF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Context } from "./Context";
|
|
2
|
-
import {
|
|
2
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
3
3
|
import { OperationKeys } from "../operations";
|
|
4
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
4
5
|
/**
|
|
5
6
|
* @description Type utility for ensuring model extension.
|
|
6
7
|
* @summary A conditional type that ensures a type extends the Model class.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { IRepository } from "../interfaces/IRepository";
|
|
2
|
-
import {
|
|
3
|
-
import { Constructor, Model } from "@decaf-ts/decorator-validation";
|
|
2
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
4
3
|
import { Context } from "./Context";
|
|
5
4
|
import { RepositoryFlags } from "./types";
|
|
5
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
6
6
|
/**
|
|
7
7
|
* @description Context arguments for repository operations.
|
|
8
8
|
* @summary Represents the context and arguments for repository operations.
|
|
@@ -58,17 +58,3 @@ export declare function enforceDBDecorators<M extends Model<true | false>, R ext
|
|
|
58
58
|
* @memberOf db-decorators.utils
|
|
59
59
|
*/
|
|
60
60
|
export declare function getDbDecorators<T extends Model>(model: T, operation: string, extraPrefix?: string): Record<string, DecoratorMetadata[]> | undefined;
|
|
61
|
-
/**
|
|
62
|
-
* @summary Retrieves the decorators for an object's properties prefixed by {@param prefixes} recursively
|
|
63
|
-
* @param model
|
|
64
|
-
* @param accum
|
|
65
|
-
* @param prefixes
|
|
66
|
-
*
|
|
67
|
-
* @function getAllPropertyDecoratorsRecursive
|
|
68
|
-
* @memberOf module:db-decorators.Repository
|
|
69
|
-
*/
|
|
70
|
-
export declare const getAllPropertyDecoratorsRecursive: <T extends Model>(model: T, accum: {
|
|
71
|
-
[indexer: string]: any[];
|
|
72
|
-
} | undefined, ...prefixes: string[]) => {
|
|
73
|
-
[indexer: string]: any[];
|
|
74
|
-
} | undefined;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { OperationKeys } from "./../operations/constants.js";
|
|
2
|
-
import { Reflection } from "@decaf-ts/reflection";
|
|
1
|
+
import { ModelOperations, OperationKeys } from "./../operations/constants.js";
|
|
3
2
|
import { InternalError } from "./errors.js";
|
|
4
|
-
import { ModelKeys } from "@decaf-ts/decorator-validation";
|
|
5
3
|
import { getHandlersDecorators, groupDecorators, sortDecorators, } from "./../operations/decorators.js";
|
|
4
|
+
import { Metadata } from "@decaf-ts/decoration";
|
|
6
5
|
/**
|
|
7
6
|
* @summary retrieves the arguments for the handler
|
|
8
7
|
* @param {any} dec the decorator
|
|
@@ -81,87 +80,107 @@ export async function enforceDBDecorators(repo, context, model, operation, prefi
|
|
|
81
80
|
* @memberOf db-decorators.utils
|
|
82
81
|
*/
|
|
83
82
|
export function getDbDecorators(model, operation, extraPrefix) {
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
OperationKeys.REFLECT + (extraPrefix ? extraPrefix : ""));
|
|
83
|
+
const prefix = extraPrefix?.replace(/[.]$/, "");
|
|
84
|
+
const decorators = Metadata.get(model.constructor, ModelOperations.OPERATIONS);
|
|
87
85
|
if (!decorators)
|
|
88
86
|
return;
|
|
89
87
|
return Object.keys(decorators).reduce((accum, decorator) => {
|
|
90
|
-
const
|
|
91
|
-
|
|
88
|
+
const obj = prefix
|
|
89
|
+
? decorators[decorator][prefix] || {}
|
|
90
|
+
: decorators[decorator];
|
|
91
|
+
const dec = Object.keys(obj).filter((d) => d === operation);
|
|
92
|
+
const decs = [];
|
|
93
|
+
for (const d of dec)
|
|
94
|
+
decs.push({ key: d, props: obj[d] });
|
|
95
|
+
if (decs && decs.length) {
|
|
92
96
|
if (!accum)
|
|
93
97
|
accum = {};
|
|
94
|
-
accum[decorator] =
|
|
98
|
+
accum[decorator] = decs;
|
|
95
99
|
}
|
|
96
100
|
return accum;
|
|
97
101
|
}, undefined);
|
|
98
102
|
}
|
|
99
|
-
/**
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
export const getAllPropertyDecoratorsRecursive = function
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
103
|
+
// /**
|
|
104
|
+
// * @summary Retrieves the decorators for an object's properties prefixed by {@param prefixes} recursively
|
|
105
|
+
// * @param model
|
|
106
|
+
// * @param accum
|
|
107
|
+
// * @param prefixes
|
|
108
|
+
// *
|
|
109
|
+
// * @function getAllPropertyDecoratorsRecursive
|
|
110
|
+
// * @memberOf module:db-decorators.Repository
|
|
111
|
+
// */
|
|
112
|
+
// export const getAllPropertyDecoratorsRecursive = function <T extends Model>(
|
|
113
|
+
// model: T,
|
|
114
|
+
// accum: { [indexer: string]: any[] } | undefined,
|
|
115
|
+
// ...prefixes: string[]
|
|
116
|
+
// ): { [indexer: string]: any[] } | undefined {
|
|
117
|
+
// const accumulator = accum || {};
|
|
118
|
+
// const mergeDecorators = function (decs: { [indexer: string]: any[] }) {
|
|
119
|
+
// const pushOrSquash = (key: string, ...values: any[]) => {
|
|
120
|
+
// values.forEach((val) => {
|
|
121
|
+
// let match: any;
|
|
122
|
+
// if (
|
|
123
|
+
// !(match = accumulator[key].find((e) => e.key === val.key)) ||
|
|
124
|
+
// match.props.operation !== val.props.operation
|
|
125
|
+
// ) {
|
|
126
|
+
// accumulator[key].push(val);
|
|
127
|
+
// return;
|
|
128
|
+
// }
|
|
129
|
+
// if (val.key === ModelKeys.TYPE) return;
|
|
130
|
+
// const { handlers, operation } = val.props;
|
|
131
|
+
// if (
|
|
132
|
+
// !operation ||
|
|
133
|
+
// !operation.match(
|
|
134
|
+
// new RegExp(
|
|
135
|
+
// `^(:?${OperationKeys.ON}|${OperationKeys.AFTER})(:?${OperationKeys.CREATE}|${OperationKeys.READ}|${OperationKeys.UPDATE}|${OperationKeys.DELETE})$`
|
|
136
|
+
// )
|
|
137
|
+
// )
|
|
138
|
+
// ) {
|
|
139
|
+
// accumulator[key].push(val);
|
|
140
|
+
// return;
|
|
141
|
+
// }
|
|
142
|
+
// const accumHandlers = match.props.handlers;
|
|
143
|
+
// Object.entries(handlers).forEach(([clazz, handlerDef]) => {
|
|
144
|
+
// if (!(clazz in accumHandlers)) {
|
|
145
|
+
// accumHandlers[clazz] = handlerDef;
|
|
146
|
+
// return;
|
|
147
|
+
// }
|
|
148
|
+
// Object.entries(handlerDef as object).forEach(
|
|
149
|
+
// ([handlerProp, handler]) => {
|
|
150
|
+
// if (!(handlerProp in accumHandlers[clazz])) {
|
|
151
|
+
// accumHandlers[clazz][handlerProp] = handler;
|
|
152
|
+
// return;
|
|
153
|
+
// }
|
|
154
|
+
// Object.entries(handler as object).forEach(
|
|
155
|
+
// ([handlerKey, argsObj]) => {
|
|
156
|
+
// if (!(handlerKey in accumHandlers[clazz][handlerProp])) {
|
|
157
|
+
// accumHandlers[clazz][handlerProp][handlerKey] = argsObj;
|
|
158
|
+
// return;
|
|
159
|
+
// }
|
|
160
|
+
// console.warn(
|
|
161
|
+
// `Skipping handler registration for ${clazz} under prop ${handlerProp} because handler is the same`
|
|
162
|
+
// );
|
|
163
|
+
// }
|
|
164
|
+
// );
|
|
165
|
+
// }
|
|
166
|
+
// );
|
|
167
|
+
// });
|
|
168
|
+
// });
|
|
169
|
+
// };
|
|
170
|
+
// Object.entries(decs).forEach(([key, value]) => {
|
|
171
|
+
// accumulator[key] = accumulator[key] || [];
|
|
172
|
+
// pushOrSquash(key, ...value);
|
|
173
|
+
// });
|
|
174
|
+
// };
|
|
175
|
+
// const decs: { [indexer: string]: any[] } | undefined =
|
|
176
|
+
// Reflection.getAllPropertyDecorators(model, ...prefixes);
|
|
177
|
+
// if (decs) mergeDecorators(decs);
|
|
178
|
+
// if (Object.getPrototypeOf(model) === Object.prototype) return accumulator;
|
|
179
|
+
// // const name = model.constructor.name;
|
|
180
|
+
// const proto = Object.getPrototypeOf(model);
|
|
181
|
+
// if (!proto) return accumulator;
|
|
182
|
+
// // if (proto.constructor && proto.constructor.name === name)
|
|
183
|
+
// // proto = Object.getPrototypeOf(proto)
|
|
184
|
+
// return getAllPropertyDecoratorsRecursive(proto, accumulator, ...prefixes);
|
|
185
|
+
// };
|
|
167
186
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/repository/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/repository/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -136,4 +136,4 @@ export declare function serializeAfterAll<M extends Model, R extends IRepository
|
|
|
136
136
|
* S->>M: Parse JSON back to object
|
|
137
137
|
* M->>C: Return model with deserialized property
|
|
138
138
|
*/
|
|
139
|
-
export declare function serialize(): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
|
|
139
|
+
export declare function serialize(): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import "./validation.js";
|
|
2
|
-
import { date,
|
|
2
|
+
import { date, innerValidationDecorator, required, type, Validation, } from "@decaf-ts/decorator-validation";
|
|
3
3
|
import { DBKeys, DEFAULT_TIMESTAMP_FORMAT } from "./../model/constants.js";
|
|
4
4
|
import { DEFAULT_ERROR_MESSAGES } from "./constants.js";
|
|
5
5
|
import { DBOperations, OperationKeys } from "./../operations/constants.js";
|
|
6
6
|
import { after, on, onCreateUpdate } from "./../operations/decorators.js";
|
|
7
7
|
import { SerializationError } from "./../repository/errors.js";
|
|
8
|
-
import { apply, metadata } from "@decaf-ts/
|
|
9
|
-
import { Repository } from "./../repository/index.js";
|
|
8
|
+
import { Decoration, propMetadata, apply, metadata, } from "@decaf-ts/decoration";
|
|
10
9
|
/**
|
|
11
10
|
* @description Prevents a property from being modified after initial creation.
|
|
12
11
|
* @summary Marks the property as readonly, causing validation errors if attempts are made to modify it during updates.
|
|
@@ -16,11 +15,17 @@ import { Repository } from "./../repository/index.js";
|
|
|
16
15
|
* @category Property Decorators
|
|
17
16
|
*/
|
|
18
17
|
export function readonly(message = DEFAULT_ERROR_MESSAGES.READONLY.INVALID) {
|
|
19
|
-
const key =
|
|
20
|
-
|
|
21
|
-
.define(propMetadata(key, {
|
|
18
|
+
const key = DBKeys.READONLY;
|
|
19
|
+
const meta = {
|
|
22
20
|
message: message,
|
|
23
|
-
|
|
21
|
+
description: `defines the attribute as readOnly`,
|
|
22
|
+
async: false,
|
|
23
|
+
};
|
|
24
|
+
return Decoration.for(key)
|
|
25
|
+
.define({
|
|
26
|
+
decorator: innerValidationDecorator,
|
|
27
|
+
args: [readonly, key, meta],
|
|
28
|
+
})
|
|
24
29
|
.apply();
|
|
25
30
|
}
|
|
26
31
|
/**
|
|
@@ -196,6 +201,6 @@ export async function serializeAfterAll(context, data, key, model) {
|
|
|
196
201
|
* M->>C: Return model with deserialized property
|
|
197
202
|
*/
|
|
198
203
|
export function serialize() {
|
|
199
|
-
return apply(onCreateUpdate(serializeOnCreateUpdate), after(DBOperations.ALL, serializeAfterAll), type([String
|
|
204
|
+
return apply(onCreateUpdate(serializeOnCreateUpdate), after(DBOperations.ALL, serializeAfterAll), type([String, Object]), metadata(DBKeys.SERIALIZE, {}));
|
|
200
205
|
}
|
|
201
206
|
//# sourceMappingURL=decorators.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/validation/decorators.ts"],"names":[],"mappings":"AAAA,yBAAsB;AACtB,OAAO,EACL,IAAI,EACJ,
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/validation/decorators.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
};
|
|
10
10
|
import { validator, Validator } from "@decaf-ts/decorator-validation";
|
|
11
11
|
import { DEFAULT_ERROR_MESSAGES, UpdateValidationKeys } from "./../constants.js";
|
|
12
|
-
import { isEqual } from "@decaf-ts/
|
|
12
|
+
import { isEqual } from "@decaf-ts/decorator-validation";
|
|
13
13
|
/**
|
|
14
14
|
* @description A validator that ensures properties marked as readonly cannot be modified during updates.
|
|
15
15
|
* @summary Validator for the {@link readonly} decorator that checks if a value has been changed during an update operation. It compares the new value with the old value and returns an error message if they are not equal.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadOnlyValidator.js","sourceRoot":"","sources":["../../../../src/validation/validators/ReadOnlyValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,0BAAqB;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ReadOnlyValidator.js","sourceRoot":"","sources":["../../../../src/validation/validators/ReadOnlyValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,0BAAqB;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,SAAS;IAC9C;QACE,KAAK,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;OAMG;IACH,6DAA6D;IAC7D,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;OAOG;IACI,eAAe,CACpB,KAAU,EACV,QAAa,EACb,OAAgB;QAEhB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,OAAO,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;YAC7B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;CACF,CAAA;AApCY,iBAAiB;IAD7B,SAAS,CAAC,oBAAoB,CAAC,QAAQ,CAAC;;GAC5B,iBAAiB,CAoC7B"}
|
|
@@ -4,8 +4,7 @@ exports.id = id;
|
|
|
4
4
|
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
5
5
|
const validation_1 = require("./../validation/index.cjs");
|
|
6
6
|
const constants_1 = require("./../model/constants.cjs");
|
|
7
|
-
const
|
|
8
|
-
const reflection_1 = require("@decaf-ts/reflection");
|
|
7
|
+
const decoration_1 = require("@decaf-ts/decoration");
|
|
9
8
|
/**
|
|
10
9
|
* @description Decorator that marks a property as an ID field
|
|
11
10
|
* @summary Creates a composite decorator that marks a property as required, readonly, and as the ID field for database operations
|
|
@@ -14,6 +13,11 @@ const reflection_1 = require("@decaf-ts/reflection");
|
|
|
14
13
|
* @category Property Decorators
|
|
15
14
|
*/
|
|
16
15
|
function id() {
|
|
17
|
-
|
|
16
|
+
function idDecorator() {
|
|
17
|
+
return function idDecorator(model, prop) {
|
|
18
|
+
return (0, decoration_1.propMetadata)(decoration_1.Metadata.key(constants_1.DBKeys.ID, prop), {})(model, prop);
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
return (0, decoration_1.apply)((0, decorator_validation_1.required)(), (0, validation_1.readonly)(), idDecorator());
|
|
18
22
|
}
|
|
19
23
|
//# sourceMappingURL=decorators.js.map
|
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
* @function id
|
|
6
6
|
* @category Property Decorators
|
|
7
7
|
*/
|
|
8
|
-
export declare function id(): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
|
|
8
|
+
export declare function id(): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/identity/decorators.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/identity/decorators.ts"],"names":[],"mappings":";;AAYA,gBAQC;AApBD,yEAA0D;AAC1D,0DAAyC;AACzC,wDAA4C;AAC5C,qDAAqE;AAErE;;;;;;GAMG;AACH,SAAgB,EAAE;IAChB,SAAS,WAAW;QAClB,OAAO,SAAS,WAAW,CAAC,KAAa,EAAE,IAAU;YACnD,OAAO,IAAA,yBAAY,EAAC,qBAAQ,CAAC,GAAG,CAAC,kBAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,IAAA,kBAAK,EAAC,IAAA,+BAAQ,GAAE,EAAE,IAAA,qBAAQ,GAAE,EAAE,WAAW,EAAE,CAAC,CAAC;AACtD,CAAC"}
|
package/lib/identity/index.cjs
CHANGED
|
@@ -15,5 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./decorators.cjs"), exports);
|
|
18
|
-
__exportStar(require("./utils.cjs"), exports);
|
|
19
18
|
//# sourceMappingURL=index.js.map
|
package/lib/identity/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAA6B
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAA6B"}
|