38 lines
967 B
JavaScript
38 lines
967 B
JavaScript
import assert from 'node:assert';
|
|
import fs from 'node:fs';
|
|
import path from 'node:path';
|
|
|
|
|
|
function getChanges(version) {
|
|
assert.strictEqual(typeof version, 'string');
|
|
|
|
const changelog = [];
|
|
const lines = fs.readFileSync(path.join(import.meta.dirname, '../CHANGES'), 'utf8').split('\n');
|
|
|
|
version = version.replace(/[+-].*/, ''); // strip prerelease
|
|
|
|
let i;
|
|
for (i = 0; i < lines.length; i++) {
|
|
if (lines[i] === '[' + version + ']') break;
|
|
}
|
|
|
|
for (i = i + 1; i < lines.length; i++) {
|
|
if (lines[i] === '') continue;
|
|
if (lines[i][0] === '[') break;
|
|
|
|
lines[i] = lines[i].trim();
|
|
|
|
// detect and remove list style - and * in changelog lines
|
|
if (lines[i].indexOf('-') === 0) lines[i] = lines[i].slice(1).trim();
|
|
if (lines[i].indexOf('*') === 0) lines[i] = lines[i].slice(1).trim();
|
|
|
|
changelog.push(lines[i]);
|
|
}
|
|
|
|
return changelog;
|
|
}
|
|
|
|
export default {
|
|
getChanges
|
|
};
|