{"library":"simple-plist","title":"simple-plist utility","description":"simple-plist is a wrapper utility for interacting with Apple Property List (plist) data, supporting both binary and XML formats. The current stable version is 1.3.1. While its release cadence is not rapid, the package demonstrates active maintenance, as evidenced by the recent v1.3.0 rewrite into TypeScript to provide strong typing. It offers a straightforward API for reading and writing plist files synchronously and asynchronously, as well as in-memory parsing and stringification. This package serves as a convenient abstraction over lower-level plist parsing libraries, making it easier to manage `.plist` files commonly found in macOS and iOS environments, without requiring direct interaction with the underlying `plist` or `bplist` packages.","language":"javascript","status":"active","last_verified":"Sun Apr 19","install":{"commands":["npm install simple-plist"],"cli":{"name":"simple-plist","version":null}},"imports":["import * as plist from 'simple-plist';","import { readFileSync, writeFileSync } from 'simple-plist';","const plist = require('simple-plist');","import { parse } from 'simple-plist';"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import { writeFileSync, readFileSync } from 'simple-plist';\nimport * as path from 'path';\nimport * as fs from 'fs';\n\nconst tempFilePath = path.join(process.cwd(), 'temp.plist');\n\ntype AppConfig = {\n  appName: string;\n  version: string;\n  debugMode: boolean;\n  settings: { theme: string; language: string };\n};\n\nconst config: AppConfig = {\n  appName: 'MyAwesomeApp',\n  version: '1.0.0',\n  debugMode: true,\n  settings: { theme: 'dark', language: 'en-US' },\n};\n\ntry {\n  // Write the object to an XML plist file\n  writeFileSync(tempFilePath, config);\n  console.log('Plist file written successfully:', tempFilePath);\n\n  // Read the plist file back into an object\n  const readConfig = readFileSync(tempFilePath) as AppConfig;\n  console.log('Plist file read successfully:', readConfig);\n  console.log('App Name:', readConfig.appName);\n  console.log('Version:', readConfig.version);\n} catch (error) {\n  console.error('An error occurred:', error);\n} finally {\n  // Clean up the temporary file\n  if (fs.existsSync(tempFilePath)) {\n    fs.unlinkSync(tempFilePath);\n    console.log('Temporary plist file cleaned up.');\n  }\n}","lang":"typescript","description":"Demonstrates how to write a JavaScript object to a plist file and then read it back, using synchronous file operations and TypeScript types.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}