0.2.0 • Published 4 years ago

@mutagen-d/path v0.2.0

Weekly downloads
-
License
ISC
Repository
github
Last release
4 years ago

Path

Build Status

Module for manipulating file and directory path

Installation

npm i @mutagen-d/path
# or
yarn add @mutagen-d/path

API

MethodReturn typeDescription
resolve()string
getNames()string[]names of dirs and file
validate()voidthrows exception if not valid path value
isAbsolutePath()boolean
join()stringconcatenate paths
isSubPath()boolean
getRelativePath()string
getFileName()stringget filename from path
validateFileName()throws exception if not valid filename
getExtension()stringget extension from filename
getBaseName()stringget basename from filename
getSourceDirectory()stringreturns source directory path for given path

Usage

resolve

// absolute paths
Path.resolve("/path/../to/some/directory/") === "/to/some/directory"
Path.resolve("/././path/to") === "/path/to"
Path.resolve("/././path/to/../") === "/path"
Path.resolve("/path/../") === "/"
Path.resolve("/path/..") === "/"
Path.resolve("/") === "/"

// relative paths
Path.resolve("path/../") === "./"
Path.resolve("path/..") === "./"
Path.resolve("./path/..") === "./"
Path.resolve("path") === "./path"
Path.resolve("././path/to/file/..") === "./path/to"
Path.resolve("./") === "./"

getNames

Path.getNames("/path/to/file") == ["", "path", "to", "file"]
Path.getNames("/path/to/dir/") == ["", "path", "to", "dir"]
Path.getNames("/path/to/../file/./") == ["", "path", "file"]
Path.getNames("./path/to/file") == ["path", "to", "file"]
Path.getNames("path/to/file") == ["path", "to", "file"]
Path.getNames("/") == [""]
Path.getNames("./") == []

join

Path.join([]) === "./"
Path.join([""]) ===  "/"
Path.join(["", "root", "main"]) === "/root/main"
Path.join(["root", "main"]) === "./root/main"
Path.join(Path.getNames("./root/folder/") === "./root/folder"
Path.join(Path.getNames("./")) === "./"
Path.join(Path.getNames("/")) === "/"

Path.join(["/root/dir"]) === "/root/dir"
Path.join(["./relative/path"]) === "./relative/path"
Path.join(["./relative/path", "/absolute/folder"]) === "./relative/path/absolute/folder"
Path.join(["./relative/path", "./relative/folder"]) === "./relative/path/relative/folder"
Path.join(["./relative/path/to/folder", "../../"]) === "./relative/path"

getRelativePath

Path.getRelative("./path/to/dir", "path/to") === "./dir"
Path.getRelative("/path/to/folder", "/path") === "./to/folder"
Path.getRelative("./path/to/folder/", "./path") === "./to/folder"

getFileName

Path.getFileName("./path/file.name.txt") === "file.name.txt"
Path.getFileName("./path/to/file.out/folder/../") === "file.out"
Path.getFileName("/") === ""
Path.getFileName("./") === ""

getSourceDirectory

Path.getSourceDirectory("/base/path/to/file.txt", "./to/file.txt") === "/base/path"
Path.getSourceDirectory("/base/path/to/file.txt", "to/file.txt") === "/base/path"
Path.getSourceDirectory("/base/path/to/file.txt", "file.txt") === "/base/path/to"