js-yaml Schema for handling Cloudformation's custom classes
npm install cloudformation-schema-js-yamlCloudformation supports custom yaml classes, e.g. !Ref, !Sub, !If, etc.
Yaml parsers will choke on these custom classes unless the classes are specified.
Use this library with js-yaml to parse cloudformation templates with these classes. The cloudformation classes are converted into objects that are similar to the non custom class syntax e.g. Ref, Fn::Sub, Fn::If
const yaml = require('js-yaml');
const schema = require('cloudformation-schema-js-yaml');
const fs = require('fs');let file = fs.readFileSync('somefile.yaml');
let data = yaml.load(file, { schema: schema});
`Example
sample.yaml
`
test:
- !Ref someLogicalId
- !Sub A string with a substitution ${someLogicalId}
`Program extract
`
let file = fs.readFileSync('sample.yaml');
let data = yaml.load(file, { schema: schema});
console.log(data)
console.log('%j', data)
`Output
`
{ test:
[ Obj { Ref: 'someLogicalId' },
Obj { 'Fn::Sub': 'A string with a substitution ${someLogicalId}' } ] }
{"test":[{"Ref":"someLogicalId"},{"Fn::Sub":"A string with a substitution ${someLogicalId}"}]}
`
Dependencies
NonePeer-dependencies
This this library is meant to be used with js-yaml it has a peer dependency of js-yamlTests
npm test`