flexi-path
TypeScript icon, indicating that this package has built-in type declarations

1.5.3 • Public • Published

flexi-path

Flexible path builder and walker

Build Status Codacy Badge GitHub top language code style: prettier Coverage Status David GitHub Pages GitHub npm

Installation

npm install flexi-path

Test

npm test

Example

Build paths

import flexi from "flexi-path";

const path = flexi.path("path").append("other");

const prependedPath = path.prepend("prepended");

const finalPath = prependedPath.prepend(__dirName).append("someFile.js");

finalPath.write();

//==> {cur dir}/prepended/path/other/someFile.js

Walk paths

import flexi from "flexi-path";

const path = flexi.path("path/to/existing/file.js");

flexi.walk.forward(path);

//==> ["path", "to", "existing", "file.js"]

const existingPath = flexi.path("existing/path");
const completePath = existingPath.append("some/non/existing/parts");

const result = flexi.walk.back(restOfPath, { until: until.exists() });

//==> existing/path

Compare paths

import flexi from "flexi-path";

const common = flexi.path("/common/root");
const first = flexi.path("first/path");
const second = flexi.path("second/path");

const diff = common.append(first).diff(common.append(second));

//==> [
first
second
]

const intersect = first.intersect(second);

//==> path

const except = first.except(second);

//==> first/second

const equals = flexi.path("path").equals("path");

//==> true

flexi.path("").isEmpty()

//==> true

Manipulate paths

const path = flexi.path("one/two/three/four/five/six");

const reversed = path.reverse();

//==> six/five/four/three/two/one

const cut = reversed.cut(4);

//==> six/five

const flat = cut.flatten();

//==> [
  six
  five
]

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.5.3
    2
    • latest

Version History

Package Sidebar

Install

npm i flexi-path

Weekly Downloads

2

Version

1.5.3

License

MIT

Unpacked Size

114 kB

Total Files

192

Last publish

Collaborators

  • jaspenlind