@decaf-ts/decoration 0.8.4 → 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.
Files changed (62) hide show
  1. package/README.md +1 -1
  2. package/dist/decoration.cjs +1 -1
  3. package/dist/decoration.cjs.map +1 -1
  4. package/dist/decoration.js +1 -1
  5. package/dist/decoration.js.map +1 -1
  6. package/lib/decoration/Decoration.cjs +36 -17
  7. package/lib/decoration/Decoration.d.ts +1 -0
  8. package/lib/decoration/Decoration.js.map +1 -1
  9. package/lib/decoration/flavourRegistry.cjs +29 -0
  10. package/lib/decoration/flavourRegistry.d.ts +9 -0
  11. package/lib/decoration/flavourRegistry.js.map +1 -0
  12. package/lib/decoration/index.cjs +2 -0
  13. package/lib/decoration/index.d.ts +2 -0
  14. package/lib/decoration/index.js.map +1 -1
  15. package/lib/decoration/metadataLink.cjs +26 -0
  16. package/lib/decoration/metadataLink.d.ts +8 -0
  17. package/lib/decoration/metadataLink.js.map +1 -0
  18. package/lib/decorators.cjs +17 -209
  19. package/lib/decorators.d.ts +1 -107
  20. package/lib/decorators.js.map +1 -1
  21. package/lib/esm/decoration/Decoration.d.ts +1 -0
  22. package/lib/esm/decoration/Decoration.js +33 -14
  23. package/lib/esm/decoration/Decoration.js.map +1 -1
  24. package/lib/esm/decoration/flavourRegistry.d.ts +9 -0
  25. package/lib/esm/decoration/flavourRegistry.js +26 -0
  26. package/lib/esm/decoration/flavourRegistry.js.map +1 -0
  27. package/lib/esm/decoration/index.d.ts +2 -0
  28. package/lib/esm/decoration/index.js +2 -0
  29. package/lib/esm/decoration/index.js.map +1 -1
  30. package/lib/esm/decoration/metadataLink.d.ts +8 -0
  31. package/lib/esm/decoration/metadataLink.js +20 -0
  32. package/lib/esm/decoration/metadataLink.js.map +1 -0
  33. package/lib/esm/decorators.d.ts +1 -107
  34. package/lib/esm/decorators.js +6 -199
  35. package/lib/esm/decorators.js.map +1 -1
  36. package/lib/esm/index.d.ts +1 -0
  37. package/lib/esm/index.js +1 -0
  38. package/lib/esm/index.js.map +1 -1
  39. package/lib/esm/metadata/Metadata.js +3 -3
  40. package/lib/esm/metadata/Metadata.js.map +1 -1
  41. package/lib/esm/shared/core.d.ts +107 -0
  42. package/lib/esm/shared/core.js +184 -0
  43. package/lib/esm/shared/core.js.map +1 -0
  44. package/lib/esm/shared/index.d.ts +1 -0
  45. package/lib/esm/shared/index.js +2 -0
  46. package/lib/esm/shared/index.js.map +1 -0
  47. package/lib/esm/version.d.ts +1 -1
  48. package/lib/esm/version.js +1 -1
  49. package/lib/index.cjs +1 -0
  50. package/lib/index.d.ts +1 -0
  51. package/lib/index.js.map +1 -1
  52. package/lib/metadata/Metadata.cjs +3 -3
  53. package/lib/metadata/Metadata.js.map +1 -1
  54. package/lib/shared/core.cjs +195 -0
  55. package/lib/shared/core.d.ts +107 -0
  56. package/lib/shared/core.js.map +1 -0
  57. package/lib/shared/index.cjs +18 -0
  58. package/lib/shared/index.d.ts +1 -0
  59. package/lib/shared/index.js.map +1 -0
  60. package/lib/version.cjs +1 -1
  61. package/lib/version.d.ts +1 -1
  62. package/package.json +1 -1
@@ -1,62 +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
- * @description Assigns arbitrary metadata to a target using a string key.
6
- * @summary Decorator factory that stores a key/value pair in the central metadata store for the provided class or member.
7
- * @param {string} key Metadata key to associate with the target.
8
- * @param {any} value Metadata value to store under the given key.
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, descriptor) {
15
- let targetModel = model;
16
- if (prop) {
17
- targetModel =
18
- typeof model === "function"
19
- ? model
20
- : model.constructor || model;
21
- if (typeof descriptor === "undefined") {
22
- const metadataTarget = typeof model === "function" ? model.prototype : model;
23
- const designType = Reflect.getOwnMetadata(DecorationKeys.DESIGN_TYPE, metadataTarget, prop);
24
- const propKey = Metadata.key(DecorationKeys.PROPERTIES, prop.toString());
25
- const existing = Metadata.get(targetModel, propKey);
26
- if (typeof designType !== "undefined" ||
27
- typeof existing === "undefined") {
28
- Metadata.set(targetModel, propKey, designType);
29
- }
30
- }
31
- }
32
- Metadata.set(targetModel, key, value);
33
- };
34
- }
35
- export function metadataArray(key, ...data) {
36
- return function metadataArray(target, propertyKey, descriptor) {
37
- const existingData = Metadata.get(target, key) || [];
38
- const metaKey = propertyKey ? Metadata.key(key, propertyKey) : key;
39
- const arr = [metadata(metaKey, [...new Set([...existingData, ...data])])];
40
- return apply(...arr)(target, propertyKey, descriptor);
41
- };
42
- }
43
- function manageFlavourRMetadata(object, flavour) {
44
- const canonical = Metadata.constr(object);
45
- const flav = Metadata["innerGet"](Metadata.Symbol(object), DecorationKeys.FLAVOUR) || Decoration.defaultFlavour;
46
- const old = Metadata["innerGet"](Symbol.for(DecorationKeys.FLAVOUR), flav) || [];
47
- const filtered = old.filter((o) => {
48
- return Metadata.constr(o) !== canonical;
49
- });
50
- Metadata.set(DecorationKeys.FLAVOUR, flav, filtered);
51
- const current = new Set(Metadata["innerGet"](Symbol.for(DecorationKeys.FLAVOUR), flavour) || []);
52
- current.add(object);
53
- Metadata.set(DecorationKeys.FLAVOUR, flavour, [...current]);
54
- }
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";
55
7
  export function uses(flavour) {
56
8
  return (object) => {
57
- const constr = Metadata.constr(object);
58
- manageFlavourRMetadata(object, flavour);
59
- Metadata.set(constr, DecorationKeys.FLAVOUR, flavour);
9
+ const constr = assignFlavour(object, flavour, Decoration.defaultFlavour);
60
10
  if (flavour !== Decoration.defaultFlavour) {
61
11
  Decoration["resolvePendingDecorators"](constr, flavour);
62
12
  }
@@ -80,149 +30,6 @@ export function uses(flavour) {
80
30
  return object;
81
31
  };
82
32
  }
83
- /**
84
- * @description Captures and stores a property's design type.
85
- * @summary Decorator factory that reads the reflected `design:type` for a property and registers it in the metadata store under the properties map.
86
- * @return {PropertyDecorator} Decorator that records the property's type metadata when applied.
87
- * @function prop
88
- * @category Property Decorators
89
- */
90
- export function prop() {
91
- // function innerProp() {
92
- return function innerProp(model, prop) {
93
- const metadataTarget = typeof model === "function" ? model.prototype : model;
94
- const designType = Reflect.getOwnMetadata(DecorationKeys.DESIGN_TYPE, metadataTarget, prop);
95
- return metadata(Metadata.key(DecorationKeys.PROPERTIES, prop), designType)(model, prop);
96
- };
97
- }
98
- /**
99
- * @description Captures a single parameter type for the decorated method.
100
- * @summary Decorator factory that ensures the method metadata is initialised and stores the reflected parameter constructor at the provided index.
101
- * @return {ParameterDecorator} Decorator that records the parameter type when applied.
102
- * @function param
103
- * @category Parameter Decorators
104
- * @mermaid
105
- * sequenceDiagram
106
- * participant U as User Code
107
- * participant P as param()
108
- * participant M as Metadata
109
- * U->>P: param()(target, key, index)
110
- * P->>U: method()(target, key, descriptor)
111
- * P->>M: params(constructor, key)
112
- * M-->>P: parameter constructors[]
113
- * P->>M: set(methods.key.index, constructor)
114
- * P-->>U: parameter recorded
115
- */
116
- export function param() {
117
- return function param(model, prop, index) {
118
- if (!prop)
119
- throw new Error(`The @param decorator can only be applied to methods`);
120
- method()(model, prop, Object.getOwnPropertyDescriptor(model, prop));
121
- const paramTpes = Metadata.params(model.constructor, prop);
122
- if (!paramTpes)
123
- throw new Error(`Missing parameter types for ${String(prop)}`);
124
- if (index >= paramTpes.length)
125
- throw new Error(`Parameter index ${index} out of range for ${String(prop)}`);
126
- metadata(Metadata.key(DecorationKeys.METHODS, prop, index.toString()), paramTpes[index])(model, prop);
127
- };
128
- }
129
- /**
130
- * @description Extends a parameter decorator with additional metadata.
131
- * @summary Applies the default `param()` decorator and augments the stored metadata with an arbitrary key/value pair.
132
- * @param {string} key Metadata key to associate with the parameter.
133
- * @param {any} value Metadata value persisted under the given key.
134
- * @return {ParameterDecorator} Decorator that records both the parameter design type and additional metadata.
135
- * @function paramMetadata
136
- * @category Parameter Decorators
137
- */
138
- export function paramMetadata(key, value) {
139
- return function paramMetadata(target, prop, index) {
140
- return apply(param(), metadata(Metadata.key(DecorationKeys.METHODS, prop, key), value))(target, prop, index);
141
- };
142
- }
143
- /**
144
- * @description Records method design-time metadata.
145
- * @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.
146
- * @return {MethodDecorator} Decorator that persists the method's signature information into the metadata store when applied.
147
- * @function method
148
- * @mermaid
149
- * sequenceDiagram
150
- * participant U as User Code
151
- * participant F as method()
152
- * participant M as Metadata
153
- * U->>F: method()(target, key, descriptor)
154
- * F->>U: Reflect.getOwnMetadata(design:paramtypes)
155
- * F->>U: Reflect.getOwnMetadata(design:returntype)
156
- * F->>M: set(methods.key.design:paramtypes, params)
157
- * F->>M: set(methods.key.design:returntype, returnType)
158
- * F-->>U: decorated function
159
- * @category Method Decorators
160
- */
161
- export function method() {
162
- return function method(obj, prop, descriptor) {
163
- const designParams = Reflect.getOwnMetadata(DecorationKeys.DESIGN_PARAMS, obj, prop);
164
- const designReturn = Reflect.getOwnMetadata(DecorationKeys.DESIGN_RETURN, obj, prop);
165
- 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);
166
- };
167
- }
168
- /**
169
- * @description Decorator factory that applies multiple decorators to a single target.
170
- * @summary Creates a composite decorator that applies multiple decorators in sequence, correctly handling class, method, property, and parameter decorators.
171
- * @param {Array<ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator>} decorators Collection of decorators to apply.
172
- * @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Decorator function that applies all provided decorators to the target.
173
- * @function apply
174
- * @mermaid
175
- * sequenceDiagram
176
- * participant U as User Code
177
- * participant A as apply(...decorators)
178
- * participant D as Decorator
179
- * U->>A: get decorator(...decorators)
180
- * A->>U: returns (target, key?, desc?) => void
181
- * U->>A: invoke on target
182
- * loop for each decorator
183
- * A->>D: invoke appropriate decorator type
184
- * end
185
- * @category Decorators
186
- */
187
- export function apply(...decorators) {
188
- return (target, propertyKey, descriptor) => {
189
- for (const decorator of decorators) {
190
- if (typeof propertyKey === "undefined") {
191
- decorator(target);
192
- continue;
193
- }
194
- if (typeof descriptor === "number") {
195
- decorator(target, propertyKey, descriptor);
196
- continue;
197
- }
198
- decorator(target, propertyKey, descriptor);
199
- }
200
- };
201
- }
202
- /**
203
- * @description Creates a property metadata decorator.
204
- * @summary Convenience factory that combines `metadata(key, value)` and `prop()` to both set an arbitrary metadata key and record the property's design type.
205
- * @param {string} key Metadata key to set for the property.
206
- * @param {any} value Metadata value to associate with the key.
207
- * @return {PropertyDecorator} Decorator that sets the metadata and captures the property's type.
208
- * @function propMetadata
209
- * @category Property Decorators
210
- */
211
- export function propMetadata(key, value) {
212
- return apply(metadata(key, value), prop());
213
- }
214
- /**
215
- * @description Creates a method metadata decorator.
216
- * @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.
217
- * @param {string} key Metadata key to set for the property.
218
- * @param {any} value Metadata value to associate with the key.
219
- * @return {MethodDecorator} Decorator that sets the metadata and captures the method's signature metadata.
220
- * @function methodMetadata
221
- * @category Method Decorators
222
- */
223
- export function methodMetadata(key, value) {
224
- return apply(metadata(key, value), method());
225
- }
226
33
  /**
227
34
  * @description Attaches a human-readable description to a class or member.
228
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":"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"}
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"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  export * from "./decoration";
7
7
  export * from "./metadata";
8
+ export * from "./shared";
8
9
  export * from "./constants";
9
10
  export * from "./decorators";
10
11
  export * from "./version";
package/lib/esm/index.js CHANGED
@@ -5,6 +5,7 @@
5
5
  */
6
6
  export * from "./decoration/index.js";
7
7
  export * from "./metadata/index.js";
8
+ export * from "./shared/index.js";
8
9
  export * from "./constants.js";
9
10
  export * from "./decorators.js";
10
11
  export * from "./version.js";
@@ -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"}
@@ -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 { Decoration } from "./../decoration/Decoration.js";
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.
@@ -176,7 +176,7 @@ export class Metadata {
176
176
  return this.get(model, this.key(DecorationKeys.DESCRIPTION, (prop ? prop : DecorationKeys.CLASS)));
177
177
  }
178
178
  static flavourOf(model) {
179
- return Decoration["flavourResolver"](model);
179
+ return resolveFlavour(model);
180
180
  }
181
181
  static flavouredAs(flavour) {
182
182
  return this.innerGet(Symbol.for(DecorationKeys.FLAVOUR), flavour) || [];
@@ -277,7 +277,7 @@ export class Metadata {
277
277
  constructors
278
278
  .filter((c) => this.isDecorated(c) === DecorationState.PENDING)
279
279
  .forEach((constructor) => {
280
- Decoration["resolvePendingDecorators"](constructor);
280
+ resolvePendingDecorators(constructor);
281
281
  });
282
282
  if (constructors.length === 0) {
283
283
  const fallbackSymbol = Symbol.for(resolvedModel.toString());
@@ -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;
@@ -0,0 +1,184 @@
1
+ import { Metadata } from "./../metadata/Metadata.js";
2
+ import { DecorationKeys } from "./../constants.js";
3
+ /**
4
+ * @description Assigns arbitrary metadata to a target using a string key.
5
+ * @summary Decorator factory that stores a key/value pair in the central metadata store for the provided class or member.
6
+ * @param {string} key Metadata key to associate with the target.
7
+ * @param {any} value Metadata value to store under the given key.
8
+ * @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Decorator that writes the metadata when applied.
9
+ * @function metadata
10
+ * @category Decorators
11
+ */
12
+ export function metadata(key, value) {
13
+ return function metadata(model, prop, descriptor) {
14
+ let targetModel = model;
15
+ if (prop) {
16
+ targetModel =
17
+ typeof model === "function"
18
+ ? model
19
+ : model.constructor || model;
20
+ if (typeof descriptor === "undefined") {
21
+ const metadataTarget = typeof model === "function" ? model.prototype : model;
22
+ const designType = Reflect.getOwnMetadata(DecorationKeys.DESIGN_TYPE, metadataTarget, prop);
23
+ const propKey = Metadata.key(DecorationKeys.PROPERTIES, prop.toString());
24
+ const existing = Metadata.get(targetModel, propKey);
25
+ if (typeof designType !== "undefined" ||
26
+ typeof existing === "undefined") {
27
+ Metadata.set(targetModel, propKey, designType);
28
+ }
29
+ }
30
+ }
31
+ Metadata.set(targetModel, key, value);
32
+ };
33
+ }
34
+ export function metadataArray(key, ...data) {
35
+ return function metadataArray(target, propertyKey, descriptor) {
36
+ const existingData = Metadata.get(target, key) || [];
37
+ const metaKey = propertyKey ? Metadata.key(key, propertyKey) : key;
38
+ const arr = [metadata(metaKey, [...new Set([...existingData, ...data])])];
39
+ return apply(...arr)(target, propertyKey, descriptor);
40
+ };
41
+ }
42
+ /**
43
+ * @description Captures and stores a property's design type.
44
+ * @summary Decorator factory that reads the reflected `design:type` for a property and registers it in the metadata store under the properties map.
45
+ * @return {PropertyDecorator} Decorator that records the property's type metadata when applied.
46
+ * @function prop
47
+ * @category Property Decorators
48
+ */
49
+ export function prop() {
50
+ return function innerProp(model, prop) {
51
+ const metadataTarget = typeof model === "function" ? model.prototype : model;
52
+ const designType = Reflect.getOwnMetadata(DecorationKeys.DESIGN_TYPE, metadataTarget, prop);
53
+ return metadata(Metadata.key(DecorationKeys.PROPERTIES, prop), designType)(model, prop);
54
+ };
55
+ }
56
+ /**
57
+ * @description Captures a single parameter type for the decorated method.
58
+ * @summary Decorator factory that ensures the method metadata is initialised and stores the reflected parameter constructor at the provided index.
59
+ * @return {ParameterDecorator} Decorator that records the parameter type when applied.
60
+ * @function param
61
+ * @category Parameter Decorators
62
+ * @mermaid
63
+ * sequenceDiagram
64
+ * participant U as User Code
65
+ * participant P as param()
66
+ * participant M as Metadata
67
+ * U->>P: param()(target, key, index)
68
+ * P->>U: method()(target, key, descriptor)
69
+ * P->>M: params(constructor, key)
70
+ * M-->>P: parameter constructors[]
71
+ * P->>M: set(methods.key.index, constructor)
72
+ * P-->>U: parameter recorded
73
+ */
74
+ export function param() {
75
+ return function param(model, prop, index) {
76
+ if (!prop)
77
+ throw new Error(`The @param decorator can only be applied to methods`);
78
+ method()(model, prop, Object.getOwnPropertyDescriptor(model, prop));
79
+ const paramTpes = Metadata.params(model.constructor, prop);
80
+ if (!paramTpes)
81
+ throw new Error(`Missing parameter types for ${String(prop)}`);
82
+ if (index >= paramTpes.length)
83
+ throw new Error(`Parameter index ${index} out of range for ${String(prop)}`);
84
+ metadata(Metadata.key(DecorationKeys.METHODS, prop, index.toString()), paramTpes[index])(model, prop);
85
+ };
86
+ }
87
+ /**
88
+ * @description Extends a parameter decorator with additional metadata.
89
+ * @summary Applies the default `param()` decorator and augments the stored metadata with an arbitrary key/value pair.
90
+ * @param {string} key Metadata key to associate with the parameter.
91
+ * @param {any} value Metadata value persisted under the given key.
92
+ * @return {ParameterDecorator} Decorator that records both the parameter design type and additional metadata.
93
+ * @function paramMetadata
94
+ * @category Parameter Decorators
95
+ */
96
+ export function paramMetadata(key, value) {
97
+ return function paramMetadata(target, prop, index) {
98
+ return apply(param(), metadata(Metadata.key(DecorationKeys.METHODS, prop, key), value))(target, prop, index);
99
+ };
100
+ }
101
+ /**
102
+ * @description Records method design-time metadata.
103
+ * @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.
104
+ * @return {MethodDecorator} Decorator that persists the method's signature information into the metadata store when applied.
105
+ * @function method
106
+ * @mermaid
107
+ * sequenceDiagram
108
+ * participant U as User Code
109
+ * participant F as method()
110
+ * participant M as Metadata
111
+ * U->>F: method()(target, key, descriptor)
112
+ * F->>U: Reflect.getOwnMetadata(design:paramtypes)
113
+ * F->>U: Reflect.getOwnMetadata(design:returntype)
114
+ * F->>M: set(methods.key.design:paramtypes, params)
115
+ * F->>M: set(methods.key.design:returntype, returnType)
116
+ * F-->>U: decorated function
117
+ * @category Method Decorators
118
+ */
119
+ export function method() {
120
+ return function method(obj, prop, descriptor) {
121
+ const designParams = Reflect.getOwnMetadata(DecorationKeys.DESIGN_PARAMS, obj, prop);
122
+ const designReturn = Reflect.getOwnMetadata(DecorationKeys.DESIGN_RETURN, obj, prop);
123
+ 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);
124
+ };
125
+ }
126
+ /**
127
+ * @description Decorator factory that applies multiple decorators to a single target.
128
+ * @summary Creates a composite decorator that applies multiple decorators in sequence, correctly handling class, method, property, and parameter decorators.
129
+ * @param {Array<ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator>} decorators Collection of decorators to apply.
130
+ * @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Decorator function that applies all provided decorators to the target.
131
+ * @function apply
132
+ * @mermaid
133
+ * sequenceDiagram
134
+ * participant U as User Code
135
+ * participant A as apply(...decorators)
136
+ * participant D as Decorator
137
+ * U->>A: get decorator(...decorators)
138
+ * A->>U: returns (target, key?, desc?) => void
139
+ * U->>A: invoke on target
140
+ * loop for each decorator
141
+ * A->>D: invoke appropriate decorator type
142
+ * end
143
+ * @category Decorators
144
+ */
145
+ export function apply(...decorators) {
146
+ return (target, propertyKey, descriptor) => {
147
+ for (const decorator of decorators) {
148
+ if (typeof propertyKey === "undefined") {
149
+ decorator(target);
150
+ continue;
151
+ }
152
+ if (typeof descriptor === "number") {
153
+ decorator(target, propertyKey, descriptor);
154
+ continue;
155
+ }
156
+ decorator(target, propertyKey, descriptor);
157
+ }
158
+ };
159
+ }
160
+ /**
161
+ * @description Creates a property metadata decorator.
162
+ * @summary Convenience factory that combines `metadata(key, value)` and `prop()` to both set an arbitrary metadata key and record the property's design type.
163
+ * @param {string} key Metadata key to set for the property.
164
+ * @param {any} value Metadata value to associate with the key.
165
+ * @return {PropertyDecorator} Decorator that sets the metadata and captures the property's type.
166
+ * @function propMetadata
167
+ * @category Property Decorators
168
+ */
169
+ export function propMetadata(key, value) {
170
+ return apply(metadata(key, value), prop());
171
+ }
172
+ /**
173
+ * @description Creates a method metadata decorator.
174
+ * @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.
175
+ * @param {string} key Metadata key to set for the property.
176
+ * @param {any} value Metadata value to associate with the key.
177
+ * @return {MethodDecorator} Decorator that sets the metadata and captures the method's signature metadata.
178
+ * @function methodMetadata
179
+ * @category Method Decorators
180
+ */
181
+ export function methodMetadata(key, value) {
182
+ return apply(metadata(key, value), method());
183
+ }
184
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/shared/core.ts"],"names":[],"mappings":"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"}