@decaf-ts/decorator-validation 1.11.11 → 1.11.13
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/decorator-validation.cjs +1 -1
- package/dist/decorator-validation.cjs.map +1 -1
- package/dist/decorator-validation.js +1 -1
- package/dist/decorator-validation.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/model/Model.d.ts +0 -103
- package/lib/esm/model/Model.js +11 -250
- package/lib/esm/model/Model.js.map +1 -1
- package/lib/esm/model/ModelRegistry.d.ts +181 -0
- package/lib/esm/model/ModelRegistry.js +291 -0
- package/lib/esm/model/ModelRegistry.js.map +1 -0
- 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/model/validation.d.ts +1 -1
- package/lib/esm/model/validation.js +5 -5
- package/lib/esm/model/validation.js.map +1 -1
- package/lib/esm/overrides/Metadata.d.ts +4 -1
- package/lib/esm/overrides/overrides.js +49 -0
- package/lib/esm/overrides/overrides.js.map +1 -1
- package/lib/esm/overrides/types.d.ts +1 -1
- package/lib/esm/utils/constants.d.ts +1 -0
- package/lib/esm/utils/constants.js +1 -0
- package/lib/esm/utils/constants.js.map +1 -1
- package/lib/esm/utils/index.d.ts +1 -0
- package/lib/esm/utils/index.js +1 -0
- package/lib/esm/utils/index.js.map +1 -1
- package/lib/esm/utils/serialization.d.ts +0 -41
- package/lib/esm/utils/serialization.js +1 -72
- package/lib/esm/utils/serialization.js.map +1 -1
- package/lib/esm/utils/serializers.d.ts +41 -0
- package/lib/esm/utils/serializers.js +73 -0
- package/lib/esm/utils/serializers.js.map +1 -0
- package/lib/esm/validation/Validation.js +1 -1
- package/lib/esm/validation/Validation.js.map +1 -1
- package/lib/esm/validation/Validators/constants.d.ts +1 -0
- package/lib/esm/validation/Validators/constants.js +1 -0
- package/lib/esm/validation/Validators/constants.js.map +1 -1
- package/lib/esm/validation/Validators/utils.js +1 -1
- package/lib/esm/validation/Validators/utils.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/model/Model.cjs +14 -255
- package/lib/model/Model.d.ts +0 -103
- package/lib/model/Model.js.map +1 -1
- package/lib/model/ModelRegistry.cjs +296 -0
- package/lib/model/ModelRegistry.d.ts +181 -0
- package/lib/model/ModelRegistry.js.map +1 -0
- 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/model/validation.cjs +5 -5
- package/lib/model/validation.d.ts +1 -1
- package/lib/model/validation.js.map +1 -1
- package/lib/overrides/Metadata.d.ts +4 -1
- package/lib/overrides/overrides.cjs +49 -0
- package/lib/overrides/overrides.js.map +1 -1
- package/lib/overrides/types.d.ts +1 -1
- package/lib/utils/constants.cjs +2 -1
- package/lib/utils/constants.d.ts +1 -0
- package/lib/utils/constants.js.map +1 -1
- package/lib/utils/index.cjs +1 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/serialization.cjs +2 -74
- package/lib/utils/serialization.d.ts +0 -41
- package/lib/utils/serialization.js.map +1 -1
- package/lib/utils/serializers.cjs +77 -0
- package/lib/utils/serializers.d.ts +41 -0
- package/lib/utils/serializers.js.map +1 -0
- package/lib/validation/Validation.cjs +4 -4
- package/lib/validation/Validation.js.map +1 -1
- package/lib/validation/Validators/constants.cjs +1 -0
- package/lib/validation/Validators/constants.d.ts +1 -0
- package/lib/validation/Validators/constants.js.map +1 -1
- package/lib/validation/Validators/utils.cjs +6 -6
- package/lib/validation/Validators/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ModelRegistryManager = void 0;
|
|
4
|
+
exports.bulkModelRegister = bulkModelRegister;
|
|
5
|
+
const decoration_1 = require("@decaf-ts/decoration");
|
|
6
|
+
const constants_1 = require("./constants.cjs");
|
|
7
|
+
const index_1 = require("./../validation/index.cjs");
|
|
8
|
+
let modelBuilderFunction;
|
|
9
|
+
let actingModelRegistry;
|
|
10
|
+
/**
|
|
11
|
+
* @description Registry manager for model constructors that enables serialization and rebuilding
|
|
12
|
+
* @summary The ModelRegistryManager implements the ModelRegistry interface and provides
|
|
13
|
+
* functionality for registering, retrieving, and building model instances. It maintains
|
|
14
|
+
* a cache of model constructors indexed by name, allowing for efficient lookup and instantiation.
|
|
15
|
+
* This class is essential for the serialization and deserialization of model objects.
|
|
16
|
+
*
|
|
17
|
+
* @param {function(Record<string, any>): boolean} [testFunction] - Function to test if an object is a model, defaults to {@link Model#isModel}
|
|
18
|
+
*
|
|
19
|
+
* @class ModelRegistryManager
|
|
20
|
+
* @template M Type of model that can be registered, must extend Model
|
|
21
|
+
* @implements ModelRegistry<M>
|
|
22
|
+
* @category Model
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* // Create a model registry
|
|
27
|
+
* const registry = new ModelRegistryManager();
|
|
28
|
+
*
|
|
29
|
+
* // Register a model class
|
|
30
|
+
* registry.register(User);
|
|
31
|
+
*
|
|
32
|
+
* // Retrieve a model constructor by name
|
|
33
|
+
* const UserClass = registry.get("User");
|
|
34
|
+
*
|
|
35
|
+
* // Build a model instance from a plain object
|
|
36
|
+
* const userData = { name: "John", age: 30 };
|
|
37
|
+
* const user = registry.build(userData, "User");
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @mermaid
|
|
41
|
+
* sequenceDiagram
|
|
42
|
+
* participant C as Client
|
|
43
|
+
* participant R as ModelRegistryManager
|
|
44
|
+
* participant M as Model Class
|
|
45
|
+
*
|
|
46
|
+
* C->>R: new ModelRegistryManager(testFunction)
|
|
47
|
+
* C->>R: register(ModelClass)
|
|
48
|
+
* R->>R: Store in cache
|
|
49
|
+
* C->>R: get("ModelName")
|
|
50
|
+
* R-->>C: ModelClass constructor
|
|
51
|
+
* C->>R: build(data, "ModelName")
|
|
52
|
+
* R->>R: Get constructor from cache
|
|
53
|
+
* R->>M: new ModelClass(data)
|
|
54
|
+
* M-->>R: Model instance
|
|
55
|
+
* R-->>C: Model instance
|
|
56
|
+
*/
|
|
57
|
+
class ModelRegistryManager {
|
|
58
|
+
constructor(testFunction = decoration_1.Metadata.isModel) {
|
|
59
|
+
this.cache = {};
|
|
60
|
+
this.testFunction = testFunction;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* @description Registers a model constructor with the registry
|
|
64
|
+
* @summary Adds a model constructor to the registry cache, making it available for
|
|
65
|
+
* later retrieval and instantiation. If no name is provided, the constructor's name
|
|
66
|
+
* property is used as the key in the registry.
|
|
67
|
+
*
|
|
68
|
+
* @param {ModelConstructor<M>} constructor - The model constructor to register
|
|
69
|
+
* @param {string} [name] - Optional name to register the constructor under, defaults to constructor.name
|
|
70
|
+
* @return {void}
|
|
71
|
+
* @throws {Error} If the constructor is not a function
|
|
72
|
+
*/
|
|
73
|
+
register(constructor, name) {
|
|
74
|
+
if (typeof constructor !== "function")
|
|
75
|
+
throw new Error("Model registering failed. Missing Class name or constructor");
|
|
76
|
+
name = name || constructor.name;
|
|
77
|
+
this.cache[name] = constructor;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* @summary Gets a registered Model {@link ModelConstructor}
|
|
81
|
+
* @param {string} name
|
|
82
|
+
*/
|
|
83
|
+
get(name) {
|
|
84
|
+
try {
|
|
85
|
+
return this.cache[name];
|
|
86
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
87
|
+
}
|
|
88
|
+
catch (e) {
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* @param {Record<string, any>} obj
|
|
94
|
+
* @param {string} [clazz] when provided, it will attempt to find the matching constructor
|
|
95
|
+
*
|
|
96
|
+
* @throws Error If clazz is not found, or obj is not a {@link Model} meaning it has no {@link ModelKeys.ANCHOR} property
|
|
97
|
+
*/
|
|
98
|
+
build(obj = {}, clazz) {
|
|
99
|
+
if (!clazz && !this.testFunction(obj))
|
|
100
|
+
throw new Error("Provided obj is not a Model object");
|
|
101
|
+
const name = clazz || decoration_1.Metadata.modelName(obj.constructor);
|
|
102
|
+
if (!(name in this.cache))
|
|
103
|
+
throw new Error(`Provided class ${name} is not a registered Model object`);
|
|
104
|
+
return new this.cache[name](obj);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* @description Configures the global model builder function
|
|
108
|
+
* @summary Sets the Global {@link ModelBuilderFunction} used for building model instances
|
|
109
|
+
*
|
|
110
|
+
* @param {ModelBuilderFunction} [builder] - The builder function to set as the global builder
|
|
111
|
+
* @return {void}
|
|
112
|
+
*/
|
|
113
|
+
static setBuilder(builder) {
|
|
114
|
+
modelBuilderFunction = builder;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* @description Retrieves the currently configured global model builder function
|
|
118
|
+
* @summary Returns the current global {@link ModelBuilderFunction} used for building model instances
|
|
119
|
+
*
|
|
120
|
+
* @return {ModelBuilderFunction | undefined} - The current global builder function or undefined if not set
|
|
121
|
+
*/
|
|
122
|
+
static getBuilder() {
|
|
123
|
+
return modelBuilderFunction || ModelRegistryManager.fromModel;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* @description Copies and rebuilds properties from a source object to a model instance, handling nested models
|
|
127
|
+
* @summary Repopulates the instance with properties from the new Model Object, recursively rebuilding nested models
|
|
128
|
+
*
|
|
129
|
+
* @template T
|
|
130
|
+
* @param {T} self - The target model instance to update
|
|
131
|
+
* @param {T | Record<string, any>} [obj] - The source object containing properties to copy
|
|
132
|
+
* @return {T} - The updated model instance with rebuilt nested models
|
|
133
|
+
*
|
|
134
|
+
* @mermaid
|
|
135
|
+
* sequenceDiagram
|
|
136
|
+
* participant C as Client
|
|
137
|
+
* participant M as Model.fromModel
|
|
138
|
+
* participant B as Model.build
|
|
139
|
+
* participant R as Reflection
|
|
140
|
+
*
|
|
141
|
+
* C->>M: fromModel(self, obj)
|
|
142
|
+
* M->>M: Get attributes from self
|
|
143
|
+
* loop For each property
|
|
144
|
+
* M->>M: Copy property from obj to self
|
|
145
|
+
* alt Property is a model
|
|
146
|
+
* M->>M: Check if property is a model
|
|
147
|
+
* M->>B: build(property, modelType)
|
|
148
|
+
* B-->>M: Return built model
|
|
149
|
+
* else Property is a complex type
|
|
150
|
+
* M->>R: Get property decorators
|
|
151
|
+
* R-->>M: Return decorators
|
|
152
|
+
* M->>M: Filter type decorators
|
|
153
|
+
* alt Property is Array/Set with list decorator
|
|
154
|
+
* M->>M: Process each item in collection
|
|
155
|
+
* loop For each item
|
|
156
|
+
* M->>B: build(item, itemModelType)
|
|
157
|
+
* B-->>M: Return built model
|
|
158
|
+
* end
|
|
159
|
+
* else Property is another model type
|
|
160
|
+
* M->>B: build(property, propertyType)
|
|
161
|
+
* B-->>M: Return built model
|
|
162
|
+
* end
|
|
163
|
+
* end
|
|
164
|
+
* end
|
|
165
|
+
* M-->>C: Return updated self
|
|
166
|
+
*/
|
|
167
|
+
static fromModel(self, obj) {
|
|
168
|
+
if (!obj)
|
|
169
|
+
obj = {};
|
|
170
|
+
let decorators;
|
|
171
|
+
const props = decoration_1.Metadata.getAttributes(self);
|
|
172
|
+
const proto = Object.getPrototypeOf(self);
|
|
173
|
+
let descriptor;
|
|
174
|
+
for (const prop of props) {
|
|
175
|
+
try {
|
|
176
|
+
self[prop] =
|
|
177
|
+
obj[prop] ??
|
|
178
|
+
self[prop] ??
|
|
179
|
+
undefined;
|
|
180
|
+
}
|
|
181
|
+
catch (e) {
|
|
182
|
+
descriptor = Object.getOwnPropertyDescriptor(proto, prop);
|
|
183
|
+
if (!descriptor || descriptor.writable)
|
|
184
|
+
throw new Error(`Unable to write property ${prop} to model: ${e}`);
|
|
185
|
+
}
|
|
186
|
+
if (typeof self[prop] !== "object")
|
|
187
|
+
continue;
|
|
188
|
+
const propM = decoration_1.Metadata.isPropertyModel(self, prop);
|
|
189
|
+
if (propM) {
|
|
190
|
+
try {
|
|
191
|
+
self[prop] =
|
|
192
|
+
ModelRegistryManager.getRegistry().build(self[prop], typeof propM === "string" ? propM : undefined);
|
|
193
|
+
}
|
|
194
|
+
catch (e) {
|
|
195
|
+
console.log(e);
|
|
196
|
+
}
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
decorators = decoration_1.Metadata.allowedTypes(self.constructor, prop);
|
|
200
|
+
if (!decorators || !decorators.length)
|
|
201
|
+
throw new Error(`failed to find decorators for property ${prop}`);
|
|
202
|
+
const clazz = decorators.map((t) => typeof t === "function" && !t.name ? t() : t);
|
|
203
|
+
const reserved = Object.values(constants_1.ReservedModels);
|
|
204
|
+
clazz.forEach((c) => {
|
|
205
|
+
if (!reserved.includes(c))
|
|
206
|
+
try {
|
|
207
|
+
switch (c.name) {
|
|
208
|
+
case "Array":
|
|
209
|
+
case "Set": {
|
|
210
|
+
const validation = decoration_1.Metadata.validationFor(self.constructor, prop);
|
|
211
|
+
if (!validation || !validation[index_1.ValidationKeys.LIST])
|
|
212
|
+
break;
|
|
213
|
+
const listDec = validation[index_1.ValidationKeys.LIST];
|
|
214
|
+
const clazzName = listDec.clazz
|
|
215
|
+
.map((t) => typeof t === "function" && !t.name
|
|
216
|
+
? t()
|
|
217
|
+
: t)
|
|
218
|
+
.find((t) => !constants_1.jsTypes.includes(t.name));
|
|
219
|
+
if (c.name === "Array")
|
|
220
|
+
self[prop] = self[prop].map((el) => {
|
|
221
|
+
return ["object", "function"].includes(typeof el) &&
|
|
222
|
+
clazzName
|
|
223
|
+
? ModelRegistryManager.getRegistry().build(el, clazzName.name)
|
|
224
|
+
: el;
|
|
225
|
+
});
|
|
226
|
+
if (c.name === "Set") {
|
|
227
|
+
const s = new Set();
|
|
228
|
+
for (const v of self[prop]) {
|
|
229
|
+
if (["object", "function"].includes(typeof v) &&
|
|
230
|
+
clazzName) {
|
|
231
|
+
s.add(ModelRegistryManager.getRegistry().build(v, clazzName.name));
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
s.add(v);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
self[prop] = s;
|
|
238
|
+
}
|
|
239
|
+
break;
|
|
240
|
+
}
|
|
241
|
+
default:
|
|
242
|
+
if (typeof self[prop] !== "undefined" &&
|
|
243
|
+
ModelRegistryManager.getRegistry().get(c.name))
|
|
244
|
+
self[prop] =
|
|
245
|
+
ModelRegistryManager.getRegistry().build(self[prop], c.name);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
catch (e) {
|
|
249
|
+
console.log(e);
|
|
250
|
+
// do nothing. we have no registry of this class
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
return self;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* @description Provides access to the current model registry
|
|
258
|
+
* @summary Returns the current {@link ModelRegistryManager} instance, creating one if it doesn't exist
|
|
259
|
+
*
|
|
260
|
+
* @return {ModelRegistry<any>} - The current model registry, defaults to a new {@link ModelRegistryManager} if not set
|
|
261
|
+
* @private
|
|
262
|
+
*/
|
|
263
|
+
static getRegistry() {
|
|
264
|
+
if (!actingModelRegistry)
|
|
265
|
+
actingModelRegistry = new ModelRegistryManager();
|
|
266
|
+
return actingModelRegistry;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* @description Configures the model registry to be used by the Model system
|
|
270
|
+
* @summary Sets the current model registry to a custom implementation
|
|
271
|
+
*
|
|
272
|
+
* @param {BuilderRegistry<any>} modelRegistry - The new implementation of Registry to use
|
|
273
|
+
* @return {void}
|
|
274
|
+
*/
|
|
275
|
+
static setRegistry(modelRegistry) {
|
|
276
|
+
actingModelRegistry = modelRegistry;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
exports.ModelRegistryManager = ModelRegistryManager;
|
|
280
|
+
/**
|
|
281
|
+
* @summary Bulk Registers Models
|
|
282
|
+
* @description Useful when using bundlers that might not evaluate all the code at once
|
|
283
|
+
*
|
|
284
|
+
* @template M extends Model
|
|
285
|
+
* @param {Array<Constructor<M>> | Array<{name: string, constructor: Constructor<M>}>} [models]
|
|
286
|
+
*
|
|
287
|
+
* @memberOf module:decorator-validation
|
|
288
|
+
* @category Model
|
|
289
|
+
*/
|
|
290
|
+
function bulkModelRegister(...models) {
|
|
291
|
+
models.forEach((m) => {
|
|
292
|
+
const constructor = (m.constructor ? m.constructor : m);
|
|
293
|
+
ModelRegistryManager.getRegistry().register(constructor, m.name);
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
//# sourceMappingURL=ModelRegistry.js.map
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
2
|
+
import { ModelBuilderFunction, ModelConstructor } from "./types";
|
|
3
|
+
import { type Model } from "./Model";
|
|
4
|
+
import { BuilderRegistry } from "../utils/registry";
|
|
5
|
+
/**
|
|
6
|
+
* @description Registry type for storing and retrieving model constructors
|
|
7
|
+
* @summary The ModelRegistry type defines a registry for model constructors that extends
|
|
8
|
+
* the BuilderRegistry interface. It provides a standardized way to register, retrieve,
|
|
9
|
+
* and build model instances, enabling the model system to work with different types of models.
|
|
10
|
+
*
|
|
11
|
+
* @interface ModelRegistry
|
|
12
|
+
* @template T Type of model that can be registered, must extend Model
|
|
13
|
+
* @extends BuilderRegistry<T>
|
|
14
|
+
* @memberOf module:decorator-validation
|
|
15
|
+
* @category Model
|
|
16
|
+
*/
|
|
17
|
+
export type ModelRegistry<T extends Model> = BuilderRegistry<T>;
|
|
18
|
+
/**
|
|
19
|
+
* @description Registry manager for model constructors that enables serialization and rebuilding
|
|
20
|
+
* @summary The ModelRegistryManager implements the ModelRegistry interface and provides
|
|
21
|
+
* functionality for registering, retrieving, and building model instances. It maintains
|
|
22
|
+
* a cache of model constructors indexed by name, allowing for efficient lookup and instantiation.
|
|
23
|
+
* This class is essential for the serialization and deserialization of model objects.
|
|
24
|
+
*
|
|
25
|
+
* @param {function(Record<string, any>): boolean} [testFunction] - Function to test if an object is a model, defaults to {@link Model#isModel}
|
|
26
|
+
*
|
|
27
|
+
* @class ModelRegistryManager
|
|
28
|
+
* @template M Type of model that can be registered, must extend Model
|
|
29
|
+
* @implements ModelRegistry<M>
|
|
30
|
+
* @category Model
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* // Create a model registry
|
|
35
|
+
* const registry = new ModelRegistryManager();
|
|
36
|
+
*
|
|
37
|
+
* // Register a model class
|
|
38
|
+
* registry.register(User);
|
|
39
|
+
*
|
|
40
|
+
* // Retrieve a model constructor by name
|
|
41
|
+
* const UserClass = registry.get("User");
|
|
42
|
+
*
|
|
43
|
+
* // Build a model instance from a plain object
|
|
44
|
+
* const userData = { name: "John", age: 30 };
|
|
45
|
+
* const user = registry.build(userData, "User");
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* @mermaid
|
|
49
|
+
* sequenceDiagram
|
|
50
|
+
* participant C as Client
|
|
51
|
+
* participant R as ModelRegistryManager
|
|
52
|
+
* participant M as Model Class
|
|
53
|
+
*
|
|
54
|
+
* C->>R: new ModelRegistryManager(testFunction)
|
|
55
|
+
* C->>R: register(ModelClass)
|
|
56
|
+
* R->>R: Store in cache
|
|
57
|
+
* C->>R: get("ModelName")
|
|
58
|
+
* R-->>C: ModelClass constructor
|
|
59
|
+
* C->>R: build(data, "ModelName")
|
|
60
|
+
* R->>R: Get constructor from cache
|
|
61
|
+
* R->>M: new ModelClass(data)
|
|
62
|
+
* M-->>R: Model instance
|
|
63
|
+
* R-->>C: Model instance
|
|
64
|
+
*/
|
|
65
|
+
export declare class ModelRegistryManager<M extends Model<true | false>> implements ModelRegistry<M> {
|
|
66
|
+
private cache;
|
|
67
|
+
private readonly testFunction;
|
|
68
|
+
constructor(testFunction?: (obj: Record<string, any>) => boolean);
|
|
69
|
+
/**
|
|
70
|
+
* @description Registers a model constructor with the registry
|
|
71
|
+
* @summary Adds a model constructor to the registry cache, making it available for
|
|
72
|
+
* later retrieval and instantiation. If no name is provided, the constructor's name
|
|
73
|
+
* property is used as the key in the registry.
|
|
74
|
+
*
|
|
75
|
+
* @param {ModelConstructor<M>} constructor - The model constructor to register
|
|
76
|
+
* @param {string} [name] - Optional name to register the constructor under, defaults to constructor.name
|
|
77
|
+
* @return {void}
|
|
78
|
+
* @throws {Error} If the constructor is not a function
|
|
79
|
+
*/
|
|
80
|
+
register(constructor: ModelConstructor<M>, name?: string): void;
|
|
81
|
+
/**
|
|
82
|
+
* @summary Gets a registered Model {@link ModelConstructor}
|
|
83
|
+
* @param {string} name
|
|
84
|
+
*/
|
|
85
|
+
get(name: string): ModelConstructor<M> | undefined;
|
|
86
|
+
/**
|
|
87
|
+
* @param {Record<string, any>} obj
|
|
88
|
+
* @param {string} [clazz] when provided, it will attempt to find the matching constructor
|
|
89
|
+
*
|
|
90
|
+
* @throws Error If clazz is not found, or obj is not a {@link Model} meaning it has no {@link ModelKeys.ANCHOR} property
|
|
91
|
+
*/
|
|
92
|
+
build(obj?: Record<string, any>, clazz?: string): M;
|
|
93
|
+
/**
|
|
94
|
+
* @description Configures the global model builder function
|
|
95
|
+
* @summary Sets the Global {@link ModelBuilderFunction} used for building model instances
|
|
96
|
+
*
|
|
97
|
+
* @param {ModelBuilderFunction} [builder] - The builder function to set as the global builder
|
|
98
|
+
* @return {void}
|
|
99
|
+
*/
|
|
100
|
+
static setBuilder(builder?: ModelBuilderFunction): void;
|
|
101
|
+
/**
|
|
102
|
+
* @description Retrieves the currently configured global model builder function
|
|
103
|
+
* @summary Returns the current global {@link ModelBuilderFunction} used for building model instances
|
|
104
|
+
*
|
|
105
|
+
* @return {ModelBuilderFunction | undefined} - The current global builder function or undefined if not set
|
|
106
|
+
*/
|
|
107
|
+
static getBuilder(): ModelBuilderFunction | undefined;
|
|
108
|
+
/**
|
|
109
|
+
* @description Copies and rebuilds properties from a source object to a model instance, handling nested models
|
|
110
|
+
* @summary Repopulates the instance with properties from the new Model Object, recursively rebuilding nested models
|
|
111
|
+
*
|
|
112
|
+
* @template T
|
|
113
|
+
* @param {T} self - The target model instance to update
|
|
114
|
+
* @param {T | Record<string, any>} [obj] - The source object containing properties to copy
|
|
115
|
+
* @return {T} - The updated model instance with rebuilt nested models
|
|
116
|
+
*
|
|
117
|
+
* @mermaid
|
|
118
|
+
* sequenceDiagram
|
|
119
|
+
* participant C as Client
|
|
120
|
+
* participant M as Model.fromModel
|
|
121
|
+
* participant B as Model.build
|
|
122
|
+
* participant R as Reflection
|
|
123
|
+
*
|
|
124
|
+
* C->>M: fromModel(self, obj)
|
|
125
|
+
* M->>M: Get attributes from self
|
|
126
|
+
* loop For each property
|
|
127
|
+
* M->>M: Copy property from obj to self
|
|
128
|
+
* alt Property is a model
|
|
129
|
+
* M->>M: Check if property is a model
|
|
130
|
+
* M->>B: build(property, modelType)
|
|
131
|
+
* B-->>M: Return built model
|
|
132
|
+
* else Property is a complex type
|
|
133
|
+
* M->>R: Get property decorators
|
|
134
|
+
* R-->>M: Return decorators
|
|
135
|
+
* M->>M: Filter type decorators
|
|
136
|
+
* alt Property is Array/Set with list decorator
|
|
137
|
+
* M->>M: Process each item in collection
|
|
138
|
+
* loop For each item
|
|
139
|
+
* M->>B: build(item, itemModelType)
|
|
140
|
+
* B-->>M: Return built model
|
|
141
|
+
* end
|
|
142
|
+
* else Property is another model type
|
|
143
|
+
* M->>B: build(property, propertyType)
|
|
144
|
+
* B-->>M: Return built model
|
|
145
|
+
* end
|
|
146
|
+
* end
|
|
147
|
+
* end
|
|
148
|
+
* M-->>C: Return updated self
|
|
149
|
+
*/
|
|
150
|
+
static fromModel<T extends Model>(self: T, obj?: T | Record<string, any>): T;
|
|
151
|
+
/**
|
|
152
|
+
* @description Provides access to the current model registry
|
|
153
|
+
* @summary Returns the current {@link ModelRegistryManager} instance, creating one if it doesn't exist
|
|
154
|
+
*
|
|
155
|
+
* @return {ModelRegistry<any>} - The current model registry, defaults to a new {@link ModelRegistryManager} if not set
|
|
156
|
+
* @private
|
|
157
|
+
*/
|
|
158
|
+
static getRegistry(): BuilderRegistry<any>;
|
|
159
|
+
/**
|
|
160
|
+
* @description Configures the model registry to be used by the Model system
|
|
161
|
+
* @summary Sets the current model registry to a custom implementation
|
|
162
|
+
*
|
|
163
|
+
* @param {BuilderRegistry<any>} modelRegistry - The new implementation of Registry to use
|
|
164
|
+
* @return {void}
|
|
165
|
+
*/
|
|
166
|
+
static setRegistry(modelRegistry: BuilderRegistry<any>): void;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* @summary Bulk Registers Models
|
|
170
|
+
* @description Useful when using bundlers that might not evaluate all the code at once
|
|
171
|
+
*
|
|
172
|
+
* @template M extends Model
|
|
173
|
+
* @param {Array<Constructor<M>> | Array<{name: string, constructor: Constructor<M>}>} [models]
|
|
174
|
+
*
|
|
175
|
+
* @memberOf module:decorator-validation
|
|
176
|
+
* @category Model
|
|
177
|
+
*/
|
|
178
|
+
export declare function bulkModelRegister<M extends Model>(...models: (Constructor<M> | {
|
|
179
|
+
name: string;
|
|
180
|
+
constructor: Constructor<M>;
|
|
181
|
+
})[]): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelRegistry.js","sourceRoot":"","sources":["../../src/model/ModelRegistry.ts"],"names":[],"mappings":"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"}
|
package/lib/model/index.cjs
CHANGED
|
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./constants.cjs"), exports);
|
|
18
18
|
__exportStar(require("./construction.cjs"), exports);
|
|
19
19
|
__exportStar(require("./decorators.cjs"), exports);
|
|
20
|
+
__exportStar(require("./ModelRegistry.cjs"), exports); // registry before model on purpose
|
|
20
21
|
__exportStar(require("./Model.cjs"), exports);
|
|
21
22
|
__exportStar(require("./ModelErrorDefinition.cjs"), exports);
|
|
22
23
|
__exportStar(require("./Builder.cjs"), exports);
|
package/lib/model/index.d.ts
CHANGED
package/lib/model/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA4B;AAC5B,qDAA+B;AAC/B,mDAA6B;AAC7B,8CAAwB;AACxB,6DAAuC;AACvC,gDAA0B;AAC1B,8CAAwB;AACxB,mDAA6B;AAC7B,8CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA4B;AAC5B,qDAA+B;AAC/B,mDAA6B;AAC7B,sDAAgC,CAAC,mCAAmC;AACpE,8CAAwB;AACxB,6DAAuC;AACvC,gDAA0B;AAC1B,8CAAwB;AACxB,mDAA6B;AAC7B,8CAAwB"}
|
package/lib/model/validation.cjs
CHANGED
|
@@ -7,13 +7,13 @@ exports.validateDecorators = validateDecorators;
|
|
|
7
7
|
exports.validate = validate;
|
|
8
8
|
const ModelErrorDefinition_1 = require("./ModelErrorDefinition.cjs");
|
|
9
9
|
const constants_1 = require("./../utils/constants.cjs");
|
|
10
|
-
const Model_1 = require("./Model.cjs");
|
|
11
10
|
const Validation_1 = require("./../validation/Validation.cjs");
|
|
12
11
|
const constants_2 = require("./../validation/Validators/constants.cjs");
|
|
13
12
|
const PathProxy_1 = require("./../utils/PathProxy.cjs");
|
|
14
13
|
const constants_3 = require("./../constants/index.cjs");
|
|
15
14
|
const utils_1 = require("./utils.cjs");
|
|
16
15
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
16
|
+
const ModelRegistry_1 = require("./ModelRegistry.cjs");
|
|
17
17
|
/**
|
|
18
18
|
* Safely sets temporary metadata on an object
|
|
19
19
|
*/
|
|
@@ -51,7 +51,7 @@ function validateChildValue(prop, childValue, parentModel, allowedTypes, async,
|
|
|
51
51
|
let err = undefined;
|
|
52
52
|
let atLeastOneMatched = false;
|
|
53
53
|
for (const allowedType of allowedTypes) {
|
|
54
|
-
const Constr =
|
|
54
|
+
const Constr = ModelRegistry_1.ModelRegistryManager.getRegistry().get(allowedType);
|
|
55
55
|
if (!Constr) {
|
|
56
56
|
err = new ModelErrorDefinition_1.ModelErrorDefinition({
|
|
57
57
|
[prop]: {
|
|
@@ -162,7 +162,7 @@ function validateDecorators(model, prop, value, decorators, async, ...propsToIgn
|
|
|
162
162
|
// const reserved = Object.values(ReservedModels).map((v) => v.toLowerCase()) as string[];
|
|
163
163
|
const errs = values.map((childValue) => {
|
|
164
164
|
// if (Model.isModel(v) && !reserved.includes(v) {
|
|
165
|
-
if (
|
|
165
|
+
if (decoration_1.Metadata.isModel(childValue)) {
|
|
166
166
|
const nestedPropsToIgnore = getChildNestedPropsToIgnore(prop, ...propsToIgnore);
|
|
167
167
|
return validateChildValue(prop, childValue, model, types.flat(), !!async, ...nestedPropsToIgnore);
|
|
168
168
|
// return getNestedValidationErrors(childValue, model, async);
|
|
@@ -287,13 +287,13 @@ function validate(model, async, ...propsToIgnore) {
|
|
|
287
287
|
const propErrors = validateDecorators(model, propKey, propValue, decorators, async, ...propsToIgnore) || {};
|
|
288
288
|
// Check for nested properties.
|
|
289
289
|
// To prevent unnecessary processing, "propValue" must be defined
|
|
290
|
-
const isConstr =
|
|
290
|
+
const isConstr = decoration_1.Metadata.isPropertyModel(model, propKey);
|
|
291
291
|
const hasPropValue = propValue !== null && propValue !== undefined;
|
|
292
292
|
if (isConstr && hasPropValue) {
|
|
293
293
|
// If property comes from a relation and has populate flag set to false, this will have the value of the id of that relation, instead of a model.
|
|
294
294
|
// We need to capture that and excempt it from throwing an error. This is being handled in the core Metadata.validationExceptions.
|
|
295
295
|
const Constr = designTypes
|
|
296
|
-
.map((d) =>
|
|
296
|
+
.map((d) => ModelRegistry_1.ModelRegistryManager.getRegistry().get(d.name || d))
|
|
297
297
|
.find((d) => !!d);
|
|
298
298
|
const designTypeNames = designTypes.map((d) => {
|
|
299
299
|
if (typeof d === "function")
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ModelErrorDefinition } from "./ModelErrorDefinition";
|
|
2
|
-
import { Model } from "./Model";
|
|
2
|
+
import type { Model } from "./Model";
|
|
3
3
|
import { ConditionalAsync } from "../types";
|
|
4
4
|
export declare function validateChildValue<M extends Model>(prop: string, childValue: any, parentModel: M, allowedTypes: string[], async: boolean, ...propsToIgnore: string[]): string | undefined | ModelErrorDefinition | Promise<string | undefined | ModelErrorDefinition>;
|
|
5
5
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/model/validation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/model/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { Model } from "../model/Model";
|
|
|
2
2
|
import "@decaf-ts/decoration";
|
|
3
3
|
import { Constructor } from "@decaf-ts/decoration";
|
|
4
4
|
import { designTypeReturn, ExtendedMetadata } from "./types";
|
|
5
|
-
import { ValidationMetadata } from "../validation/
|
|
5
|
+
import { ValidationMetadata } from "../validation/types";
|
|
6
6
|
declare module "@decaf-ts/decoration" {
|
|
7
7
|
namespace Metadata {
|
|
8
8
|
/**
|
|
@@ -125,5 +125,8 @@ declare module "@decaf-ts/decoration" {
|
|
|
125
125
|
* const { designTypes, designType } = Metadata.getPropDesignTypes(User.constructor, 'name');
|
|
126
126
|
*/
|
|
127
127
|
function getPropDesignTypes<M>(model: Constructor<M>, property: keyof M): designTypeReturn;
|
|
128
|
+
function isModel(target: Record<string, any>): boolean;
|
|
129
|
+
function isPropertyModel<M extends Model>(target: M, attribute: string): boolean | string | undefined;
|
|
130
|
+
function getAttributes<V extends Model>(model: Constructor<V> | V): string[];
|
|
128
131
|
}
|
|
129
132
|
}
|