UNPKG

820 BJavaScriptView Raw
1'use strict';
2const YAML = require('js-yaml');
3const _ = require('lodash');
4const { schema } = require('./schema');
5const loadYaml = (contents, options) => {
6 let data, error;
7 try {
8 data = YAML.load(contents.toString(), options || {});
9 }
10 catch (ex) {
11 error = ex;
12 }
13 return {
14 data,
15 error
16 };
17};
18const parseYamlWithCustomTag = (filePath, contents) => {
19 const options = {
20 filename: filePath
21 };
22 let result = loadYaml(contents, options);
23 if (result.error && result.error.name === 'YAMLException') {
24 _.merge(options, { schema });
25 result = loadYaml(contents, options);
26 }
27 if (result.error) {
28 throw result.error;
29 }
30 else {
31 return result.data;
32 }
33};
34module.exports = {
35 parseYamlWithCustomTag
36};