@decaf-ts/decoration 0.8.3 → 0.8.5
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/decoration.cjs +1 -1
- package/dist/decoration.cjs.map +1 -1
- package/dist/decoration.js +1 -1
- package/dist/decoration.js.map +1 -1
- package/lib/decoration/Decoration.cjs +42 -16
- package/lib/decoration/Decoration.d.ts +1 -0
- package/lib/decoration/Decoration.js.map +1 -1
- package/lib/decoration/flavourRegistry.cjs +29 -0
- package/lib/decoration/flavourRegistry.d.ts +9 -0
- package/lib/decoration/flavourRegistry.js.map +1 -0
- package/lib/decoration/index.cjs +2 -0
- package/lib/decoration/index.d.ts +2 -0
- package/lib/decoration/index.js.map +1 -1
- package/lib/decoration/metadataLink.cjs +26 -0
- package/lib/decoration/metadataLink.d.ts +8 -0
- package/lib/decoration/metadataLink.js.map +1 -0
- package/lib/decorators.cjs +17 -197
- package/lib/decorators.d.ts +1 -107
- package/lib/decorators.js.map +1 -1
- package/lib/esm/decoration/Decoration.d.ts +1 -0
- package/lib/esm/decoration/Decoration.js +40 -14
- package/lib/esm/decoration/Decoration.js.map +1 -1
- package/lib/esm/decoration/flavourRegistry.d.ts +9 -0
- package/lib/esm/decoration/flavourRegistry.js +26 -0
- package/lib/esm/decoration/flavourRegistry.js.map +1 -0
- package/lib/esm/decoration/index.d.ts +2 -0
- package/lib/esm/decoration/index.js +2 -0
- package/lib/esm/decoration/index.js.map +1 -1
- package/lib/esm/decoration/metadataLink.d.ts +8 -0
- package/lib/esm/decoration/metadataLink.js +20 -0
- package/lib/esm/decoration/metadataLink.js.map +1 -0
- package/lib/esm/decorators.d.ts +1 -107
- package/lib/esm/decorators.js +6 -187
- package/lib/esm/decorators.js.map +1 -1
- package/lib/esm/index.d.ts +1 -0
- package/lib/esm/index.js +1 -0
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/metadata/Metadata.d.ts +5 -0
- package/lib/esm/metadata/Metadata.js +34 -4
- package/lib/esm/metadata/Metadata.js.map +1 -1
- package/lib/esm/shared/core.d.ts +107 -0
- package/lib/esm/shared/core.js +184 -0
- package/lib/esm/shared/core.js.map +1 -0
- package/lib/esm/shared/index.d.ts +1 -0
- package/lib/esm/shared/index.js +2 -0
- package/lib/esm/shared/index.js.map +1 -0
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/index.cjs +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js.map +1 -1
- package/lib/metadata/Metadata.cjs +34 -4
- package/lib/metadata/Metadata.d.ts +5 -0
- package/lib/metadata/Metadata.js.map +1 -1
- package/lib/shared/core.cjs +195 -0
- package/lib/shared/core.d.ts +107 -0
- package/lib/shared/core.js.map +1 -0
- package/lib/shared/index.cjs +18 -0
- package/lib/shared/index.d.ts +1 -0
- package/lib/shared/index.js.map +1 -0
- package/lib/version.cjs +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +3 -2
- package/workdocs/assets/slogans.json +198 -0
package/lib/esm/decorators.js
CHANGED
|
@@ -1,54 +1,12 @@
|
|
|
1
|
-
import { Metadata } from "./metadata/Metadata.js";
|
|
2
|
-
import { DecorationKeys } from "./constants.js";
|
|
3
1
|
import { Decoration } from "./decoration/Decoration.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
* @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Decorator that writes the metadata when applied.
|
|
10
|
-
* @function metadata
|
|
11
|
-
* @category Decorators
|
|
12
|
-
*/
|
|
13
|
-
export function metadata(key, value) {
|
|
14
|
-
return function metadata(model, prop,
|
|
15
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
16
|
-
descriptor) {
|
|
17
|
-
let targetModel = model;
|
|
18
|
-
if (prop) {
|
|
19
|
-
targetModel =
|
|
20
|
-
typeof model === "function"
|
|
21
|
-
? model
|
|
22
|
-
: model.constructor || model;
|
|
23
|
-
}
|
|
24
|
-
Metadata.set(targetModel, key, value);
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
export function metadataArray(key, ...data) {
|
|
28
|
-
return function metadataArray(target, propertyKey, descriptor) {
|
|
29
|
-
const existingData = Metadata.get(target, key) || [];
|
|
30
|
-
const metaKey = propertyKey ? Metadata.key(key, propertyKey) : key;
|
|
31
|
-
const arr = [metadata(metaKey, [...new Set([...existingData, ...data])])];
|
|
32
|
-
return apply(...arr)(target, propertyKey, descriptor);
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
function manageFlavourRMetadata(object, flavour) {
|
|
36
|
-
const canonical = Metadata.constr(object);
|
|
37
|
-
const flav = Metadata["innerGet"](Metadata.Symbol(object), DecorationKeys.FLAVOUR) || Decoration.defaultFlavour;
|
|
38
|
-
const old = Metadata["innerGet"](Symbol.for(DecorationKeys.FLAVOUR), flav) || [];
|
|
39
|
-
const filtered = old.filter((o) => {
|
|
40
|
-
return Metadata.constr(o) !== canonical;
|
|
41
|
-
});
|
|
42
|
-
Metadata.set(DecorationKeys.FLAVOUR, flav, filtered);
|
|
43
|
-
const current = new Set(Metadata["innerGet"](Symbol.for(DecorationKeys.FLAVOUR), flavour) || []);
|
|
44
|
-
current.add(object);
|
|
45
|
-
Metadata.set(DecorationKeys.FLAVOUR, flavour, [...current]);
|
|
46
|
-
}
|
|
2
|
+
import { DecorationKeys } from "./constants.js";
|
|
3
|
+
import { Metadata } from "./metadata/Metadata.js";
|
|
4
|
+
import { assignFlavour } from "./decoration/flavourRegistry.js";
|
|
5
|
+
import { metadata } from "./shared/core.js";
|
|
6
|
+
export { metadata, metadataArray, param, paramMetadata, prop, method, apply, propMetadata, methodMetadata, } from "./shared/core.js";
|
|
47
7
|
export function uses(flavour) {
|
|
48
8
|
return (object) => {
|
|
49
|
-
const constr =
|
|
50
|
-
manageFlavourRMetadata(object, flavour);
|
|
51
|
-
Metadata.set(constr, DecorationKeys.FLAVOUR, flavour);
|
|
9
|
+
const constr = assignFlavour(object, flavour, Decoration.defaultFlavour);
|
|
52
10
|
if (flavour !== Decoration.defaultFlavour) {
|
|
53
11
|
Decoration["resolvePendingDecorators"](constr, flavour);
|
|
54
12
|
}
|
|
@@ -72,145 +30,6 @@ export function uses(flavour) {
|
|
|
72
30
|
return object;
|
|
73
31
|
};
|
|
74
32
|
}
|
|
75
|
-
/**
|
|
76
|
-
* @description Captures and stores a property's design type.
|
|
77
|
-
* @summary Decorator factory that reads the reflected `design:type` for a property and registers it in the metadata store under the properties map.
|
|
78
|
-
* @return {PropertyDecorator} Decorator that records the property's type metadata when applied.
|
|
79
|
-
* @function prop
|
|
80
|
-
* @category Property Decorators
|
|
81
|
-
*/
|
|
82
|
-
export function prop() {
|
|
83
|
-
// function innerProp() {
|
|
84
|
-
return function innerProp(model, prop) {
|
|
85
|
-
const metadataTarget = typeof model === "function" ? model.prototype : model;
|
|
86
|
-
const designType = Reflect.getOwnMetadata(DecorationKeys.DESIGN_TYPE, metadataTarget, prop);
|
|
87
|
-
return metadata(Metadata.key(DecorationKeys.PROPERTIES, prop), designType)(model, prop);
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* @description Captures a single parameter type for the decorated method.
|
|
92
|
-
* @summary Decorator factory that ensures the method metadata is initialised and stores the reflected parameter constructor at the provided index.
|
|
93
|
-
* @return {ParameterDecorator} Decorator that records the parameter type when applied.
|
|
94
|
-
* @function param
|
|
95
|
-
* @category Parameter Decorators
|
|
96
|
-
* @mermaid
|
|
97
|
-
* sequenceDiagram
|
|
98
|
-
* participant U as User Code
|
|
99
|
-
* participant P as param()
|
|
100
|
-
* participant M as Metadata
|
|
101
|
-
* U->>P: param()(target, key, index)
|
|
102
|
-
* P->>U: method()(target, key, descriptor)
|
|
103
|
-
* P->>M: params(constructor, key)
|
|
104
|
-
* M-->>P: parameter constructors[]
|
|
105
|
-
* P->>M: set(methods.key.index, constructor)
|
|
106
|
-
* P-->>U: parameter recorded
|
|
107
|
-
*/
|
|
108
|
-
export function param() {
|
|
109
|
-
return function param(model, prop, index) {
|
|
110
|
-
if (!prop)
|
|
111
|
-
throw new Error(`The @param decorator can only be applied to methods`);
|
|
112
|
-
method()(model, prop, Object.getOwnPropertyDescriptor(model, prop));
|
|
113
|
-
const paramTpes = Metadata.params(model.constructor, prop);
|
|
114
|
-
if (!paramTpes)
|
|
115
|
-
throw new Error(`Missing parameter types for ${String(prop)}`);
|
|
116
|
-
if (index >= paramTpes.length)
|
|
117
|
-
throw new Error(`Parameter index ${index} out of range for ${String(prop)}`);
|
|
118
|
-
metadata(Metadata.key(DecorationKeys.METHODS, prop, index.toString()), paramTpes[index])(model, prop);
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* @description Extends a parameter decorator with additional metadata.
|
|
123
|
-
* @summary Applies the default `param()` decorator and augments the stored metadata with an arbitrary key/value pair.
|
|
124
|
-
* @param {string} key Metadata key to associate with the parameter.
|
|
125
|
-
* @param {any} value Metadata value persisted under the given key.
|
|
126
|
-
* @return {ParameterDecorator} Decorator that records both the parameter design type and additional metadata.
|
|
127
|
-
* @function paramMetadata
|
|
128
|
-
* @category Parameter Decorators
|
|
129
|
-
*/
|
|
130
|
-
export function paramMetadata(key, value) {
|
|
131
|
-
return function paramMetadata(target, prop, index) {
|
|
132
|
-
return apply(param(), metadata(Metadata.key(DecorationKeys.METHODS, prop, key), value))(target, prop, index);
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* @description Records method design-time metadata.
|
|
137
|
-
* @summary Decorator factory that captures a method's reflected parameter and return types, storing them under the appropriate metadata keys so they can be inspected at runtime.
|
|
138
|
-
* @return {MethodDecorator} Decorator that persists the method's signature information into the metadata store when applied.
|
|
139
|
-
* @function method
|
|
140
|
-
* @mermaid
|
|
141
|
-
* sequenceDiagram
|
|
142
|
-
* participant U as User Code
|
|
143
|
-
* participant F as method()
|
|
144
|
-
* participant M as Metadata
|
|
145
|
-
* U->>F: method()(target, key, descriptor)
|
|
146
|
-
* F->>U: Reflect.getOwnMetadata(design:paramtypes)
|
|
147
|
-
* F->>U: Reflect.getOwnMetadata(design:returntype)
|
|
148
|
-
* F->>M: set(methods.key.design:paramtypes, params)
|
|
149
|
-
* F->>M: set(methods.key.design:returntype, returnType)
|
|
150
|
-
* F-->>U: decorated function
|
|
151
|
-
* @category Method Decorators
|
|
152
|
-
*/
|
|
153
|
-
export function method() {
|
|
154
|
-
return function method(obj, prop, descriptor) {
|
|
155
|
-
const designParams = Reflect.getOwnMetadata(DecorationKeys.DESIGN_PARAMS, obj, prop);
|
|
156
|
-
const designReturn = Reflect.getOwnMetadata(DecorationKeys.DESIGN_RETURN, obj, prop);
|
|
157
|
-
return apply(metadata(Metadata.key(DecorationKeys.METHODS, prop, DecorationKeys.DESIGN_PARAMS), designParams), metadata(Metadata.key(DecorationKeys.METHODS, prop, DecorationKeys.DESIGN_RETURN), designReturn))(obj, prop, descriptor);
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* @description Decorator factory that applies multiple decorators to a single target.
|
|
162
|
-
* @summary Creates a composite decorator that applies multiple decorators in sequence, correctly handling class, method, property, and parameter decorators.
|
|
163
|
-
* @param {Array<ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator>} decorators Collection of decorators to apply.
|
|
164
|
-
* @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Decorator function that applies all provided decorators to the target.
|
|
165
|
-
* @function apply
|
|
166
|
-
* @mermaid
|
|
167
|
-
* sequenceDiagram
|
|
168
|
-
* participant U as User Code
|
|
169
|
-
* participant A as apply(...decorators)
|
|
170
|
-
* participant D as Decorator
|
|
171
|
-
* U->>A: get decorator(...decorators)
|
|
172
|
-
* A->>U: returns (target, key?, desc?) => void
|
|
173
|
-
* U->>A: invoke on target
|
|
174
|
-
* loop for each decorator
|
|
175
|
-
* A->>D: invoke appropriate decorator type
|
|
176
|
-
* end
|
|
177
|
-
* @category Decorators
|
|
178
|
-
*/
|
|
179
|
-
export function apply(...decorators) {
|
|
180
|
-
return (target, propertyKey, descriptor) => {
|
|
181
|
-
for (const decorator of decorators) {
|
|
182
|
-
if (target instanceof Function && !descriptor) {
|
|
183
|
-
decorator(target);
|
|
184
|
-
continue;
|
|
185
|
-
}
|
|
186
|
-
decorator(target, propertyKey, descriptor);
|
|
187
|
-
}
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* @description Creates a property metadata decorator.
|
|
192
|
-
* @summary Convenience factory that combines `metadata(key, value)` and `prop()` to both set an arbitrary metadata key and record the property's design type.
|
|
193
|
-
* @param {string} key Metadata key to set for the property.
|
|
194
|
-
* @param {any} value Metadata value to associate with the key.
|
|
195
|
-
* @return {PropertyDecorator} Decorator that sets the metadata and captures the property's type.
|
|
196
|
-
* @function propMetadata
|
|
197
|
-
* @category Property Decorators
|
|
198
|
-
*/
|
|
199
|
-
export function propMetadata(key, value) {
|
|
200
|
-
return apply(metadata(key, value), prop());
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* @description Creates a method metadata decorator.
|
|
204
|
-
* @summary Convenience factory that combines `metadata(key, value)` and `method()` to both set an arbitrary metadata key and record the method's design return and param types.
|
|
205
|
-
* @param {string} key Metadata key to set for the property.
|
|
206
|
-
* @param {any} value Metadata value to associate with the key.
|
|
207
|
-
* @return {MethodDecorator} Decorator that sets the metadata and captures the method's signature metadata.
|
|
208
|
-
* @function methodMetadata
|
|
209
|
-
* @category Method Decorators
|
|
210
|
-
*/
|
|
211
|
-
export function methodMetadata(key, value) {
|
|
212
|
-
return apply(metadata(key, value), method());
|
|
213
|
-
}
|
|
214
33
|
/**
|
|
215
34
|
* @description Attaches a human-readable description to a class or member.
|
|
216
35
|
* @summary Decorator factory that stores a textual description in the metadata store under the appropriate description key for a class or its property.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mCAAgC;AACrD,OAAO,EAAE,cAAc,EAAE,uBAAoB;AAC7C,OAAO,EAAE,QAAQ,EAAE,+BAA4B;AAC/C,OAAO,EAAE,aAAa,EAAE,wCAAqC;AAC7D,OAAO,EAAE,QAAQ,EAAE,yBAAsB;AAEzC,OAAO,EACL,QAAQ,EACR,aAAa,EACb,KAAK,EACL,aAAa,EACb,IAAI,EACJ,MAAM,EACN,KAAK,EACL,YAAY,EACZ,cAAc,GACf,yBAAsB;AAEvB,MAAM,UAAU,IAAI,CAAC,OAAe;IAClC,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;QAEzE,IAAI,OAAO,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;YAC1C,UAAU,CAAC,0BAA0B,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,IAAI,QAA4B,CAAC;YACjC,IAAI,CAAC;gBACH,QAAQ,GAAG,UAAU,CAAC,iBAAiB,CAAC;oBACtC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC;oBACvC,CAAC,CAAC,SAAS,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACP,QAAQ,GAAG,SAAS,CAAC;YACvB,CAAC;YACD,IAAI,QAAQ,IAAI,QAAQ,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;gBACvD,UAAU,CAAC,0BAA0B,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,SAAS,gBAAgB,CAAC,IAAY;QACpC,OAAO,SAAS,gBAAgB,CAC9B,QAAa,EACb,IAAU,EACV,UAAgB;YAEhB,OAAO,QAAQ,CACb,QAAQ,CAAC,GAAG,CACV,cAAc,CAAC,WAAW,EAC1B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAC9C,EACD,IAAI,CACL,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC;SAC9C,MAAM,CAAC;QACN,SAAS,EAAE,gBAAgB;QAC3B,IAAI,EAAE,CAAC,IAAI,CAAC;KACb,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC"}
|
package/lib/esm/index.d.ts
CHANGED
package/lib/esm/index.js
CHANGED
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,sCAA6B;AAC7B,oCAA2B;AAC3B,+BAA4B;AAC5B,gCAA6B;AAC7B,6BAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,sCAA6B;AAC7B,oCAA2B;AAC3B,kCAAyB;AACzB,+BAA4B;AAC5B,gCAA6B;AAC7B,6BAA0B"}
|
|
@@ -81,6 +81,11 @@ export declare class Metadata {
|
|
|
81
81
|
* @summary Maps a Symbol derived from the constructor to its metadata object, enabling efficient lookup.
|
|
82
82
|
*/
|
|
83
83
|
private static _metadata;
|
|
84
|
+
/**
|
|
85
|
+
* @description Property index store keyed by constructor symbol
|
|
86
|
+
* @summary Tracks property keys that have been decorated, independent of metadata bucket mutations.
|
|
87
|
+
*/
|
|
88
|
+
private static _propertiesIndex;
|
|
84
89
|
/**
|
|
85
90
|
* @description Path delimiter for nested metadata keys
|
|
86
91
|
* @summary Used by get/set operations to navigate nested structures, defaults to ObjectKeySplitter.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DecorationKeys, DecorationState, DefaultFlavour, ObjectKeySplitter, } from "./../constants.js";
|
|
2
2
|
import "reflect-metadata";
|
|
3
3
|
import { PACKAGE_NAME, VERSION } from "./../version.js";
|
|
4
|
-
import {
|
|
4
|
+
import { resolvePendingDecorators, resolveFlavour, } from "./../decoration/metadataLink.js";
|
|
5
5
|
/**
|
|
6
6
|
* @description Retrieves a nested value from an object given a path.
|
|
7
7
|
* @summary Walks an object structure using a splitter-delimited path and returns the value at that location or `undefined` if any key is missing.
|
|
@@ -109,6 +109,11 @@ export class Metadata {
|
|
|
109
109
|
* @summary Maps a Symbol derived from the constructor to its metadata object, enabling efficient lookup.
|
|
110
110
|
*/
|
|
111
111
|
static { this._metadata = {}; }
|
|
112
|
+
/**
|
|
113
|
+
* @description Property index store keyed by constructor symbol
|
|
114
|
+
* @summary Tracks property keys that have been decorated, independent of metadata bucket mutations.
|
|
115
|
+
*/
|
|
116
|
+
static { this._propertiesIndex = {}; }
|
|
112
117
|
/**
|
|
113
118
|
* @description Path delimiter for nested metadata keys
|
|
114
119
|
* @summary Used by get/set operations to navigate nested structures, defaults to ObjectKeySplitter.
|
|
@@ -137,7 +142,12 @@ export class Metadata {
|
|
|
137
142
|
* @return {string[]|undefined} Array of property names or `undefined` if no metadata exists.
|
|
138
143
|
*/
|
|
139
144
|
static properties(model) {
|
|
140
|
-
const
|
|
145
|
+
const resolvedModel = this.constr(model);
|
|
146
|
+
const symbol = this.Symbol(resolvedModel);
|
|
147
|
+
const indexed = this._propertiesIndex[symbol];
|
|
148
|
+
if (indexed && indexed.size)
|
|
149
|
+
return [...indexed];
|
|
150
|
+
const meta = this.get(resolvedModel);
|
|
141
151
|
if (!meta || !meta.properties)
|
|
142
152
|
return undefined;
|
|
143
153
|
return Object.keys(meta.properties);
|
|
@@ -166,7 +176,7 @@ export class Metadata {
|
|
|
166
176
|
return this.get(model, this.key(DecorationKeys.DESCRIPTION, (prop ? prop : DecorationKeys.CLASS)));
|
|
167
177
|
}
|
|
168
178
|
static flavourOf(model) {
|
|
169
|
-
return
|
|
179
|
+
return resolveFlavour(model);
|
|
170
180
|
}
|
|
171
181
|
static flavouredAs(flavour) {
|
|
172
182
|
return this.innerGet(Symbol.for(DecorationKeys.FLAVOUR), flavour) || [];
|
|
@@ -267,7 +277,7 @@ export class Metadata {
|
|
|
267
277
|
constructors
|
|
268
278
|
.filter((c) => this.isDecorated(c) === DecorationState.PENDING)
|
|
269
279
|
.forEach((constructor) => {
|
|
270
|
-
|
|
280
|
+
resolvePendingDecorators(constructor);
|
|
271
281
|
});
|
|
272
282
|
if (constructors.length === 0) {
|
|
273
283
|
const fallbackSymbol = Symbol.for(resolvedModel.toString());
|
|
@@ -428,6 +438,26 @@ export class Metadata {
|
|
|
428
438
|
if (typeof model !== "string")
|
|
429
439
|
model = this.constr(model) || model;
|
|
430
440
|
const symbol = typeof model === "string" ? Symbol.for(model) : this.Symbol(model);
|
|
441
|
+
if (typeof key === "string") {
|
|
442
|
+
const propPrefix = `${DecorationKeys.PROPERTIES}${this.splitter}`;
|
|
443
|
+
if (key.startsWith(propPrefix)) {
|
|
444
|
+
const prop = key.slice(propPrefix.length);
|
|
445
|
+
if (prop.length) {
|
|
446
|
+
const set = this._propertiesIndex[symbol] || new Set();
|
|
447
|
+
set.add(prop);
|
|
448
|
+
this._propertiesIndex[symbol] = set;
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
else if (key === DecorationKeys.PROPERTIES &&
|
|
452
|
+
this.isPlainObject(value)) {
|
|
453
|
+
const set = this._propertiesIndex[symbol] || new Set();
|
|
454
|
+
Object.keys(value).forEach((prop) => {
|
|
455
|
+
set.add(prop);
|
|
456
|
+
});
|
|
457
|
+
if (set.size)
|
|
458
|
+
this._propertiesIndex[symbol] = set;
|
|
459
|
+
}
|
|
460
|
+
}
|
|
431
461
|
this.innerSet(symbol, key, value);
|
|
432
462
|
if (typeof model !== "string" &&
|
|
433
463
|
Metadata.mirror &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Metadata.js","sourceRoot":"","sources":["../../../src/metadata/Metadata.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Metadata.js","sourceRoot":"","sources":["../../../src/metadata/Metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Assigns arbitrary metadata to a target using a string key.
|
|
3
|
+
* @summary Decorator factory that stores a key/value pair in the central metadata store for the provided class or member.
|
|
4
|
+
* @param {string} key Metadata key to associate with the target.
|
|
5
|
+
* @param {any} value Metadata value to store under the given key.
|
|
6
|
+
* @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Decorator that writes the metadata when applied.
|
|
7
|
+
* @function metadata
|
|
8
|
+
* @category Decorators
|
|
9
|
+
*/
|
|
10
|
+
export declare function metadata(key: string, value: any): (model: any, prop?: any, descriptor?: PropertyDescriptor | number) => void;
|
|
11
|
+
export declare function metadataArray(key: string, ...data: any[]): (target: any, propertyKey?: any, descriptor?: any) => void;
|
|
12
|
+
/**
|
|
13
|
+
* @description Captures and stores a property's design type.
|
|
14
|
+
* @summary Decorator factory that reads the reflected `design:type` for a property and registers it in the metadata store under the properties map.
|
|
15
|
+
* @return {PropertyDecorator} Decorator that records the property's type metadata when applied.
|
|
16
|
+
* @function prop
|
|
17
|
+
* @category Property Decorators
|
|
18
|
+
*/
|
|
19
|
+
export declare function prop(): (model: object, prop?: any) => void;
|
|
20
|
+
/**
|
|
21
|
+
* @description Captures a single parameter type for the decorated method.
|
|
22
|
+
* @summary Decorator factory that ensures the method metadata is initialised and stores the reflected parameter constructor at the provided index.
|
|
23
|
+
* @return {ParameterDecorator} Decorator that records the parameter type when applied.
|
|
24
|
+
* @function param
|
|
25
|
+
* @category Parameter Decorators
|
|
26
|
+
* @mermaid
|
|
27
|
+
* sequenceDiagram
|
|
28
|
+
* participant U as User Code
|
|
29
|
+
* participant P as param()
|
|
30
|
+
* participant M as Metadata
|
|
31
|
+
* U->>P: param()(target, key, index)
|
|
32
|
+
* P->>U: method()(target, key, descriptor)
|
|
33
|
+
* P->>M: params(constructor, key)
|
|
34
|
+
* M-->>P: parameter constructors[]
|
|
35
|
+
* P->>M: set(methods.key.index, constructor)
|
|
36
|
+
* P-->>U: parameter recorded
|
|
37
|
+
*/
|
|
38
|
+
export declare function param(): (model: object, prop?: any, index?: number) => void;
|
|
39
|
+
/**
|
|
40
|
+
* @description Extends a parameter decorator with additional metadata.
|
|
41
|
+
* @summary Applies the default `param()` decorator and augments the stored metadata with an arbitrary key/value pair.
|
|
42
|
+
* @param {string} key Metadata key to associate with the parameter.
|
|
43
|
+
* @param {any} value Metadata value persisted under the given key.
|
|
44
|
+
* @return {ParameterDecorator} Decorator that records both the parameter design type and additional metadata.
|
|
45
|
+
* @function paramMetadata
|
|
46
|
+
* @category Parameter Decorators
|
|
47
|
+
*/
|
|
48
|
+
export declare function paramMetadata(key: string, value: any): (target: any, prop: any, index: number) => void;
|
|
49
|
+
/**
|
|
50
|
+
* @description Records method design-time metadata.
|
|
51
|
+
* @summary Decorator factory that captures a method's reflected parameter and return types, storing them under the appropriate metadata keys so they can be inspected at runtime.
|
|
52
|
+
* @return {MethodDecorator} Decorator that persists the method's signature information into the metadata store when applied.
|
|
53
|
+
* @function method
|
|
54
|
+
* @mermaid
|
|
55
|
+
* sequenceDiagram
|
|
56
|
+
* participant U as User Code
|
|
57
|
+
* participant F as method()
|
|
58
|
+
* participant M as Metadata
|
|
59
|
+
* U->>F: method()(target, key, descriptor)
|
|
60
|
+
* F->>U: Reflect.getOwnMetadata(design:paramtypes)
|
|
61
|
+
* F->>U: Reflect.getOwnMetadata(design:returntype)
|
|
62
|
+
* F->>M: set(methods.key.design:paramtypes, params)
|
|
63
|
+
* F->>M: set(methods.key.design:returntype, returnType)
|
|
64
|
+
* F-->>U: decorated function
|
|
65
|
+
* @category Method Decorators
|
|
66
|
+
*/
|
|
67
|
+
export declare function method(): (obj: any, prop?: any, descriptor?: any) => void;
|
|
68
|
+
/**
|
|
69
|
+
* @description Decorator factory that applies multiple decorators to a single target.
|
|
70
|
+
* @summary Creates a composite decorator that applies multiple decorators in sequence, correctly handling class, method, property, and parameter decorators.
|
|
71
|
+
* @param {Array<ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator>} decorators Collection of decorators to apply.
|
|
72
|
+
* @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Decorator function that applies all provided decorators to the target.
|
|
73
|
+
* @function apply
|
|
74
|
+
* @mermaid
|
|
75
|
+
* sequenceDiagram
|
|
76
|
+
* participant U as User Code
|
|
77
|
+
* participant A as apply(...decorators)
|
|
78
|
+
* participant D as Decorator
|
|
79
|
+
* U->>A: get decorator(...decorators)
|
|
80
|
+
* A->>U: returns (target, key?, desc?) => void
|
|
81
|
+
* U->>A: invoke on target
|
|
82
|
+
* loop for each decorator
|
|
83
|
+
* A->>D: invoke appropriate decorator type
|
|
84
|
+
* end
|
|
85
|
+
* @category Decorators
|
|
86
|
+
*/
|
|
87
|
+
export declare function apply(...decorators: Array<ClassDecorator | MethodDecorator | PropertyDecorator | ParameterDecorator>): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
|
|
88
|
+
/**
|
|
89
|
+
* @description Creates a property metadata decorator.
|
|
90
|
+
* @summary Convenience factory that combines `metadata(key, value)` and `prop()` to both set an arbitrary metadata key and record the property's design type.
|
|
91
|
+
* @param {string} key Metadata key to set for the property.
|
|
92
|
+
* @param {any} value Metadata value to associate with the key.
|
|
93
|
+
* @return {PropertyDecorator} Decorator that sets the metadata and captures the property's type.
|
|
94
|
+
* @function propMetadata
|
|
95
|
+
* @category Property Decorators
|
|
96
|
+
*/
|
|
97
|
+
export declare function propMetadata(key: string, value: any): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
|
|
98
|
+
/**
|
|
99
|
+
* @description Creates a method metadata decorator.
|
|
100
|
+
* @summary Convenience factory that combines `metadata(key, value)` and `method()` to both set an arbitrary metadata key and record the method's design return and param types.
|
|
101
|
+
* @param {string} key Metadata key to set for the property.
|
|
102
|
+
* @param {any} value Metadata value to associate with the key.
|
|
103
|
+
* @return {MethodDecorator} Decorator that sets the metadata and captures the method's signature metadata.
|
|
104
|
+
* @function methodMetadata
|
|
105
|
+
* @category Method Decorators
|
|
106
|
+
*/
|
|
107
|
+
export declare function methodMetadata(key: string, value: any): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
|