A set of small and fast Node.js utilities to understand your pathing needs.
> 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
``sh`
$ npm install empathic
`ts
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.
> Source · Benchmark · Size: 569b
Find files and/or directories by walking up parent directories.
> Source · Benchmark · Size: 505b
Convenience helpers for dealing with package.json files and/or node_modules packages.
> Source · Benchmark · Size: 419b
Resolve absolute paths to package identifiers, relative paths, file URL, and/or from other root directories.
> Source · Benchmark · Size: 208b
Collect all the parent directories of a target. Controlled via cwd and last` options.
MIT © Luke Edwards