modern typescript utilities for working with property lists (the .plist
files used in apple operating systems),
both reading and writing, both binary and xml-based. also supports NSKeyedArchiver/NSKeyedUnarchiver.
import { readBinaryPlist, writeBinaryPlist } from '@fuman/plist'
const data = writeBinaryPlist({ meow: 'purr' })
console.log(readBinaryPlist(data))
import { readXmlPlist, writeXmlPlist } from '@fuman/plist'
const data = writeXmlPlist({ meow: 'purr' })
console.log(readXmlPlist(data))
note:
readXmlPlist
usesDOMParser
, which might not be available in your environment (notably, under node.js as of writing). consider using@xmldom/xmldom
:import { DOMParser } from '@xmldom/xmldom'
console.log(readXmlPlist(data, { DOMParser }))
import { nsKeyedArchive, nsKeyedUnarchive, readBinaryPlist, writeBinaryPlist } from '@fuman/plist'
const file = nsKeyedUnarchive(readBinaryPlist(await readFile('meow.plist')))
console.log(file)
file.foo = 123
await writeFile('meow2.plist', writeBinaryPlist(nsKeyedArchive(file)))