49 lines
1.1 KiB
Plaintext
49 lines
1.1 KiB
Plaintext
'use strict';
|
|
|
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
|
var yaml = require('js-yaml');
|
|
|
|
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
|
|
var yaml__default = /*#__PURE__*/_interopDefault(yaml);
|
|
|
|
const mdRegex = /\s*---([^]*?)\n\s*---(\s*(?:\n|$)[^]*)/;
|
|
function parseChangesetFile(contents) {
|
|
const execResult = mdRegex.exec(contents);
|
|
|
|
if (!execResult) {
|
|
throw new Error(`could not parse changeset - invalid frontmatter: ${contents}`);
|
|
}
|
|
|
|
let [, roughReleases, roughSummary] = execResult;
|
|
let summary = roughSummary.trim();
|
|
let releases;
|
|
|
|
try {
|
|
const yamlStuff = yaml__default["default"].safeLoad(roughReleases);
|
|
|
|
if (yamlStuff) {
|
|
releases = Object.entries(yamlStuff).map(([name, type]) => ({
|
|
name,
|
|
type
|
|
}));
|
|
} else {
|
|
releases = [];
|
|
}
|
|
} catch (e) {
|
|
throw new Error(`could not parse changeset - invalid frontmatter: ${contents}`);
|
|
}
|
|
|
|
if (!releases) {
|
|
throw new Error(`could not parse changeset - unknown error: ${contents}`);
|
|
}
|
|
|
|
return {
|
|
releases,
|
|
summary
|
|
};
|
|
}
|
|
|
|
exports["default"] = parseChangesetFile;
|