@bemoje/path
v2.0.0
Published
Cross-platform path utilities extending upath with validation, manipulation, and inspection helpers.
Maintainers
Readme
@bemoje/path
Cross-platform path utilities extending upath with validation, manipulation, and inspection helpers.
Exports
- cwd
- dirnameDeep: Returns the absolute path of the parent directory of the given path.
- hasBasename: Checks if a file path has any of the specified basenames.
- hasExtname: Checks if a file path has any of the specified file extensions.
- hasParentDirname: Whether fspath is a subpath of a parent directory with the given name.
- isDotFile: Determines if a given filepath is a dotfile.
- isExtValid: Check if a file extension is valid. Invalid: - empty string - single dot: "." - illegal characters: <>"|?*:
- isRelative: Whether a path is a relative string, ie. not absolute.
- isUnc: Determines if a given filepath is a UNC path.
- isValidWin32.aspx
- prefixFilename: Append string to the beginning of the filename.
- root: Returns the root directory of a given path.
- suffixFilename: Append string to the end of the filename.
- toCwdRelative path to the {p} path. At times we have two absolute paths, and we need to derive the relative path from one to the other. This is actually the reverse transform of path.resolve.
- toWin32: Ensures win32 backslashes are used instead of forward slashes.
Installation
npm install @bemoje/pathUsage
Working Directory Helpers
import { cwd, toCwdRelative } from '@bemoje/path'
// Join paths from cwd
cwd('src', 'index.ts') // /home/user/project/src/index.ts
// Convert absolute to cwd-relative
toCwdRelative('/home/user/project/src/index.ts') // 'src/index.ts'Filename Manipulation
import { prefixFilename, suffixFilename } from '@bemoje/path'
prefixFilename('path/to/file.ts', 'new-') // 'path/to/new-file.ts'
suffixFilename('path/to/file.ts', '.bak') // 'path/to/file.bak.ts'Path Inspection
import { hasExtname, hasBasename, hasParentDirname, isDotFile, isRelative, isUnc } from '@bemoje/path'
hasExtname('index.ts', ['ts', 'tsx']) // true
hasExtname.ts('index.ts') // true
hasExtname.json('config.json') // true
hasBasename('src/index.ts', 'index.ts') // true
hasParentDirname('src/lib/utils.ts', 'lib') // true
isDotFile('.gitignore') // true
isRelative('./src') // true
isUnc('\\\\server\\share') // trueValidation
import { isValidWin32, isExtValid } from '@bemoje/path'
isValidWin32('C:\\Users\\file.txt') // true
isValidWin32('C:\\Users\\file<>.txt') // false
isExtValid('.ts') // true
isExtValid('') // false
isExtValid('.') // falseDirectory and Root Helpers
import { dirnameDeep, root, toWin32 } from '@bemoje/path'
dirnameDeep('a/b/c/d', 2) // 'a/b'
root('/home/user') // '/'
toWin32('path/to/file') // 'path\\to\\file'