JSPM

decycle

0.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 266
  • Score
    100M100P100Q107693F

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (decycle) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    decycle

    NPM

    NPM version build codecov

    JSON decycle replaces circular references with {"$ref": PATH}, where PATH is the JSONPath of the first occurrence.

    Inspired by cycle.js.

    Quick Start

    import { decycle } from 'decycle';
    
    const obj = { a: 1 };
    obj.self = obj;
    
    JSON.stringify(decycle(obj));
    // '{"a":1,"self":{"$ref":"$"}}'

    Install

    NPM:

    npm install decycle

    Yarn:

    yarn add decycle

    CDN:

    <script src="https://unpkg.com/decycle@latest/dist/index.umd.js"></script>

    Usage

    ES Modules:

    import { decycle } from 'decycle';

    CommonJS:

    const { decycle } = require('decycle');

    UMD:

    <script src="https://unpkg.com/decycle@latest/dist/index.umd.js"></script>
    <script>
      const { decycle } = window.decycle;
    </script>

    decycle(value, replacer?)

    Returns a deep copy of object or array with circular references replaced by {"$ref": PATH}.

    value

    Type: unknown

    The object or array to decycle.

    replacer

    Type: (value: unknown) => unknown

    Optional replacer function called for each value. It receives a value and returns a replacement value.

    Examples

    Circular array:

    const array = [];
    array[0] = array;
    JSON.stringify(decycle(array)); // '[{"$ref":"$"}]'

    With replacer:

    const obj = { date: new Date('2026-02-07') };
    const result = decycle(obj, (value) =>
      value instanceof Date ? value.toISOString() : value,
    );
    // { date: '2026-02-07T00:00:00.000Z' }

    Release

    Release is automated with Release Please.

    License

    MIT