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

    1.5.2 • 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
    ]

    Install

    npm i flexi-path

    DownloadsWeekly Downloads

    18

    Version

    1.5.2

    License

    MIT

    Unpacked Size

    115 kB

    Total Files

    192

    Last publish

    Collaborators

    • jaspenlind