$ npm install read-fallback
$ npm install --save read-fallback
Assume that I have a foo.txt
with content bar
:
const read = require('read-fallback')
// it looks for foo.md, sure it does not exist
// then it looks for foo.txt, there it is
// the last foo.xxx is skipped
read('foo', {extensions: ['.md', '.txt', '.xxx']})
.then(data => {
if (data) {
console.log(data.file, data.content)
//=> foo.txt 'bar'
} else {
console.log('no matching file!')
}
})
// use an array of file paths directly
// because sometimes the filename is different too
read(['foo.txt', 'bar.md'])
Type: string
or array
An array of file paths or a single file name.
Type: array
Used when input
is a string, eg:
// looks for gulpfile.js then gulpfile.babel.js
read('gulpfile', {extensions: ['.js', '.babel.js']})
// if no extensions:
// it simply reads `foo` only, without any extension
// but yeah, it's not a common case
read('foo')
Type: function
Specific a handler function for reading file content, by default it's a promisified fs.readFile
and returns {file, content}
in the end.
Any function which returns a Promise or does synchronus operations is valid.
// you don't know what you have
// but if a.js exists you do this
// if a.ts exists you do that
read(['a.js', 'a.ts'], {
handler(file, index) {
if (file === 'a.js') return require(path.resolve(file))
if (file === 'a.ts') return require(someTypeScriptParser(file))
}
}).then(data => {
// the data isn't `{file, content}` anymore
// it's what you return in the last step
// here it's the result of require
})
Type: boolean
Default: false
Simply return matched file path instead of using a handler function to read its content. In this way:
// assume we have b.js
read(['a.js', 'b.js'], {skipHandler: true})
.then(data => {
console.log(data)
//=> {file: 'b.js'}
// no data.content !!!
})
git checkout -b my-new-feature
git commit -am 'Add some feature'
git push origin my-new-feature
© 2010 - cnpmjs.org x YWFE | Home | YWFE