UNPKG

serverless

Version:

Serverless Framework - Build web, mobile and IoT applications with serverless architectures using AWS Lambda, Azure Functions, Google CloudFunctions & more

41 lines (36 loc) 1.06 kB
'use strict'; const jc = require('json-cycle'); const YAML = require('js-yaml'); const _ = require('lodash'); const cloudFormationSchema = require('../../plugins/aws/lib/cloudformationSchema'); const loadYaml = (contents, options) => { let data; let error; try { data = YAML.load(contents.toString(), options || {}); } catch (exception) { error = exception; } return { data, error }; }; function parse(filePath, contents) { // Auto-parse JSON if (filePath.endsWith('.json')) { return jc.parse(contents); } else if (filePath.endsWith('.yml') || filePath.endsWith('.yaml')) { const options = { filename: filePath, }; let result = loadYaml(contents.toString(), options); if (result.error && result.error.name === 'YAMLException') { _.merge(options, { schema: cloudFormationSchema.schema }); result = loadYaml(contents.toString(), options); } if (result.error) { throw result.error; } return result.data; } return contents.toString().trim(); } module.exports = parse;