read-data-file

2.0.11 • Public • Published

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

Package Sidebar

Install

npm i read-data-file

Weekly Downloads

3

Version

2.0.11

License

ISC

Unpacked Size

11.5 kB

Total Files

17

Last publish

Collaborators

  • mk-pmb