yaml-js-include
v1.0.0
Published
Extension for yaml-js library to be able to include files/directories in yaml files
Downloads
263
Maintainers
Readme
yaml-js-include
This package provides support custom tags in a YAML document that facilitate inclusion of external .yaml files, or directories of .yaml files. This package is a rethink of the yaml-include package.
The main difference between this package and package mentioned above is a support for relative include inside of the included files
Installation
$ npm install yaml-js-include
or
$ yarn add yaml-js-include
Usage
Here is a small example of the script which allows to load a YAML file with the include tags:
import { YamlInclude } from 'yaml-js-include';
const yamlInclude = new YamlInclude();
const myObj = yamlInclude.load<MyType>(pathToFile);
An example YAML file can look like this:
name: Example
variables: !!inc/file variables.yaml
pages: !!inc/dir ['pages', { extensions: ['.page.yaml'] }]
steps:
- name: Open Browser
type: open-browser
values:
browser: chrome
headless: true
Full example could be found here
YAML API
This package adds the support for the following tags inside of YAML files:
!!inc/dir [path, options?]
Merges files in directory into the object
Arguments:
path
- required - Relative (or absolute) path to the directoryoptions
- optional - Optional options for the directory include tag. ExtendsIncludeDirOptions
The merge flow for the options is like this: Default options -> Options passed to theYamlInclude
constructor -> Options declared on the tag inside YAML file.
You can find options and defaults here
!!inc/seq [path, options?]
Merges files in directory into the array
Arguments:
path
- required - Relative (or absolute) path to the directoryoptions
- optional - Optional options for the directory include tag. ExtendsIncludeDirSeqOptions
The merge flow for the options is like this: Default options -> Options passed to theYamlInclude
constructor -> Options declared on the tag inside YAML file.
You can find options and defaults here
!!inc/file path
Parses path as a path to a single YAML document. The contents of that document will be a mapping under the key the tag is used on.
JS / TS Usage
This package is written using Typescript. Please see the documentation