xdirs
v0.2.0
Published
Get data, config, cache, log, and temp paths - cross-platform and respectful of user-defined XDG variables.
Readme
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.
