aureooms/rejuvenate

View on GitHub
src/transforms/husky:ensure-v9-or-later.js

Summary

Maintainability
A
3 hrs
Test Coverage
import rangeSubset from 'semver/ranges/subset.js';

import update from '../lib/update.js';

export const description = 'Upgrade Husky to v9.';

export const commit = {
    type: 'deps',
    subject: description,
};

export async function postcondition({readPkg, assert}) {
    const {devDependencies} = await readPkg();
    assert(devDependencies.husky !== undefined);
    assert(rangeSubset(devDependencies.husky, '>=9.0.0'));
}

export async function precondition({readPkg, assert}) {
    const {devDependencies} = await readPkg();
    assert(devDependencies.husky !== undefined);
    assert(rangeSubset(devDependencies.husky, '>=9.0.0'));
}

export async function apply({readPkg, writePkg, fixConfig, upgrade, install}) {
    await update({
        read: readPkg,
        write: writePkg,
        edit(pkgjson) {
            pkgjson.devDependencies.husky = '9.0.0';
            return pkgjson;
        },
    });
    await fixConfig();
    await upgrade('husky', {target: 'minor'});
    await install();
}

export const dependencies = ['config:lint-setup', 'husky:configure'];