Skip to content

Repository files navigation

simple-plist

npmnpm

A simple API for interacting with binary and plain text plist data.

Installation

Package managers

# via npm
npm install simple-plist
# via yarn
yarn add simple-plist

Deno

Starting with version 1.4.0, you can also import simple-plist into your deno applications through esm.sh.

importplistfrom"https://esm.sh/simple-plist@1.4.0";

Synchronous API

import*asplistfrom"simple-plist";letdata;// readdata=plist.readFileSync("/path/to/some.plist");// write xmlplist.writeFileSync("/path/to/plaintext.plist",data);// write binaryplist.writeBinaryFileSync("/path/to/binary.plist",data);

Asynchronous API

Note: all of the async examples can optionally be converted to promises using node's util.promisify.

import*asplistfrom"simple-plist";letdata;functioncallback(err,contents){if(err)throwerr;data=contents;}// readplist.readFile("/path/to/some.plist",callback);// write xmlplist.writeFile("/path/to/plaintext.plist",data,callback);// write binaryplist.writeBinaryFile("/path/to/binary.plist",data,callback);

In Memory

plist.stringify()

constplist=require("simple-plist");// Convert an object to a plist xml stringplist.stringify({name: "Joe",answer: 42});/*<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"> <dict> <key>name</key> <string>Joe</string> <key>answer</key> <integer>42</integer> </dict></plist>*/

plist.parse()

import*asplistfrom"simple-plist";constxml=`<plist>	<dict> <key>name</key> <string>Joe</string>	</dict></plist>`;plist.parse(xml);// { "name": "Joe" }

TypeScript Support

All functions have typescript signatures, but there are a few handy generics that are worth pointing out. Those generics belong to parse, readFile, and readFileSync. Here's an example:

import{parse,readFile,readFileSync}from"simple-plist";typeProfile={name: string;answer: number;};constxml=`<plist>	<dict> <key>name</key> <string>Joe</string> <key>answer</key> <integer>42</integer>	</dict></plist>`;// typed string parsingconst{ answer }=parse<Profile>(xml);// answer = 42;// typed file loadingconst{ name }=readFileSync<Profile>("/path/to/profile.plist");

About

A simple API for interacting with binary and plain text plist data.

Resources

Stars

57 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages