read-data-file v2.0.11
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-filev2.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