xdirs v0.2.0
xdirs
Get data, config, cache, log, and temp paths. Implements OS-specific paths but respects user-defined XDG_* paths when available (by default, to configure see Configuration).
Installation
npm i xdirs
pnpm add xdirs
yarn add xdirs
bun add xdirsUsage
import { dirs } from 'xdirs';
const paths = dirs('MyApp');Pass in the name of a directory (MyApp in the example above) to be used in the generated path strings. Returns an object with data, config, cache, log, and temp properties.
!IMPORTANT Unlike this package's predecessor,
xdirsdoes not append a "suffix" to the name of directories passed in. You may still want to add a suffix (e.g.-nodejs) to avoid conflicting with existing directories.
Output
macOS
Without XDG_* environment variables defined:
process.env['XDG_CONFIG_HOME'] = '';
process.env['XDG_DATA_HOME'] = '';
process.env['XDG_CACHE_HOME'] = '';
process.env['XDG_STATE_HOME'] = '';
const paths = dirs('MyApp');
// {
// data: "/Users/USERNAME/Library/Application Support/MyApp",
// config: "/Users/USERNAME/Library/Preferences/MyApp",
// cache: "/Users/USERNAME/Library/Caches/MyApp",
// log: "/Users/USERNAME/Library/Logs/MyApp",
// temp: "/var/folders/t3/gp6fms8s4s351gc1vbtjmtrc0000gn/T/MyApp",
// }With XDG_* environment variables defined:
process.env['XDG_CONFIG_HOME'] = '/Users/USERNAME/.config';
process.env['XDG_DATA_HOME'] = '/Users/USERNAME/.local/share';
process.env['XDG_CACHE_HOME'] = '/Users/USERNAME/.cache';
process.env['XDG_STATE_HOME'] = '/Users/USERNAME/.local/state';
const paths = dirs('MyApp');
// {
// data: "/Users/USERNAME/.local/share/MyApp",
// config: "/Users/USERNAME/.config/MyApp",
// cache: "/Users/USERNAME/.cache/MyApp",
// log: "/Users/USERNAME/.local/state/MyApp",
// temp: "/var/folders/t3/gp6fms8s4s351gc1vbtjmtrc0000gn/T/MyApp",
// }Configuration
macos
xdg(default:true): Enable/disable the usage of XDG directories on macOS:dirs('MyApp', { macos: { xdg: false } });
windows
xdg(default:true): Enable/disable the usage of XDG directories on Windows.dirs('MyApp', { windows: { xdg: false } });
License
This package is derived from env-paths. See COPYING.md.