-
-
Notifications
You must be signed in to change notification settings - Fork 957
Open
Description
I don't know if this is expected behavior or not. But it feels off for me.
It will cause issues when using defaultData multiple times.
(ex. multiple lowdb instances using the same defaultData)
ISSUES:
defaultDatais used as a reference fordatainlowdbobject.- when
datainlowdbis updated thedefaultDataobject content is also updated. - please check the example typescript code below.
import {JSONFilePreset} from "lowdb/node"
const defaultData = {
name: "ALICE",
}
const db = await JSONFilePreset("test.json", defaultData)
// db.data should be ALICE
console.log(db.data.name === "ALICE") // true
// update db.data to BOB
db.data.name = "BOB"
// db.data now is BOB
console.log(db.data.name === "BOB") // true
// defaultData should still be ALICE
console.log(defaultData.name === "ALICE") // false
// defaultData becomes BOB instead (unexpected)
console.log(defaultData.name === "BOB") // trueSOLUTION:
- deep clone object
- using
structuredClonefixed it.
const db = await JSONFilePreset("test.json", structuredClone(defaultData))Timmiej93
Metadata
Metadata
Assignees
Labels
No labels