@decaf-ts/decoration 0.8.1 → 0.8.3

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.
@@ -24,6 +24,121 @@ function flavourResolver(target) {
24
24
  return registered;
25
25
  return meta ?? Decoration.defaultFlavour;
26
26
  }
27
+ function isPlainObject(value) {
28
+ return (value !== null &&
29
+ typeof value === "object" &&
30
+ !Array.isArray(value) &&
31
+ value.constructor === Object);
32
+ }
33
+ function cloneMetadataValue(value) {
34
+ if (value === null || typeof value !== "object")
35
+ return value;
36
+ if (Array.isArray(value)) {
37
+ return value.map((item) => cloneMetadataValue(item));
38
+ }
39
+ if (value instanceof Date) {
40
+ return new Date(value.getTime());
41
+ }
42
+ if (value instanceof Set) {
43
+ return new Set(Array.from(value).map((item) => cloneMetadataValue(item)));
44
+ }
45
+ if (value instanceof Map) {
46
+ return new Map(Array.from(value.entries()).map(([k, v]) => [k, cloneMetadataValue(v)]));
47
+ }
48
+ if (value.constructor !== Object) {
49
+ return value;
50
+ }
51
+ const clone = {};
52
+ Reflect.ownKeys(value).forEach((key) => {
53
+ clone[key] = cloneMetadataValue(value[key]);
54
+ });
55
+ return clone;
56
+ }
57
+ function diffMetadataBuckets(before, after, basePath = [], result = []) {
58
+ const keys = new Set([
59
+ ...(before ? Reflect.ownKeys(before) : []),
60
+ ...(after ? Reflect.ownKeys(after) : []),
61
+ ]);
62
+ keys.forEach((key) => {
63
+ const prevExists = before
64
+ ? Object.prototype.hasOwnProperty.call(before, key)
65
+ : false;
66
+ const nextExists = after
67
+ ? Object.prototype.hasOwnProperty.call(after, key)
68
+ : false;
69
+ const prevValue = prevExists ? before?.[key] : undefined;
70
+ const nextValue = nextExists ? after?.[key] : undefined;
71
+ if (!nextExists) {
72
+ result.push({
73
+ path: [...basePath, key],
74
+ previousValue: cloneMetadataValue(prevValue),
75
+ existed: true,
76
+ });
77
+ return;
78
+ }
79
+ if (!prevExists) {
80
+ if (isPlainObject(nextValue)) {
81
+ diffMetadataBuckets(undefined, nextValue, [...basePath, key], result);
82
+ return;
83
+ }
84
+ result.push({
85
+ path: [...basePath, key],
86
+ previousValue: undefined,
87
+ existed: false,
88
+ });
89
+ return;
90
+ }
91
+ if (isPlainObject(prevValue) && isPlainObject(nextValue)) {
92
+ diffMetadataBuckets(prevValue, nextValue, [...basePath, key], result);
93
+ return;
94
+ }
95
+ if (prevValue !== nextValue) {
96
+ result.push({
97
+ path: [...basePath, key],
98
+ previousValue: cloneMetadataValue(prevValue),
99
+ existed: true,
100
+ });
101
+ }
102
+ });
103
+ return result;
104
+ }
105
+ function cloneArgsOverrides(overrides) {
106
+ if (!overrides)
107
+ return undefined;
108
+ const clone = {};
109
+ Object.keys(overrides).forEach((key) => {
110
+ clone[key] = overrides[key].map((arg) => typeof arg === "object" && arg !== null
111
+ ? cloneMetadataValue(arg)
112
+ : arg);
113
+ });
114
+ return clone;
115
+ }
116
+ function getNodeAtPath(bucket, path) {
117
+ let current = bucket;
118
+ for (const segment of path) {
119
+ if (!current || !isPlainObject(current[segment])) {
120
+ return undefined;
121
+ }
122
+ current = current[segment];
123
+ }
124
+ return current;
125
+ }
126
+ function pruneEmptyAncestors(bucket, path) {
127
+ for (let i = path.length; i > 0; i--) {
128
+ const ancestorPath = path.slice(0, i);
129
+ const parentPath = ancestorPath.slice(0, -1);
130
+ const key = ancestorPath[ancestorPath.length - 1];
131
+ const parent = parentPath.length === 0
132
+ ? bucket
133
+ : getNodeAtPath(bucket, parentPath);
134
+ if (!parent || !isPlainObject(parent))
135
+ break;
136
+ const value = parent[key];
137
+ if (!isPlainObject(value) || Reflect.ownKeys(value).length > 0)
138
+ break;
139
+ delete parent[key];
140
+ }
141
+ }
27
142
  /**
28
143
  * @description A decorator management class that handles flavoured decorators.
29
144
  * @summary The Decoration class provides a builder pattern for creating and managing decorators with different flavours. It supports registering, extending, and applying decorators with context-aware flavour resolution, allowing framework-specific implementations while maintaining a consistent API.
@@ -100,13 +215,34 @@ class Decoration {
100
215
  return state;
101
216
  }
102
217
  static applyPendingEntry(entry, flavour) {
218
+ const metadataStore = Metadata_1.Metadata["_metadata"];
219
+ const metadataSymbol = Metadata_1.Metadata.Symbol(entry.owner);
220
+ const beforeSnapshot = typeof entry.metadataDiff === "undefined"
221
+ ? cloneMetadataValue(metadataStore[metadataSymbol])
222
+ : undefined;
103
223
  try {
104
- const descriptorResult = entry.callback(flavour, entry.argsOverride)(entry.target, entry.propertyKey, entry.descriptor);
224
+ if (typeof entry.propertyKey !== "undefined" &&
225
+ typeof entry.descriptorSnapshot === "undefined" &&
226
+ entry.target) {
227
+ const currentDescriptor = Object.getOwnPropertyDescriptor(entry.target, entry.propertyKey);
228
+ entry.descriptorWasOwn = Object.prototype.hasOwnProperty.call(entry.target, entry.propertyKey);
229
+ entry.descriptorSnapshot = currentDescriptor
230
+ ? { ...currentDescriptor }
231
+ : undefined;
232
+ }
233
+ const overridesForCall = entry.argsFactory
234
+ ? entry.argsFactory()
235
+ : cloneArgsOverrides(entry.argsOverride);
236
+ const descriptorResult = entry.callback(flavour, overridesForCall)(entry.target, entry.propertyKey, entry.descriptor);
105
237
  if (typeof entry.propertyKey !== "undefined" &&
106
238
  descriptorResult &&
107
239
  entry.target) {
108
240
  Object.defineProperty(entry.target, entry.propertyKey, descriptorResult);
109
241
  }
242
+ if (typeof entry.metadataDiff === "undefined") {
243
+ const afterSnapshot = cloneMetadataValue(metadataStore[metadataSymbol]);
244
+ entry.metadataDiff = diffMetadataBuckets(beforeSnapshot, afterSnapshot);
245
+ }
110
246
  }
111
247
  catch (error) {
112
248
  console.error(`Error resolving pending decorator for ${entry.owner?.name || "anonymous"}.${String(entry.propertyKey)}`, error);
@@ -121,17 +257,34 @@ class Decoration {
121
257
  state.flavour = Decoration.defaultFlavour;
122
258
  Metadata_1.Metadata.set(owner, constants_1.DecorationKeys.DECORATION, constants_1.DecorationState.PENDING);
123
259
  }
124
- static registerPendingDecorator(owner, target, callback, propertyKey, descriptor, argsOverride) {
260
+ static scheduleDefaultResolve(owner) {
261
+ if (!owner)
262
+ return;
263
+ const state = this.getTargetState(owner);
264
+ if (state.resolveScheduled || state.resolved || state.applying)
265
+ return;
266
+ state.resolveScheduled = true;
267
+ Promise.resolve().then(() => {
268
+ state.resolveScheduled = false;
269
+ if (!state.resolved) {
270
+ this.resolvePendingDecorators(owner);
271
+ }
272
+ });
273
+ }
274
+ static registerPendingDecorator(owner, target, callback, propertyKey, descriptor, argsOverride, definitionKey) {
125
275
  const key = `${owner?.name || "anonymous"}:${String(propertyKey || "class")}:${Date.now()}:${Math.random()}`;
126
276
  const state = this.getTargetState(owner);
277
+ const argsOverrideClone = cloneArgsOverrides(argsOverride);
127
278
  const entry = {
128
279
  owner,
129
280
  target,
130
281
  propertyKey,
131
282
  descriptor,
132
283
  callback,
133
- argsOverride,
284
+ argsOverride: argsOverrideClone,
285
+ argsFactory: () => cloneArgsOverrides(argsOverrideClone),
134
286
  key,
287
+ definitionKey,
135
288
  };
136
289
  const applyImmediately = () => {
137
290
  const flavourToUse = state.flavour ||
@@ -139,17 +292,25 @@ class Decoration {
139
292
  Decoration.defaultFlavour;
140
293
  this.applyPendingEntry(entry, flavourToUse);
141
294
  entry.lastAppliedPass = state.passId;
295
+ entry.lastAppliedFlavour = flavourToUse;
142
296
  return flavourToUse;
143
297
  };
298
+ const registerEntry = () => {
299
+ state.pending.push(entry);
300
+ return entry;
301
+ };
144
302
  if (state.directApply) {
303
+ registerEntry();
145
304
  const flavourToUse = applyImmediately();
305
+ state.appliedCount = state.pending.length;
146
306
  state.flavour = flavourToUse;
147
307
  Metadata_1.Metadata.set(owner, constants_1.DecorationKeys.DECORATION, true);
148
308
  return key;
149
309
  }
150
- state.pending.push(entry);
310
+ registerEntry();
151
311
  if (state.applying) {
152
312
  applyImmediately();
313
+ return key;
153
314
  }
154
315
  if (Decoration.flavourResolver !== flavourResolver) {
155
316
  try {
@@ -163,6 +324,7 @@ class Decoration {
163
324
  // Ignore resolver errors during eager resolution attempts.
164
325
  }
165
326
  }
327
+ this.scheduleDefaultResolve(owner);
166
328
  return key;
167
329
  }
168
330
  static resolvePendingDecorators(target, flavour) {
@@ -170,6 +332,7 @@ class Decoration {
170
332
  if (!owner)
171
333
  return;
172
334
  const state = this.getTargetState(owner);
335
+ state.resolveScheduled = false;
173
336
  if (!state.pending.length && !flavour)
174
337
  return;
175
338
  const resolvedFlavour = flavour ||
@@ -193,14 +356,32 @@ class Decoration {
193
356
  state.applying = true;
194
357
  try {
195
358
  if (shouldFinalize) {
196
- while (state.pending.length) {
197
- const entry = state.pending.shift();
359
+ for (const entry of state.pending) {
198
360
  if (!entry)
199
361
  continue;
200
362
  if (entry.lastAppliedPass === currentPass)
201
363
  continue;
364
+ const hasOverride = this.shouldOverrideEntry(entry, resolvedFlavour);
365
+ const hasBeenApplied = typeof entry.metadataDiff !== "undefined" ||
366
+ typeof entry.descriptorSnapshot !== "undefined";
367
+ if (!hasBeenApplied) {
368
+ this.applyPendingEntry(entry, resolvedFlavour);
369
+ entry.lastAppliedPass = currentPass;
370
+ entry.lastAppliedFlavour = resolvedFlavour;
371
+ continue;
372
+ }
373
+ if (entry.lastAppliedFlavour === resolvedFlavour ||
374
+ !hasOverride) {
375
+ entry.lastAppliedPass = currentPass;
376
+ continue;
377
+ }
378
+ if (entry.metadataDiff?.length) {
379
+ revertMetadataDiff(entry.owner, entry.metadataDiff);
380
+ }
381
+ restorePropertyDescriptor(entry);
202
382
  this.applyPendingEntry(entry, resolvedFlavour);
203
383
  entry.lastAppliedPass = currentPass;
384
+ entry.lastAppliedFlavour = resolvedFlavour;
204
385
  }
205
386
  }
206
387
  else {
@@ -213,6 +394,7 @@ class Decoration {
213
394
  continue;
214
395
  this.applyPendingEntry(entry, resolvedFlavour);
215
396
  entry.lastAppliedPass = currentPass;
397
+ entry.lastAppliedFlavour = resolvedFlavour;
216
398
  }
217
399
  state.appliedCount = state.pending.length;
218
400
  }
@@ -224,8 +406,7 @@ class Decoration {
224
406
  state.resolved = true;
225
407
  state.lastAppliedFlavour = resolvedFlavour;
226
408
  if (shouldFinalize) {
227
- state.pending.length = 0;
228
- state.appliedCount = 0;
409
+ state.appliedCount = state.pending.length;
229
410
  if (resolvedFlavour !== Decoration.defaultFlavour) {
230
411
  state.directApply = true;
231
412
  }
@@ -277,7 +458,9 @@ class Decoration {
277
458
  if (typeof entry === "object" &&
278
459
  "args" in entry &&
279
460
  Array.isArray(entry.args)) {
280
- overrides[index] = [...entry.args];
461
+ overrides[index] = entry.args.map((arg) => typeof arg === "object" && arg !== null
462
+ ? cloneMetadataValue(arg)
463
+ : arg);
281
464
  }
282
465
  });
283
466
  return Object.keys(overrides).length ? overrides : undefined;
@@ -386,7 +569,10 @@ class Decoration {
386
569
  defaultArgsByIndex[candidateIndex] ??
387
570
  defaultArgsByIndex[0] ??
388
571
  []));
389
- decoratorFn = entry.decorator(...args);
572
+ const invocationArgs = args.map((arg) => typeof arg === "object" && arg !== null
573
+ ? cloneMetadataValue(arg)
574
+ : arg);
575
+ decoratorFn = entry.decorator(...invocationArgs);
390
576
  }
391
577
  else if (typeof d === "function") {
392
578
  decoratorFn = d;
@@ -437,7 +623,7 @@ class Decoration {
437
623
  const argsOverride = this.snapshotDecoratorArgs();
438
624
  Decoration.registerPendingDecorator(owner, target, (resolvedFlavour) => {
439
625
  return this.decoratorFactory(key, resolvedFlavour, argsOverride);
440
- }, propertyKey, descriptor, argsOverride);
626
+ }, propertyKey, descriptor, argsOverride, key);
441
627
  Decoration.resolvePendingDecorators(owner);
442
628
  if (propertyKey && !descriptor) {
443
629
  (0, decorators_1.prop)()(owner, propertyKey); // auto tag as a property
@@ -492,6 +678,30 @@ class Decoration {
492
678
  static setResolver(resolver) {
493
679
  Decoration.flavourResolver = resolver;
494
680
  }
681
+ static shouldOverrideEntry(entry, flavour) {
682
+ if (!entry.definitionKey)
683
+ return false;
684
+ if (flavour === Decoration.defaultFlavour)
685
+ return false;
686
+ const cache = Decoration.decorators[entry.definitionKey];
687
+ if (!cache)
688
+ return false;
689
+ const flavourBucket = cache[flavour];
690
+ if (!flavourBucket)
691
+ return false;
692
+ const defaultBucket = cache[Decoration.defaultFlavour];
693
+ const hasDecorators = flavourBucket.decorators && flavourBucket.decorators.size > 0;
694
+ const hasExtras = flavourBucket.extras instanceof Set &&
695
+ flavourBucket.extras.size > 0;
696
+ if (!hasDecorators && !hasExtras)
697
+ return false;
698
+ if (!defaultBucket)
699
+ return true;
700
+ const decoratorsMatch = !hasDecorators ||
701
+ flavourBucket.decorators === defaultBucket.decorators;
702
+ const extrasMatch = !hasExtras || flavourBucket.extras === defaultBucket.extras;
703
+ return !(decoratorsMatch && extrasMatch);
704
+ }
495
705
  /**
496
706
  * @description Convenience static entry to start a decoration builder.
497
707
  * @summary Creates a new Decoration instance and initiates the builder chain with the provided key.
@@ -512,4 +722,56 @@ class Decoration {
512
722
  }
513
723
  }
514
724
  exports.Decoration = Decoration;
725
+ function revertMetadataDiff(owner, diff) {
726
+ if (!diff || !diff.length) {
727
+ return;
728
+ }
729
+ const metadataStore = Metadata_1.Metadata["_metadata"];
730
+ const symbol = Metadata_1.Metadata.Symbol(owner);
731
+ const bucket = metadataStore[symbol] ||
732
+ (metadataStore[symbol] = {});
733
+ diff.forEach(({ path, previousValue, existed }) => {
734
+ if (!path.length)
735
+ return;
736
+ let target = bucket;
737
+ for (let i = 0; i < path.length - 1; i++) {
738
+ const key = path[i];
739
+ if (!isPlainObject(target[key])) {
740
+ target[key] = {};
741
+ }
742
+ target = target[key];
743
+ }
744
+ const key = path[path.length - 1];
745
+ if (!existed) {
746
+ delete target[key];
747
+ pruneEmptyAncestors(bucket, path.slice(0, -1));
748
+ }
749
+ else {
750
+ target[key] = cloneMetadataValue(previousValue);
751
+ }
752
+ });
753
+ }
754
+ function restorePropertyDescriptor(entry) {
755
+ if (!entry || typeof entry.propertyKey === "undefined")
756
+ return;
757
+ const target = entry.target;
758
+ if (!target || typeof entry.descriptorWasOwn === "undefined")
759
+ return;
760
+ const propertyKey = entry.propertyKey;
761
+ const snapshot = entry.descriptorSnapshot;
762
+ if (entry.descriptorWasOwn) {
763
+ if (snapshot) {
764
+ Object.defineProperty(target, propertyKey, snapshot);
765
+ }
766
+ else {
767
+ delete target[propertyKey];
768
+ }
769
+ }
770
+ else {
771
+ delete target[propertyKey];
772
+ if (snapshot) {
773
+ Object.defineProperty(target, propertyKey, snapshot);
774
+ }
775
+ }
776
+ }
515
777
  //# sourceMappingURL=Decoration.js.map
@@ -113,7 +113,8 @@ export declare class Decoration implements IDecorationBuilder {
113
113
  private static getTargetState;
114
114
  private static applyPendingEntry;
115
115
  protected static markPending(owner: any): void;
116
- protected static registerPendingDecorator(owner: any, target: any, callback: (flavour: string, overrides?: Record<number, any[]>) => PropertyDecorator | MethodDecorator, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<any> | number, argsOverride?: Record<number, any[]>): string;
116
+ private static scheduleDefaultResolve;
117
+ protected static registerPendingDecorator(owner: any, target: any, callback: (flavour: string, overrides?: Record<number, any[]>) => PropertyDecorator | MethodDecorator, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<any> | number, argsOverride?: Record<number, any[]>, definitionKey?: string): string;
117
118
  protected static resolvePendingDecorators(target: any, flavour?: string): void;
118
119
  /**
119
120
  * @description Sets the key for the decoration builder.
@@ -185,6 +186,7 @@ export declare class Decoration implements IDecorationBuilder {
185
186
  */
186
187
  private static register;
187
188
  static setResolver(resolver: FlavourResolver): void;
189
+ private static shouldOverrideEntry;
188
190
  /**
189
191
  * @description Convenience static entry to start a decoration builder.
190
192
  * @summary Creates a new Decoration instance and initiates the builder chain with the provided key.
@@ -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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"}
@@ -113,7 +113,8 @@ export declare class Decoration implements IDecorationBuilder {
113
113
  private static getTargetState;
114
114
  private static applyPendingEntry;
115
115
  protected static markPending(owner: any): void;
116
- protected static registerPendingDecorator(owner: any, target: any, callback: (flavour: string, overrides?: Record<number, any[]>) => PropertyDecorator | MethodDecorator, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<any> | number, argsOverride?: Record<number, any[]>): string;
116
+ private static scheduleDefaultResolve;
117
+ protected static registerPendingDecorator(owner: any, target: any, callback: (flavour: string, overrides?: Record<number, any[]>) => PropertyDecorator | MethodDecorator, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<any> | number, argsOverride?: Record<number, any[]>, definitionKey?: string): string;
117
118
  protected static resolvePendingDecorators(target: any, flavour?: string): void;
118
119
  /**
119
120
  * @description Sets the key for the decoration builder.
@@ -185,6 +186,7 @@ export declare class Decoration implements IDecorationBuilder {
185
186
  */
186
187
  private static register;
187
188
  static setResolver(resolver: FlavourResolver): void;
189
+ private static shouldOverrideEntry;
188
190
  /**
189
191
  * @description Convenience static entry to start a decoration builder.
190
192
  * @summary Creates a new Decoration instance and initiates the builder chain with the provided key.