A set of small and fast Node.js utilities to understand your pathing needs.
Multiple submodules (eg, empathic/find
) are offered, each of which are:
- fast — 8x to 40x faster than popular alternatives
- modern — based on newer
node:*
native APIs - small — ranging from 200b to 500b in size
- safe — zero-dependency & easy to read
$ npm install empathic
import { resolve } from 'node:path';
import * as find from 'empathic/find';
import * as pkg from 'empathic/package';
// Assumed example structure:
let cwd = resolve('path/to/acme/websites/dashboard');
// Find closest "foobar.config.js" file
let file = find.up('foobar.config.js', { cwd });
//=> "/.../path/to/acme/foobar.config.js"
// Find closest "package.json" file
let pkgfile = pkg.up({ cwd });
//=> "/.../path/to/acme/package.json"
// Construct (optionally create) "foobar" cache dir
let cache = pkg.cache('foobar', { cwd, create: true });
//=> "/.../path/to/acme/node_modules/.cache/foobar"
Source · Size:
259b
Check for file access/permissions. Named fs.accessSync
shortcuts.
Find files and/or directories by walking up parent directories.
Convenience helpers for dealing with package.json
files and/or node_modules
packages.
Resolve absolute paths to package identifiers, relative paths, file URL, and/or from other root directories.
Collect all the parent directories of a target. Controlled via cwd
and stop
options.
MIT © Luke Edwards