read-data-file

Read data/config files in various formats (parsers list is configurable).

Usage no npm install needed!

<script type="module">
  import readDataFile from 'https://cdn.skypack.dev/read-data-file';
</script>

README



read-data-file

Read data/config files in various formats (parsers list is configurable).

API

This module exports one function:

readDataFile(path)

Return a promise for data read from the file at path path.

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',

Usage

see test/usage.js

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