seroval

Stringify JS values

MIT 77 个版本
安装
npm install seroval
yarn add seroval
pnpm add seroval
bun add seroval
README

seroval

Stringify JS values

NPM JavaScript Style Guide

Install

npm install --save seroval
yarn add seroval
pnpm add seroval

Usage

import { serialize } from 'seroval';

const object = {
  number: [Math.random(), -0, NaN, Infinity, -Infinity],
  string: ['hello world', '<script>Hello World</script>'],
  boolean: [true, false],
  null: null,
  undefined: undefined,
  bigint: 9007199254740991n,
  array: [,,,], // holes
  regexp: /[a-z0-9]+/i,
  date: new Date(),
  map: new Map([['hello', 'world']]),
  set: new Set(['hello', 'world']),
};

// self cyclic references
// recursive objects
object.self = object;
// recursive arrays
object.array.push(object.array);
// recursive maps
object.map.set('self', object.map);
// recursive sets
object.set.add(object.set);

// mutual cyclic references
object.array.push(object.map);
object.map.set('mutual', object.set);
object.set.add(object.array);

const result = serialize(object);
console.log(result);

Output (as a string):

((h,j,k,m,o)=>(o={number:[0.5337763749243287,-0,0/0,1/0,-1/0],string:["hello world","\x3Cscript>Hello World\x3C/script>"],boolean:[!0,!1],null:null,undefined:void 0,bigint:9007199254740991n,array:h=[,,,,k=(j=[],new Map([["hello","world"],["mutual",m=new Set(["hello","world"])]]))],regexp:/[a-z0-9]+/i,date:new Date("2023-12-07T17:28:57.909Z"),map:k,set:m},h[3]=h,k.set("self",k),m.add(m).add(h),o.self=o,o))()

// Formatted for readability
((h, j, k, m, o) => (
  (o = {
    number: [0.5337763749243287, -0, 0 / 0, 1 / 0, -1 / 0],
    string: ["hello world", "\x3Cscript>Hello World\x3C/script>"],
    boolean: [!0, !1],
    null: null,
    undefined: void 0,
    bigint: 9007199254740991n,
    array: (h = [
      ,
      ,
      ,
      ,
      (k =
        ((j = []),
        new Map([
          ["hello", "world"],
          ["mutual", (m = new Set(["hello", "world"]))],
        ]))),
    ]),
    regexp: /[a-z0-9]+/i,
    date: new Date("2023-12-07T17:28:57.909Z"),
    map: k,
    set: m,
  }),
  (h[3] = h),
  k.set("self", k),
  m.add(m).add(h),
  (o.self = o),
  o
))();

Docs

Sponsors

Sponsors

License

MIT © lxsmnsyc

版本列表
1.5.4 2026-05-05
1.5.3 2026-05-04
1.5.2 2026-04-03
1.5.1 2026-03-09
1.5.0 2026-01-23
1.4.2 2025-12-26
1.4.1 2025-12-19
1.4.0 2025-11-16
1.3.2 2025-05-24
1.3.1 2025-05-11
1.3.0 2025-05-06
1.2.1 2025-02-01
1.2.0 2025-01-07
1.1.1 2024-07-30
1.1.0 2024-07-14
1.0.8 2024-07-14
1.0.7 2024-05-16
1.0.6 2024-05-16
1.0.5 2024-03-10
1.0.4 2024-01-11
1.0.3 2024-01-06
1.0.2 2023-12-27
1.0.0 2023-12-12
0.15.1 2023-11-29
0.15.0 2023-11-29
0.14.1 2023-11-22
0.14.0 2023-11-22
0.13.2 2023-11-21
0.13.1 2023-11-21
0.13.0 2023-11-18
0.12.4 2023-11-15
0.12.3 2023-11-02
0.12.2 2023-11-02
0.12.1 2023-11-02
0.12.0 2023-10-19
0.11.6 2023-10-18
0.11.5 2023-10-18
0.11.4 2023-10-18
0.11.3 2023-10-13
0.11.2 2023-10-13
0.11.1 2023-10-12
0.11.0 2023-10-11
0.10.4 2023-09-28
0.10.3 2023-09-28
0.10.2 2023-09-26
0.10.1 2023-09-18
0.9.0 2023-07-07
0.8.0 2023-05-03
0.7.0 2023-04-09
0.6.0 2023-04-08
0.5.1 2023-03-22
0.5.0 2023-03-17
0.4.1 2023-03-16
0.4.0-alpha.18 2023-03-16
0.4.0-alpha.17 2023-03-16
0.4.0-alpha.16 2023-03-16
0.4.0-alpha.15 2023-03-16
0.4.0-alpha.14 2023-03-15
0.4.0-alpha.13 2023-03-15
0.4.0-alpha.12 2023-03-15
0.4.0-alpha.11 2023-03-15
0.4.0-alpha.10 2023-03-15
0.4.0-alpha.9 2023-03-15
0.4.0-alpha.8 2023-03-15
0.4.0-alpha.7 2023-03-15
0.4.0-alpha.6 2023-03-15
0.4.0-alpha.5 2023-03-15
0.4.0-alpha.4 2023-03-15
0.4.0-alpha.3 2023-03-14
0.4.0-alpha.2 2023-03-14
0.4.0-alpha.1 2023-03-14
0.4.0-alpha.0 2023-03-14
0.4.0 2023-03-16
0.3.0 2023-03-13
0.2.1 2023-03-07
0.2.0 2023-03-06
0.1.0 2023-02-06