@decaf-ts/decoration 0.8.4 → 0.8.6

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,6 +1,8 @@
1
1
  import { DecorationKeys, DecorationState, DefaultFlavour } from "./../constants.js";
2
2
  import { Metadata } from "./../metadata/Metadata.js";
3
- import { method, prop, uses } from "./../decorators.js";
3
+ import { assignFlavour } from "./flavourRegistry.js";
4
+ import { registerFlavourResolver, registerPendingResolver, } from "./metadataLink.js";
5
+ import { method, prop } from "./../shared/core.js";
4
6
  /**
5
7
  * @description Default resolver that returns the current default flavour.
6
8
  * @summary Resolves the flavour for a given target by always returning the library's `DefaultFlavour` value.
@@ -104,9 +106,7 @@ function cloneArgsOverrides(overrides) {
104
106
  return undefined;
105
107
  const clone = {};
106
108
  Object.keys(overrides).forEach((key) => {
107
- clone[key] = overrides[key].map((arg) => typeof arg === "object" && arg !== null
108
- ? cloneMetadataValue(arg)
109
- : arg);
109
+ clone[key] = overrides[key].map((arg) => typeof arg === "object" && arg !== null ? cloneMetadataValue(arg) : arg);
110
110
  });
111
111
  return clone;
112
112
  }
@@ -125,9 +125,7 @@ function pruneEmptyAncestors(bucket, path) {
125
125
  const ancestorPath = path.slice(0, i);
126
126
  const parentPath = ancestorPath.slice(0, -1);
127
127
  const key = ancestorPath[ancestorPath.length - 1];
128
- const parent = parentPath.length === 0
129
- ? bucket
130
- : getNodeAtPath(bucket, parentPath);
128
+ const parent = parentPath.length === 0 ? bucket : getNodeAtPath(bucket, parentPath);
131
129
  if (!parent || !isPlainObject(parent))
132
130
  break;
133
131
  const value = parent[key];
@@ -188,6 +186,10 @@ export class Decoration {
188
186
  * @summary Resolver function that determines the appropriate flavour for a given target.
189
187
  */
190
188
  static { this.flavourResolver = flavourResolver; }
189
+ static {
190
+ registerFlavourResolver((model) => this.flavourResolver(model));
191
+ registerPendingResolver((target, flavour) => this.resolvePendingDecorators(target, flavour));
192
+ }
191
193
  constructor(flavour = Decoration.defaultFlavour) {
192
194
  this.flavour = flavour;
193
195
  }
@@ -259,6 +261,26 @@ export class Decoration {
259
261
  state.flavour = Decoration.defaultFlavour;
260
262
  Metadata.set(owner, DecorationKeys.DECORATION, DecorationState.PENDING);
261
263
  }
264
+ static ensureDefaultFlavour(owner) {
265
+ if (!owner)
266
+ return;
267
+ const canonical = assignFlavour(owner, Decoration.defaultFlavour, Decoration.defaultFlavour);
268
+ let resolved;
269
+ try {
270
+ resolved = Decoration["flavourResolver"]
271
+ ? Decoration["flavourResolver"](canonical)
272
+ : undefined;
273
+ }
274
+ catch {
275
+ resolved = undefined;
276
+ }
277
+ if (resolved && resolved !== Decoration.defaultFlavour) {
278
+ Decoration["resolvePendingDecorators"](canonical, resolved);
279
+ }
280
+ else {
281
+ Decoration["markPending"](canonical);
282
+ }
283
+ }
262
284
  static scheduleDefaultResolve(owner) {
263
285
  if (!owner)
264
286
  return;
@@ -372,8 +394,7 @@ export class Decoration {
372
394
  entry.lastAppliedFlavour = resolvedFlavour;
373
395
  continue;
374
396
  }
375
- if (entry.lastAppliedFlavour === resolvedFlavour ||
376
- !hasOverride) {
397
+ if (entry.lastAppliedFlavour === resolvedFlavour || !hasOverride) {
377
398
  entry.lastAppliedPass = currentPass;
378
399
  continue;
379
400
  }
@@ -621,7 +642,7 @@ export class Decoration {
621
642
  if (owner && isMember) {
622
643
  const currentFlavour = Metadata["innerGet"](Metadata.Symbol(owner), DecorationKeys.FLAVOUR);
623
644
  if (!currentFlavour)
624
- uses(Decoration.defaultFlavour)(owner);
645
+ Decoration.ensureDefaultFlavour(owner);
625
646
  const argsOverride = this.snapshotDecoratorArgs();
626
647
  Decoration.registerPendingDecorator(owner, target, (resolvedFlavour) => {
627
648
  return this.decoratorFactory(key, resolvedFlavour, argsOverride);
@@ -693,14 +714,12 @@ export class Decoration {
693
714
  return false;
694
715
  const defaultBucket = cache[Decoration.defaultFlavour];
695
716
  const hasDecorators = flavourBucket.decorators && flavourBucket.decorators.size > 0;
696
- const hasExtras = flavourBucket.extras instanceof Set &&
697
- flavourBucket.extras.size > 0;
717
+ const hasExtras = flavourBucket.extras instanceof Set && flavourBucket.extras.size > 0;
698
718
  if (!hasDecorators && !hasExtras)
699
719
  return false;
700
720
  if (!defaultBucket)
701
721
  return true;
702
- const decoratorsMatch = !hasDecorators ||
703
- flavourBucket.decorators === defaultBucket.decorators;
722
+ const decoratorsMatch = !hasDecorators || flavourBucket.decorators === defaultBucket.decorators;
704
723
  const extrasMatch = !hasExtras || flavourBucket.extras === defaultBucket.extras;
705
724
  return !(decoratorsMatch && extrasMatch);
706
725
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Decoration.js","sourceRoot":"","sources":["../../../src/decoration/Decoration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Decoration.js","sourceRoot":"","sources":["../../../src/decoration/Decoration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Updates the metadata registry to associate a constructor with the provided flavour.
3
+ * Removes the constructor from its previous flavour bucket, registers it under the new flavour, and mirrors the flavour value on the constructor.
4
+ * @param object Target object being decorated.
5
+ * @param flavour Flavour identifier to assign.
6
+ * @param defaultFlavour Fallback flavour used when no previous flavour is recorded.
7
+ * @returns Canonical constructor associated with the target.
8
+ */
9
+ export declare function assignFlavour(object: object, flavour: string, defaultFlavour: string): any;
@@ -0,0 +1,26 @@
1
+ import { DecorationKeys } from "./../constants.js";
2
+ import { Metadata } from "./../metadata/Metadata.js";
3
+ const FLAVOUR_BUCKET_SYMBOL = Symbol.for(DecorationKeys.FLAVOUR);
4
+ /**
5
+ * Updates the metadata registry to associate a constructor with the provided flavour.
6
+ * Removes the constructor from its previous flavour bucket, registers it under the new flavour, and mirrors the flavour value on the constructor.
7
+ * @param object Target object being decorated.
8
+ * @param flavour Flavour identifier to assign.
9
+ * @param defaultFlavour Fallback flavour used when no previous flavour is recorded.
10
+ * @returns Canonical constructor associated with the target.
11
+ */
12
+ export function assignFlavour(object, flavour, defaultFlavour) {
13
+ const canonical = Metadata.constr(object);
14
+ const previousFlavour = Metadata["innerGet"](Metadata.Symbol(object), DecorationKeys.FLAVOUR) || defaultFlavour;
15
+ const previousBucket = Metadata["innerGet"](FLAVOUR_BUCKET_SYMBOL, previousFlavour) || [];
16
+ const filtered = previousBucket.filter((entry) => {
17
+ return Metadata.constr(entry) !== canonical;
18
+ });
19
+ Metadata.set(DecorationKeys.FLAVOUR, previousFlavour, filtered);
20
+ const nextBucket = new Set(Metadata["innerGet"](FLAVOUR_BUCKET_SYMBOL, flavour) || []);
21
+ nextBucket.add(object);
22
+ Metadata.set(DecorationKeys.FLAVOUR, flavour, [...nextBucket]);
23
+ Metadata.set(canonical, DecorationKeys.FLAVOUR, flavour);
24
+ return canonical;
25
+ }
26
+ //# sourceMappingURL=flavourRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flavourRegistry.js","sourceRoot":"","sources":["../../../src/decoration/flavourRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,0BAAqB;AAC9C,OAAO,EAAE,QAAQ,EAAE,kCAA6B;AAEhD,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAEjE;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAc,EACd,OAAe,EACf,cAAsB;IAEtB,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAa,CAAC,CAAC;IACjD,MAAM,eAAe,GACnB,QAAQ,CAAC,UAAU,CAAC,CAClB,QAAQ,CAAC,MAAM,CAAC,MAAa,CAAC,EAC9B,cAAc,CAAC,OAAO,CACvB,IAAI,cAAc,CAAC;IACtB,MAAM,cAAc,GAClB,QAAQ,CAAC,UAAU,CAAC,CAAC,qBAAqB,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC;IACrE,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE;QACpD,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAY,CAAC,KAAK,SAAS,CAAC;IACrD,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,QAAQ,CAAC,UAAU,CAAC,CAAC,qBAAqB,EAAE,OAAO,CAAC,IAAI,EAAE,CAC3D,CAAC;IACF,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -3,4 +3,6 @@
3
3
  * @summary Re-exports the fluent builder class along with its companion types so consumers can import from a single entry point.
4
4
  */
5
5
  export * from "./Decoration";
6
+ export * from "./flavourRegistry";
7
+ export * from "./metadataLink";
6
8
  export * from "./types";
@@ -3,5 +3,7 @@
3
3
  * @summary Re-exports the fluent builder class along with its companion types so consumers can import from a single entry point.
4
4
  */
5
5
  export * from "./Decoration.js";
6
+ export * from "./flavourRegistry.js";
7
+ export * from "./metadataLink.js";
6
8
  export * from "./types.js";
7
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decoration/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gCAA6B;AAC7B,2BAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decoration/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gCAA6B;AAC7B,qCAAkC;AAClC,kCAA+B;AAC/B,2BAAwB"}
@@ -0,0 +1,8 @@
1
+ import { Constructor } from "../metadata/types";
2
+ type FlavourResolver = (model: Constructor) => string;
3
+ type PendingResolver = (target: any, flavour?: string) => void;
4
+ export declare function registerFlavourResolver(resolver: FlavourResolver): void;
5
+ export declare function resolveFlavour(model: Constructor): string;
6
+ export declare function registerPendingResolver(resolver: PendingResolver): void;
7
+ export declare function resolvePendingDecorators(target: any, flavour?: string): void;
8
+ export {};
@@ -0,0 +1,20 @@
1
+ import { DefaultFlavour } from "./../constants.js";
2
+ let flavourResolver;
3
+ let pendingResolver;
4
+ export function registerFlavourResolver(resolver) {
5
+ flavourResolver = resolver;
6
+ }
7
+ export function resolveFlavour(model) {
8
+ if (!flavourResolver)
9
+ return DefaultFlavour;
10
+ return flavourResolver(model);
11
+ }
12
+ export function registerPendingResolver(resolver) {
13
+ pendingResolver = resolver;
14
+ }
15
+ export function resolvePendingDecorators(target, flavour) {
16
+ if (!pendingResolver)
17
+ return;
18
+ pendingResolver(target, flavour);
19
+ }
20
+ //# sourceMappingURL=metadataLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadataLink.js","sourceRoot":"","sources":["../../../src/decoration/metadataLink.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,0BAAqB;AAK9C,IAAI,eAA4C,CAAC;AACjD,IAAI,eAA4C,CAAC;AAEjD,MAAM,UAAU,uBAAuB,CAAC,QAAyB;IAC/D,eAAe,GAAG,QAAQ,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAkB;IAC/C,IAAI,CAAC,eAAe;QAAE,OAAO,cAAc,CAAC;IAC5C,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,QAAyB;IAC/D,eAAe,GAAG,QAAQ,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAAW,EACX,OAAgB;IAEhB,IAAI,CAAC,eAAe;QAAE,OAAO;IAC7B,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC"}
@@ -1,111 +1,5 @@
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;
1
+ export { metadata, metadataArray, param, paramMetadata, prop, method, apply, propMetadata, methodMetadata, } from "./shared/core";
12
2
  export declare function uses(flavour: string): (object: any) => any;
13
- /**
14
- * @description Captures and stores a property's design type.
15
- * @summary Decorator factory that reads the reflected `design:type` for a property and registers it in the metadata store under the properties map.
16
- * @return {PropertyDecorator} Decorator that records the property's type metadata when applied.
17
- * @function prop
18
- * @category Property Decorators
19
- */
20
- export declare function prop(): (model: object, prop?: any) => void;
21
- /**
22
- * @description Captures a single parameter type for the decorated method.
23
- * @summary Decorator factory that ensures the method metadata is initialised and stores the reflected parameter constructor at the provided index.
24
- * @return {ParameterDecorator} Decorator that records the parameter type when applied.
25
- * @function param
26
- * @category Parameter Decorators
27
- * @mermaid
28
- * sequenceDiagram
29
- * participant U as User Code
30
- * participant P as param()
31
- * participant M as Metadata
32
- * U->>P: param()(target, key, index)
33
- * P->>U: method()(target, key, descriptor)
34
- * P->>M: params(constructor, key)
35
- * M-->>P: parameter constructors[]
36
- * P->>M: set(methods.key.index, constructor)
37
- * P-->>U: parameter recorded
38
- */
39
- export declare function param(): (model: object, prop?: any, index?: number) => void;
40
- /**
41
- * @description Extends a parameter decorator with additional metadata.
42
- * @summary Applies the default `param()` decorator and augments the stored metadata with an arbitrary key/value pair.
43
- * @param {string} key Metadata key to associate with the parameter.
44
- * @param {any} value Metadata value persisted under the given key.
45
- * @return {ParameterDecorator} Decorator that records both the parameter design type and additional metadata.
46
- * @function paramMetadata
47
- * @category Parameter Decorators
48
- */
49
- export declare function paramMetadata(key: string, value: any): (target: any, prop: any, index: number) => void;
50
- /**
51
- * @description Records method design-time metadata.
52
- * @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.
53
- * @return {MethodDecorator} Decorator that persists the method's signature information into the metadata store when applied.
54
- * @function method
55
- * @mermaid
56
- * sequenceDiagram
57
- * participant U as User Code
58
- * participant F as method()
59
- * participant M as Metadata
60
- * U->>F: method()(target, key, descriptor)
61
- * F->>U: Reflect.getOwnMetadata(design:paramtypes)
62
- * F->>U: Reflect.getOwnMetadata(design:returntype)
63
- * F->>M: set(methods.key.design:paramtypes, params)
64
- * F->>M: set(methods.key.design:returntype, returnType)
65
- * F-->>U: decorated function
66
- * @category Method Decorators
67
- */
68
- export declare function method(): (obj: any, prop?: any, descriptor?: any) => void;
69
- /**
70
- * @description Decorator factory that applies multiple decorators to a single target.
71
- * @summary Creates a composite decorator that applies multiple decorators in sequence, correctly handling class, method, property, and parameter decorators.
72
- * @param {Array<ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator>} decorators Collection of decorators to apply.
73
- * @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Decorator function that applies all provided decorators to the target.
74
- * @function apply
75
- * @mermaid
76
- * sequenceDiagram
77
- * participant U as User Code
78
- * participant A as apply(...decorators)
79
- * participant D as Decorator
80
- * U->>A: get decorator(...decorators)
81
- * A->>U: returns (target, key?, desc?) => void
82
- * U->>A: invoke on target
83
- * loop for each decorator
84
- * A->>D: invoke appropriate decorator type
85
- * end
86
- * @category Decorators
87
- */
88
- export declare function apply(...decorators: Array<ClassDecorator | MethodDecorator | PropertyDecorator | ParameterDecorator>): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
89
- /**
90
- * @description Creates a property metadata decorator.
91
- * @summary Convenience factory that combines `metadata(key, value)` and `prop()` to both set an arbitrary metadata key and record the property's design type.
92
- * @param {string} key Metadata key to set for the property.
93
- * @param {any} value Metadata value to associate with the key.
94
- * @return {PropertyDecorator} Decorator that sets the metadata and captures the property's type.
95
- * @function propMetadata
96
- * @category Property Decorators
97
- */
98
- export declare function propMetadata(key: string, value: any): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
99
- /**
100
- * @description Creates a method metadata decorator.
101
- * @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.
102
- * @param {string} key Metadata key to set for the property.
103
- * @param {any} value Metadata value to associate with the key.
104
- * @return {MethodDecorator} Decorator that sets the metadata and captures the method's signature metadata.
105
- * @function methodMetadata
106
- * @category Method Decorators
107
- */
108
- export declare function methodMetadata(key: string, value: any): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
109
3
  /**
110
4
  * @description Attaches a human-readable description to a class or member.
111
5
  * @summary Decorator factory that stores a textual description in the metadata store under the appropriate description key for a class or its property.