@decaf-ts/db-decorators 0.6.19 → 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 +5 -4
- 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 +5 -4
- 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":"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"}
|
|
@@ -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":"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"}
|
|
@@ -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.
|
|
@@ -14,7 +15,7 @@ export type ModelExtension<M extends Model = Model> = M extends Model ? M : neve
|
|
|
14
15
|
* @description Configuration flags for repository operations.
|
|
15
16
|
* @summary Defines the configuration options that control repository behavior during operations.
|
|
16
17
|
* These flags manage context relationships, validation behavior, operation metadata, and error handling.
|
|
17
|
-
* @
|
|
18
|
+
* @interface RepositoryFlags
|
|
18
19
|
* @property {Context} [parentContext] - The parent context for hierarchical operations
|
|
19
20
|
* @property {Context[]} [childContexts] - Child contexts spawned from this context
|
|
20
21
|
* @property {any[]} [callArgs] - Arguments passed to the operation
|
|
@@ -27,7 +28,7 @@ export type ModelExtension<M extends Model = Model> = M extends Model ? M : neve
|
|
|
27
28
|
* @property {boolean} rebuildWithTransient - Whether to include transient properties when rebuilding models
|
|
28
29
|
* @memberOf module:db-decorators
|
|
29
30
|
*/
|
|
30
|
-
export
|
|
31
|
+
export interface RepositoryFlags {
|
|
31
32
|
parentContext?: Context<any>;
|
|
32
33
|
childContexts?: Context<any>[];
|
|
33
34
|
callArgs?: any[];
|
|
@@ -38,4 +39,4 @@ export type RepositoryFlags = {
|
|
|
38
39
|
operation?: OperationKeys;
|
|
39
40
|
breakOnHandlerError: boolean;
|
|
40
41
|
rebuildWithTransient: boolean;
|
|
41
|
-
}
|
|
42
|
+
}
|
|
@@ -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":"AACA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,qCAAgC;AACzE,OAAO,EAAE,aAAa,EAAE,oBAAiB;AAIzC,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,cAAc,GACf,sCAAiC;AAElC,OAAO,EAAe,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAqB7D;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,UAC5B,GAAQ,EACR,IAAY,EACZ,CAAmB,EACnB,KAA0C;IAE1C,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;IAChC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,iCAAiC,CAAC,CAAC;IACtE,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;IAEpB,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QAC5D,KAAK,GAAG,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IAE1D,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI;QAAE,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAE1E,OAAO,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAOvC,IAAO,EACP,OAAU,EACV,KAAQ,EACR,SAAiB,EACjB,MAAc,EACd,QAAY;IAEZ,MAAM,UAAU,GACd,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAE5C,IAAI,CAAC,UAAU;QAAE,OAAO;IAExB,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAC3E,MAAM,iBAAiB,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAE3D,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnC,MAAM,IAAI,GAAU;YAClB,OAAO;YACP,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5C,KAAK;SACN,CAAC;QAEF,IAAI,SAAS,KAAK,aAAa,CAAC,MAAM,IAAI,MAAM,KAAK,aAAa,CAAC,EAAE,EAAE,CAAC;YACtE,IAAI,CAAC,QAAQ;gBACX,MAAM,IAAI,aAAa,CAAC,wCAAwC,CAAC,CAAC;YACpE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC;YACH,MAAO,GAAG,CAAC,OAAiD,CAAC,KAAK,CAChE,IAAI,EACJ,IAA6B,CAC9B,CAAC;QACJ,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,6BAA6B,GAAG,CAAC,OAAO,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,kBAAkB,CAAC,EAAE,CAAC;YAC5H,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;gBAAE,MAAM,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAQ,EACR,SAAiB,EACjB,WAAoB;IAEpB,MAAM,MAAM,GAAG,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEhD,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAC7B,KAAK,CAAC,WAA6B,EACnC,eAAe,CAAC,UAAU,CAC3B,CAAC;IAEF,IAAI,CAAC,UAAU;QAAE,OAAO;IACxB,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CACnC,CAAC,KAAsD,EAAE,SAAS,EAAE,EAAE;QACpE,MAAM,GAAG,GAAG,MAAM;YAChB,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;YACrC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,GAAG;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAE1D,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK;gBAAE,KAAK,GAAG,EAAE,CAAC;YACvB,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EACD,SAAS,CACV,CAAC;AACJ,CAAC;AAED,MAAM;AACN,4GAA4G;AAC5G,kBAAkB;AAClB,kBAAkB;AAClB,qBAAqB;AACrB,KAAK;AACL,iDAAiD;AACjD,+CAA+C;AAC/C,MAAM;AACN,+EAA+E;AAC/E,cAAc;AACd,qDAAqD;AACrD,0BAA0B;AAC1B,gDAAgD;AAChD,qCAAqC;AACrC,4EAA4E;AAC5E,gEAAgE;AAChE,kCAAkC;AAClC,0BAA0B;AAC1B,eAAe;AACf,0EAA0E;AAC1E,0DAA0D;AAC1D,cAAc;AACd,wCAAwC;AACxC,oBAAoB;AACpB,YAAY;AAEZ,kDAAkD;AAElD,qDAAqD;AAErD,eAAe;AACf,0BAA0B;AAC1B,8BAA8B;AAC9B,0BAA0B;AAC1B,oKAAoK;AACpK,gBAAgB;AAChB,cAAc;AACd,cAAc;AACd,wCAAwC;AACxC,oBAAoB;AACpB,YAAY;AAEZ,sDAAsD;AAEtD,sEAAsE;AACtE,6CAA6C;AAC7C,iDAAiD;AACjD,sBAAsB;AACtB,cAAc;AAEd,0DAA0D;AAC1D,4CAA4C;AAC5C,8DAA8D;AAC9D,+DAA+D;AAC/D,0BAA0B;AAC1B,kBAAkB;AAElB,2DAA2D;AAC3D,+CAA+C;AAC/C,8EAA8E;AAC9E,+EAA+E;AAC/E,8BAA8B;AAC9B,sBAAsB;AACtB,kCAAkC;AAClC,yHAAyH;AACzH,uBAAuB;AACvB,oBAAoB;AACpB,mBAAmB;AACnB,gBAAgB;AAChB,eAAe;AACf,cAAc;AACd,YAAY;AACZ,SAAS;AAET,uDAAuD;AACvD,mDAAmD;AACnD,qCAAqC;AACrC,UAAU;AACV,OAAO;AAEP,2DAA2D;AAC3D,+DAA+D;AAC/D,qCAAqC;AAErC,+EAA+E;AAE/E,4CAA4C;AAC5C,gDAAgD;AAChD,oCAAoC;AACpC,iEAAiE;AACjE,gDAAgD;AAChD,+EAA+E;AAC/E,KAAK"}
|
|
@@ -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":"AAAA,yBAAsB;AACtB,OAAO,EACL,IAAI,EACJ,wBAAwB,EAExB,QAAQ,EACR,IAAI,EACJ,UAAU,GACX,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAAE,gCAA2B;AACtE,OAAO,EAAE,sBAAsB,EAAE,uBAAoB;AACrD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,qCAAgC;AACtE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,sCAAiC;AAErE,OAAO,EAAE,kBAAkB,EAAE,kCAA6B;AAG1D,OAAO,EACL,UAAU,EACV,YAAY,EACZ,KAAK,EACL,QAAQ,GACT,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CACtB,UAAkB,sBAAsB,CAAC,QAAQ,CAAC,OAAO;IAEzD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC5B,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,mCAAmC;QAChD,KAAK,EAAE,KAAK;KACb,CAAC;IACF,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;SACvB,MAAM,CAAC;QACN,SAAS,EAAE,wBAAwB;QACnC,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC;KAC5B,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAM3B,OAAU,EAAE,IAAO,EAAE,GAAY,EAAE,KAAQ;IACnD,KAAa,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,UAAU,SAAS,CACvB,YAA6B,YAAY,CAAC,aAA2C,EACrF,SAAiB,wBAAwB;IAEzC,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEnD,SAAS,EAAE,CAAC,SAA0B,EAAE,MAAc;QACpD,MAAM,UAAU,GAAU;YACxB,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,SAAS,CAAC,IAAI,CAAC;YACnD,QAAQ,CAAC,sBAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC;YACnD,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;gBAC7C,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,MAAM;aACf,CAAC;YACF,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC;SAChC,CAAC;QACF,IAAI,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChD,UAAU,CAAC,IAAI,CACb,YAAY,CAAC,GAAG,EAAE;gBAChB,OAAO,EAAE,sBAAsB,CAAC,SAAS,CAAC,OAAO;aAClD,CAAC,CACH,CAAC;;YACC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;SACvB,MAAM,CAAC;QACN,SAAS,EAAE,EAAE;QACb,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;KAC1B,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAMlC,OAAU,EAAE,IAAO,EAAE,GAAY,EAAE,KAAQ;IACpD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO;IACxB,IAAI,CAAC;QACH,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAe,CAAC;QACtD,6DAA6D;IAC/D,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,IAAI,kBAAkB,CAC1B,uBAAuB,GAAG,CAAC,QAAQ,EAAE,sBAAsB,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CACvF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAM5B,OAAU,EAAE,IAAO,EAAE,GAAY,EAAE,KAAQ;IACpD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO;IACxB,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,QAAQ;QAAE,OAAO;IAE3C,IAAI,CAAC;QACH,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,IAAI,kBAAkB,CAC1B,yBAAyB,GAAG,CAAC,QAAQ,EAAE,sBAAsB,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAC5F,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,KAAK,CACV,cAAc,CAAC,uBAAuB,CAAC,EACvC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAC1C,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtB,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -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