@hodfords/nestjs-response 11.1.2 → 11.1.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hodfords/nestjs-response",
3
- "version": "11.1.2",
3
+ "version": "11.1.3",
4
4
  "description": "Standardizes and validates API responses in NestJS for consistent and reliable communication",
5
5
  "author": "",
6
6
  "license": "UNLICENSED",
@@ -30,7 +30,7 @@ function applyTransforms(data, target, options) {
30
30
  if (typeof target !== 'function') {
31
31
  return data;
32
32
  }
33
- const plan = getOrBuildPlan(target, storage, new Set());
33
+ const plan = getOrBuildPlan(target, storage, new Map());
34
34
  if (!plan.propertyTransforms.length && !plan.nestedPlans.length) {
35
35
  return data;
36
36
  }
@@ -99,25 +99,24 @@ function matchesVersion(metaOptions, callOptions) {
99
99
  const until = metaOptions === null || metaOptions === void 0 ? void 0 : metaOptions.until;
100
100
  return (since === undefined || version >= since) && (until === undefined || version < until);
101
101
  }
102
- function getOrBuildPlan(target, storage, visiting) {
102
+ function getOrBuildPlan(target, storage, building) {
103
103
  const cached = planCache.get(target);
104
104
  if (cached) {
105
105
  return cached;
106
106
  }
107
- if (visiting.has(target)) {
108
- return { propertyTransforms: [], nestedPlans: [] };
107
+ const inProgress = building.get(target);
108
+ if (inProgress) {
109
+ return inProgress;
109
110
  }
110
- visiting.add(target);
111
- const propertyTransforms = [];
112
- const nestedPlans = [];
111
+ const plan = { propertyTransforms: [], nestedPlans: [] };
112
+ building.set(target, plan);
113
113
  const seenTransform = new Set();
114
114
  const seenNested = new Set();
115
115
  for (const cls of collectClassChain(target)) {
116
- collectPropertyTransforms(cls, storage, seenTransform, propertyTransforms);
117
- collectNestedPlans(cls, storage, visiting, seenNested, nestedPlans);
116
+ collectPropertyTransforms(cls, storage, seenTransform, plan.propertyTransforms);
117
+ collectNestedPlans(cls, storage, building, seenNested, plan.nestedPlans);
118
118
  }
119
- const plan = { propertyTransforms, nestedPlans };
120
- visiting.delete(target);
119
+ building.delete(target);
121
120
  planCache.set(target, plan);
122
121
  return plan;
123
122
  }
@@ -144,7 +143,7 @@ function collectPropertyTransforms(cls, storage, seen, out) {
144
143
  }
145
144
  }
146
145
  }
147
- function collectNestedPlans(cls, storage, visiting, seen, out) {
146
+ function collectNestedPlans(cls, storage, building, seen, out) {
148
147
  const typeMap = storage._typeMetadatas.get(cls);
149
148
  if (!typeMap) {
150
149
  return;
@@ -158,8 +157,9 @@ function collectNestedPlans(cls, storage, visiting, seen, out) {
158
157
  if (!nestedClass) {
159
158
  continue;
160
159
  }
161
- const nestedPlan = getOrBuildPlan(nestedClass, storage, visiting);
162
- if (nestedPlan.propertyTransforms.length > 0 || nestedPlan.nestedPlans.length > 0) {
160
+ const isCycle = building.has(nestedClass) && !planCache.has(nestedClass);
161
+ const nestedPlan = getOrBuildPlan(nestedClass, storage, building);
162
+ if (isCycle || nestedPlan.propertyTransforms.length > 0 || nestedPlan.nestedPlans.length > 0) {
163
163
  out.push({ propertyName, plan: nestedPlan });
164
164
  }
165
165
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transform.util.js","sourceRoot":"","sources":["../../../lib/utils/transform.util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform.util.js","sourceRoot":"","sources":["../../../lib/utils/transform.util.ts"],"names":[],"mappings":"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"}