0.2.0 • Published 5 months ago

xdirs v0.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

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 xdirs

Usage

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, xdirs does 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.

Licensed under the MIT License.

0.2.0

5 months ago

0.1.0

5 months ago