//yaml-boostbyaldarund

yaml-boost

Yaml Parser with various additions.

0
0
0
JavaScript

Build Status
Test Coverage
Greenkeeper Badge
Dependencies
NPM
Downloads
Semantic-Release
Gardener
Gitter

Yaml-Boost

Basic Yaml Loading with additional functionality, i.e. resolve file depedencies, resolve variables, deep merge hierachies.

Useful for loading improved serverless configuration. For yaml loading this package uses js-yaml.

Getting Started

$ npm install --save yaml-boost

Usage

const yaml = require("yaml-boost");

yaml.load("config.yaml");

Variable and File Resolution

Works identical to how this is defined for serverless here.

Extensions

Bake variables when loading files
${file(./path/to/file.yml), key1=value1&key2=value2}
Reference Js files

Reference js instead of yaml files.

${file(./path/to/file.js)}

The reference file needs to export simple object containing configuration

module.exports = {};

Deep Merge

Analogue to the << yaml syntax we can use <<< to deep merge into the current nesting level.
This is helpful when merging files into already existing hierarchies.

Example:

data:
  - list entry one

<<<:
  - data:
      - list entry two
  - other: things

results in

data:
  - list entry one
  - list entry two
other: things

Serverless Example

Define serverless.js as

const path = require("path");
const optimist = require('optimist');
const yaml = require("yaml-boost");

module.exports = yaml.load(path.join(__dirname, "serverless.core.yml"), optimist.argv);

Then instead of defining serverless.yml, define your config in serverless.core.yml.

[beta]v0.14.0