seroval 0.11.4 → 0.11.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.
@@ -660,48 +660,56 @@ async function parseObject(
660
660
  current as unknown as Set<unknown>,
661
661
  );
662
662
  }
663
+ // Promises
664
+ if (
665
+ (ctx.features & Feature.Promise)
666
+ && (currentClass === Promise || current instanceof Promise)
667
+ ) {
668
+ return generatePromiseNode(ctx, id, current as unknown as Promise<unknown>);
669
+ }
663
670
  // Web APIs
664
671
  if (ctx.features & Feature.WebAPI) {
665
- switch (currentClass) {
666
- case URL:
667
- return createURLNode(id, current as unknown as URL);
668
- case URLSearchParams:
669
- return createURLSearchParamsNode(id, current as unknown as URLSearchParams);
670
- case Blob:
671
- return createBlobNode(ctx, id, current as unknown as Blob);
672
- case File:
673
- return createFileNode(ctx, id, current as unknown as File);
674
- case Headers:
675
- return generateHeadersNode(ctx, id, current as unknown as Headers);
676
- case FormData:
677
- return generateFormDataNode(ctx, id, current as unknown as FormData);
678
- case Request:
679
- return generateRequestNode(ctx, id, current as unknown as Request);
680
- case Response:
681
- return generateResponseNode(ctx, id, current as unknown as Response);
682
- case Event:
683
- return generateEventNode(ctx, id, current as unknown as Event);
684
- case CustomEvent:
685
- return generateCustomEventNode(ctx, id, current as unknown as CustomEvent);
686
- case DOMException:
687
- return createDOMExceptionNode(id, current as unknown as DOMException);
688
- default:
689
- break;
672
+ if (typeof URL !== 'undefined' && currentClass === URL) {
673
+ return createURLNode(id, current as unknown as URL);
674
+ }
675
+ if (typeof URLSearchParams !== 'undefined' && currentClass === URLSearchParams) {
676
+ return createURLSearchParamsNode(id, current as unknown as URLSearchParams);
677
+ }
678
+ if (typeof Blob !== 'undefined' && currentClass === Blob) {
679
+ return createBlobNode(ctx, id, current as unknown as Blob);
680
+ }
681
+ if (typeof File !== 'undefined' && currentClass === File) {
682
+ return createFileNode(ctx, id, current as unknown as File);
683
+ }
684
+ if (typeof Headers !== 'undefined' && currentClass === Headers) {
685
+ return generateHeadersNode(ctx, id, current as unknown as Headers);
686
+ }
687
+ if (typeof FormData !== 'undefined' && currentClass === FormData) {
688
+ return generateFormDataNode(ctx, id, current as unknown as FormData);
689
+ }
690
+ if (typeof Request !== 'undefined' && currentClass === Request) {
691
+ return generateRequestNode(ctx, id, current as unknown as Request);
692
+ }
693
+ if (typeof Response !== 'undefined' && currentClass === Response) {
694
+ return generateResponseNode(ctx, id, current as unknown as Response);
695
+ }
696
+ if (typeof Event !== 'undefined' && currentClass === Event) {
697
+ return generateEventNode(ctx, id, current as unknown as Event);
698
+ }
699
+ if (typeof CustomEvent !== 'undefined' && currentClass === CustomEvent) {
700
+ return generateCustomEventNode(ctx, id, current as unknown as CustomEvent);
701
+ }
702
+ if (typeof DOMException !== 'undefined' && currentClass === DOMException) {
703
+ return createDOMExceptionNode(id, current as unknown as DOMException);
690
704
  }
691
705
  }
692
706
  if (
693
707
  (ctx.features & Feature.AggregateError)
708
+ && typeof AggregateError !== 'undefined'
694
709
  && (currentClass === AggregateError || current instanceof AggregateError)
695
710
  ) {
696
711
  return generateAggregateErrorNode(ctx, id, current as unknown as AggregateError);
697
712
  }
698
- // Promises
699
- if (
700
- (ctx.features & Feature.Promise)
701
- && (currentClass === Promise || current instanceof Promise)
702
- ) {
703
- return generatePromiseNode(ctx, id, current as unknown as Promise<unknown>);
704
- }
705
713
  // Slow path. We only need to handle Errors and Iterators
706
714
  // since they have very broad implementations.
707
715
  if (current instanceof Error) {
@@ -555,31 +555,32 @@ function parseObject(
555
555
  }
556
556
  // Web APIs
557
557
  if (ctx.features & Feature.WebAPI) {
558
- switch (currentClass) {
559
- case URL:
560
- return createURLNode(id, current as unknown as URL);
561
- case URLSearchParams:
562
- return createURLSearchParamsNode(id, current as unknown as URLSearchParams);
563
- case Headers:
564
- return generateHeadersNode(ctx, id, current as unknown as Headers);
565
- case FormData:
566
- return generateFormDataNode(ctx, id, current as unknown as FormData);
567
- case Event:
568
- return generateEventNode(ctx, id, current as unknown as Event);
569
- case CustomEvent:
570
- return generateCustomEventNode(ctx, id, current as unknown as CustomEvent);
571
- case DOMException:
572
- return createDOMExceptionNode(id, current as unknown as DOMException);
573
- default:
574
- break;
558
+ if (typeof URL !== 'undefined' && currentClass === URL) {
559
+ return createURLNode(id, current as unknown as URL);
560
+ }
561
+ if (typeof URLSearchParams !== 'undefined' && currentClass === URLSearchParams) {
562
+ return createURLSearchParamsNode(id, current as unknown as URLSearchParams);
563
+ }
564
+ if (typeof Headers !== 'undefined' && currentClass === Headers) {
565
+ return generateHeadersNode(ctx, id, current as unknown as Headers);
566
+ }
567
+ if (typeof FormData !== 'undefined' && currentClass === FormData) {
568
+ return generateFormDataNode(ctx, id, current as unknown as FormData);
569
+ }
570
+ if (typeof Event !== 'undefined' && currentClass === Event) {
571
+ return generateEventNode(ctx, id, current as unknown as Event);
572
+ }
573
+ if (typeof CustomEvent !== 'undefined' && currentClass === CustomEvent) {
574
+ return generateCustomEventNode(ctx, id, current as unknown as CustomEvent);
575
+ }
576
+ if (typeof DOMException !== 'undefined' && currentClass === DOMException) {
577
+ return createDOMExceptionNode(id, current as unknown as DOMException);
575
578
  }
576
579
  }
577
580
  if (
578
581
  (ctx.features & Feature.AggregateError)
579
- && (
580
- currentClass === AggregateError
581
- || current instanceof AggregateError
582
- )
582
+ && typeof AggregateError !== 'undefined'
583
+ && (currentClass === AggregateError || current instanceof AggregateError)
583
584
  ) {
584
585
  return generateAggregateErrorNode(ctx, id, current as unknown as AggregateError);
585
586
  }