feat(lint-staged): varlidate packages order in CHANGELOG.unreleased.md

This commit is contained in:
Julien Fontanet
2024-03-27 13:36:56 +01:00
parent 44f6d2f0e3
commit 88dd987e09
2 changed files with 19 additions and 1 deletions

View File

@@ -29,6 +29,11 @@ let allPackages
async function main(args, scriptName) {
const toRelease = { __proto__: null }
const checkOrder = args[0] === '--check-order'
if (checkOrder) {
args.shift()
}
const testMode = args[0] === '--test'
if (testMode) {
debug('reading packages from CLI')
@@ -61,6 +66,19 @@ async function main(args, scriptName) {
await readPackagesFromChangelog(toRelease)
}
if (checkOrder) {
let prev
for (const name of Object.keys(toRelease)) {
if (prev === undefined || name > prev) {
prev = name
} else {
throw new Error(
`invalid packages to release order in CHANGELOG.unreleased.md: ${name} should be before ${prev}`
)
}
}
}
allPackages = keyBy(await getPackages(true), 'name')
const releaseOrder = computeDepOrder(allPackages)