plistlib
Node.js plist parser and writer. By Dallin Lauritzen.
Install
Install using NPM
npm install plistlib
Parsed Objects
The object structure returned from the load
methods and expected as the parameter
for save
and toString
is a tree structure made of "type"/"value" dictionary pairs.
All the supported plist value types are detailed below.
String
Hello
becomes
type: 'string' value: 'Hello'
Integer
123
becomes
type: 'integer' value: 123
Array
Cat
becomes
type: 'array'value:type: 'string' value: 'Cat'
Dict
AB
becomes
type: 'dict'value:A: type: 'string' value: 'B'
Nesting
Types can nest, so here's a fancier example.
Array Of DictsABC4
becomes
type: 'dict'value:"Array Of Dicts":type: 'array'value:type: 'dict'value:A: type: 'string' value: 'B'C: type: 'integer' value: 4
Data
Plistlib supports base64-encoded data within data
tags. The data will be parsed
as a Buffer. When saving, the buffer will be re-encoded into base64 with a line-length
of 60 characters and indented to be level with it's tags.
R0lGODlhDwAPAPcAAAAAAP6dAP6eAP6hAP6hAf6iAf6jAf6iAv6jAv6kAf6nAf6mAv6rA/+qA/+rAv+uA/+tBP+uBP6xBP+xBP+zBP+zBf60BP63Bf+3Bf67Bv68Bv69Bv69B/+8Bv7ECP/ECP/FCP7ICf7JCf/ICf7LCf/KCP/KCf7MCf/MCf7RCv7SCv7SC//SCv/SC/7YC/7ZDP/YDP/ZDP7bDf/bDP7dDf/dDP/dDf/lDv/mDv/mD//pD//wEP/wEf/1Ef/1Ev///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yH5BAEAAP8ALAAAAAAPAA8AAAitAP8JFAigYMGBCP8VJCHiw4YKBxECUBFjxosVIzZMWABgIAAWNnTowFGjBYgLDAh0VOhCB48eO3DAMJEBAoKOAFDI0FHQh44ZBSMgCFDQxIscBXngcBH0AFEAIFLQuDGShooPGBwQeNohBIsYMmCwyIhhgYCnFjR4AHCixAcOFABsJapQwoUOBgsaCEBXoYIGDwI/IDC3r0ICBRIYGHCW70qPAPhKjphQYd6EAQEAOw==
becomes
type: 'array'value:type: 'data' value: <Buffer 47 49 46 38 39 61 0f 00 0f 00 ...>
API
var plistlib = ;// Load or save a fileplistlib;// You can also parse in-memory buffers and stringsplistlib;plistlib;// Output to a string instead of a file. This method is synchronousvar content = plistlib;