radash icon indicating copy to clipboard operation
radash copied to clipboard

problem crushing objects with null prototype

Open muradm opened this issue 1 year ago • 1 comments

import JSONBigInt from 'json-bigint'
import { crush } from 'radash'

const { stringify, parse } = JSONBigInt()

console.log(crush(parse(stringify({ a: 1 }))))

// expected
// { a: 1 }

// actual
// { '': [Object: null prototype] { a: 1 } }

function copy(o: object): any {
  return mapValues(o, (v) => v && typeof v === 'object' ? copy(v) : v)
}

// dirty workaround copying object works
console.log(crush(copy(parse(stringify({ a: 1 })))))

muradm avatar Oct 24 '24 22:10 muradm

This is fixed in the Radashi fork.

// Test case
import * as _ from 'radashi'

const o = Object.create(null)
o.a = 1

_.crush(o) // => { a: 1 }

aleclarson avatar Nov 02 '24 17:11 aleclarson