
Security News
Axios Supply Chain Attack Reaches OpenAI macOS Signing Pipeline, Forces Certificate Rotation
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.
yaml-reader
Advanced tools
This is a lightweight reader of yaml files. It's only purpose is to read yaml files to use its attributes in a node app. Therefore it keeps simple and its dependencies low.
The asynchronous read provides promise based and callback based support, thus you can choose the style you like better.
yaml-reader is written in ECMA 6 (Node version 8.11.1). Be sure your node version can handle this or use babel for older node versions. No guarantee that everything works fine when using babel.
npm install --save yaml-reader
yaml-reader resolves the path from your project root onwards, i.e. lets assume the project structure given below.
Then you will call yamlReader.read('configs/app-config.yml') wherever you want to read the yaml file. Thus the call
will look the same in both bin/app.js and some/deep/project/path/someService.js.
+-- package.json
+-- README.md
+-- bin
+---- app.js
+-- some
+---- deep
+------ project
+-------- path
+---------- someService.js
+---- ...
+-- configs
+---- app-config.yml
Read a yaml file synchronously. This is like requiring a json config file via require():
const config = require('yaml-reader').read('path/from/project/root/to/yml.yml');
You can also read a yaml asynchronously. The result will be returned as a Promise or, if
a callback function is provided, with a callback.
const yamlReader = require('yaml-reader');
yamlReader.readAsync('path/from/project/root/to/yml.yml')
.then((config) => {
...
})
.catch((err) => {
...
})
const yamlReader = require('yaml-reader');
// without options, thus null as 2nd arg
yamlReader.readAsync('path/from/project/root/to/yml.yml', null, (err, config) => {
if (err) {
...
}
else {
...
}
})
In all cases you can pass in the encoding of the file with an option object. If this is not passed, utf8 will be used by default.
const options = {
encoding: yamlReader.constants.ENCODING.UTF_16_LE
};
const config = require('yaml-reader').read('path/from/project/root/to/yml.yml', options);
// or async
yamlReader.readAsync('path/from/project/root/yml.yml', options, (err, config) => {
...
}
yamlReader.readAsync('path/from/project/root/yml.yml', options)
.then((config) => {
...
})
Read a yaml file synchronously .
yaml-reader.constants.ENCODING for supported encodings.const config = require('yaml-reader').read('path/from/project/root/to/yml.yml');
Or with encoding specified:
const options = {
encoding: yamlReader.constants.ENCODING.UTF_8
};
const config = require('yaml-reader').read('path/from/project/root/to/yml.yml', options);
Read a yaml file asynchronously. The yaml attributes will be returned with a Promise.
yaml-reader.constants.ENCODING for supported encodings.The config is either returned as a Promise<Object>.resolve if the file was readable or rejected otherwise, or with the callback if invoked with a callback.
const yamlReader = require('yaml-reader');
const options = { ... }
//
// awaiting promises
//
yamlReader.readAsync('path/from/project/root/to/yml.yml', options)
.then((config) => {
// access properties of your yaml
// console.log(config.myProperty)
})
.catch((err) => {
// handle errors (like FileNotFoundError)
})
//
// or with callback
//
yamlReader.readAsync('path/from/project/root/to/yml.yml', options, (err, config) => {
...
}
FAQs
A lightweight wrapper for js-yaml to easily read yml files
We found that yaml-reader demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.

Security News
Open source is under attack because of how much value it creates. It has been the foundation of every major software innovation for the last three decades. This is not the time to walk away from it.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.