read-data-file
v2.0.11
Published
Read data/config files in various formats (parsers list is configurable).
Downloads
148
Readme
read-data-file
Read data/config files in various formats (parsers list is configurable).
Usage
see test/usage.mjs
API
This module exports one function:
readDataFile(path)
Return a promise for data read from the file at path path
.
If no reader and parser can be determined from config, the promise will be
rejected with error name ReadDataFileUnsupportedFext
.
readDataFile.cfg(opts)
Make a custom version of readDataFile
, with customization given as
the config object opts
, which supports the config options described below.
Config options
They are carried as same-named properties on the read function.
It's a good idea to .cfg()
your own custom read function instead of
globally reconfiguring the default read function.
readersByFext
A dictionary that maps filename extensions to either
- a (promising) reader function.
- a string for indirect lookup. Only one level of indirection is supported.
You can use this to alias extensions, e.g.
{ htm: 'html' }
. false
: Disable reading for this extension, even if the original config would know a reader for it.
Default readers: none
parsersByFext
Like readersByFext
but for looking up a (potentially promising) parser.
Default parsers:
ceson: cesonParser,
ini(data) { return iniLib.parse(data); },
json: jsonParser,
json5(data) { return json5Lib.parse(data); },
toml(data) { return tomlLib.parse(data); },
yaml(data) { return yamlLib.safeLoad(data); },
yml: 'yaml',
Compatibility
- If you need ancient versions of Node.js (older than 14.x),
stay with
read-data-file
v2.x.
Known issues
- v1.x was an alias for
require('fs-read-data').readFile
, but that package turned out to have some seriously questionable defaults, had no way to add parsers, and seemed abandoned by its maintainer. - Needs more/better tests and docs.
License
ISC