zod-nest 2.1.0 → 2.1.2

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/dist/index.mjs CHANGED
@@ -240,11 +240,22 @@ var computeShapeKeys = /* @__PURE__ */ __name((schema) => {
240
240
  required
241
241
  };
242
242
  }, "computeShapeKeys");
243
+ var computeOverriddenKeys = /* @__PURE__ */ __name((parent, child) => {
244
+ const overriddenKeys = /* @__PURE__ */ new Set();
245
+ for (const key of Object.keys(child.shape)) {
246
+ const parentProp = parent.shape[key];
247
+ if (parentProp !== void 0 && parentProp !== child.shape[key]) {
248
+ overriddenKeys.add(key);
249
+ }
250
+ }
251
+ return overriddenKeys;
252
+ }, "computeOverriddenKeys");
243
253
  var extend = /* @__PURE__ */ __name((parent, build) => {
244
254
  const result = build(parent);
245
255
  lineageMap.set(result, {
246
256
  op: "extend",
247
- parent
257
+ parent,
258
+ overriddenKeys: computeOverriddenKeys(parent, result)
248
259
  });
249
260
  if (!propsMap.has(parent)) {
250
261
  propsMap.set(parent, computeShapeKeys(parent));
@@ -278,12 +289,12 @@ var createCompositionOverride = /* @__PURE__ */ __name((opts) => {
278
289
  const parentReqSet = new Set(parentCache.required);
279
290
  const deltaProps = {};
280
291
  for (const [key, value] of Object.entries(childProps)) {
281
- if (parentPropSet.has(key)) {
292
+ if (parentPropSet.has(key) && !entry.overriddenKeys.has(key)) {
282
293
  continue;
283
294
  }
284
295
  deltaProps[key] = value;
285
296
  }
286
- const deltaRequired = childRequired.filter((key) => !parentReqSet.has(key));
297
+ const deltaRequired = childRequired.filter((key) => !parentReqSet.has(key) || entry.overriddenKeys.has(key));
287
298
  const delta = {
288
299
  type: "object",
289
300
  properties: deltaProps