vue 3.4.1 → 3.4.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.
@@ -3380,8 +3380,8 @@ function doWatch(source, cb, {
3380
3380
  getter = () => source.value;
3381
3381
  forceTrigger = isShallow(source);
3382
3382
  } else if (isReactive(source)) {
3383
- getter = () => source;
3384
- deep = true;
3383
+ getter = isShallow(source) || deep === false ? () => traverse(source, 1) : () => traverse(source);
3384
+ forceTrigger = true;
3385
3385
  } else if (isArray(source)) {
3386
3386
  isMultiSource = true;
3387
3387
  forceTrigger = source.some((s) => isReactive(s) || isShallow(s));
@@ -3389,7 +3389,7 @@ function doWatch(source, cb, {
3389
3389
  if (isRef(s)) {
3390
3390
  return s.value;
3391
3391
  } else if (isReactive(s)) {
3392
- return traverse(s);
3392
+ return traverse(s, isShallow(s) || deep === false ? 1 : void 0);
3393
3393
  } else if (isFunction(s)) {
3394
3394
  return callWithErrorHandling(s, instance, 2);
3395
3395
  } else {
@@ -3522,28 +3522,34 @@ function createPathGetter(ctx, path) {
3522
3522
  return cur;
3523
3523
  };
3524
3524
  }
3525
- function traverse(value, seen) {
3525
+ function traverse(value, depth, currentDepth = 0, seen) {
3526
3526
  if (!isObject(value) || value["__v_skip"]) {
3527
3527
  return value;
3528
3528
  }
3529
+ if (depth && depth > 0) {
3530
+ if (currentDepth >= depth) {
3531
+ return value;
3532
+ }
3533
+ currentDepth++;
3534
+ }
3529
3535
  seen = seen || /* @__PURE__ */ new Set();
3530
3536
  if (seen.has(value)) {
3531
3537
  return value;
3532
3538
  }
3533
3539
  seen.add(value);
3534
3540
  if (isRef(value)) {
3535
- traverse(value.value, seen);
3541
+ traverse(value.value, depth, currentDepth, seen);
3536
3542
  } else if (isArray(value)) {
3537
3543
  for (let i = 0; i < value.length; i++) {
3538
- traverse(value[i], seen);
3544
+ traverse(value[i], depth, currentDepth, seen);
3539
3545
  }
3540
3546
  } else if (isSet(value) || isMap(value)) {
3541
3547
  value.forEach((v) => {
3542
- traverse(v, seen);
3548
+ traverse(v, depth, currentDepth, seen);
3543
3549
  });
3544
3550
  } else if (isPlainObject(value)) {
3545
3551
  for (const key in value) {
3546
- traverse(value[key], seen);
3552
+ traverse(value[key], depth, currentDepth, seen);
3547
3553
  }
3548
3554
  }
3549
3555
  return value;
@@ -9477,7 +9483,7 @@ function isMemoSame(cached, memo) {
9477
9483
  return true;
9478
9484
  }
9479
9485
 
9480
- const version = "3.4.1";
9486
+ const version = "3.4.2";
9481
9487
  const warn = warn$1 ;
9482
9488
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
9483
9489
  const devtools = devtools$1 ;