extract-path
v2.0.0
Published
Extract a valid fs path from a string
Downloads
27,736
Maintainers
Readme
extract-path
Extract a valid fs path from a string.
extract-path is a node library that will attempt to find a possible valid file system path for a given input, validate its existance within the file system and return the matching value upon confirmation.
Table of Contents
About
The main use case for the lib is to be able to take valid path values out of verbose outputs such as those generated by a git status
command:
modified: src/Router.js
resolves tosrc/Router.js
?? src/utils/__tests__/file.test.js
resolves tosrc/utils/__tests__/file.test.js
This library was primarily put together for usage in iPipeTo which allows for its users to easily extract a path out of a random input value. Some extra effort was made to ensure extract-path works well as a separated lib in the hope that it can be useful for different use cases out there. Feel free to refer to iPipeTo source code as a implementation example if ever needed.
Install
npm install extract-path
Usage
// example.js
const extractPath = require('extract-path');
extractPath('Selected file: ~/Documents/foo.js ...')
.then(path => {
console.log(path);
// ~/Documents/foo.js
});
API
The API only exposes a single function, that receives a string
and returns a Promise
which resolves with a single, valid string
value or undefined
if there was no possible match.
extractPath(str, opts)
- str
string
value to be parsed in order to extract a valid fs path - opts [optional]
object
containing the following:- validateFileExists
boolean
wether the module should validate the file exists, defaults totrue
- resolveWithFallback
boolean
uses a fallback system that matches the entire input if a path couldn't be infered from the input, defaults totrue
- validateFileExists
Credit
extract-path is heavily inspired by the work done in PathPicker parsing algorithm and regular expressions.
Related
iPipeTo - Interactive Pipe To: The missing cli interactive workflow
Contribute
Please do! This is an open source project. If you have a bug or want to discuss something, open an issue.
License
MIT © 2018 Ruy Adorno