New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

yaml-reader

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

yaml-reader

A lightweight wrapper for js-yaml to easily read yml files

latest
Source
npmnpm
Version
1.0.4
Version published
Maintainers
1
Created
Source

YAML Reader

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.

Notes

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.

Installation

npm install --save yaml-reader

Usage

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

Synchronous read

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');

Asynchronous read

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.

Promise based:
const yamlReader = require('yaml-reader');

yamlReader.readAsync('path/from/project/root/to/yml.yml')
.then((config) => {
    ...
})
.catch((err) => {
    ...
})
Callback based:
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) => {
    ...
})

API

yamlReader.read(file [, options])

yamlReader.readYaml(file [, options])

Read a yaml file synchronously .

  • file <string> : The path to the yaml file to read. Resolves from project root onwards. Read "Usage" section to see how it is resolved if unclear
  • options <Object | null> : Options parsed to the reader
    • options.encoding <string | null>: The encoding of the yaml file. Is 'utf-8' by default. You can use 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);

yamlReader.readAsync(file [, options, callback])

yamlReader.readYamlAsync(file [, options, callback])

Read a yaml file asynchronously. The yaml attributes will be returned with a Promise.

  • file <string> : The path to the yaml file to read. Resolves from project root onwards. Read "Usage" section to see how it is resolved if unclear
  • options <Object | null> : Options parsed to the reader
    • options.encoding <string | null>: The encoding of the yaml file. Is 'utf-8' by default. You can use yaml-reader.constants.ENCODING for supported encodings.
  • callback <function | null> : An optional callback. If this is null the reader assumes you use Promises instead. So take care to use the promise syntax if you do not provide a callback.

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) => {
    ...
}

Keywords

nodejs

FAQs

Package last updated on 13 Jun 2023

Did you know?

Socket

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.

Install

Related posts