Files
renovate/lib/config/migrations/custom/extends-migration.ts
Sergei Zharinov 930cf6633c refactor: Rewrite imports with .ts extensions (#40700)
fix: Additional vi.mock path corrections and prettier formatting
2026-01-26 22:48:17 +00:00

45 lines
1.2 KiB
TypeScript

import { isNonEmptyString, isString } from '@sindresorhus/is';
import { GlobalConfig } from '../../global.ts';
import { removedPresets } from '../../presets/common.ts';
import { AbstractMigration } from '../base/abstract-migration.ts';
export class ExtendsMigration extends AbstractMigration {
override readonly propertyName = 'extends';
override run(): void {
const value = this.get('extends');
let newPresets: string[] = [];
if (isString(value)) {
newPresets = this.normalizePresets([value]);
}
if (Array.isArray(value)) {
newPresets = this.normalizePresets(value);
}
this.rewrite(newPresets);
}
private normalizePresets(presets: string[]): string[] {
return presets
.filter(isString)
.map((preset) => this.normalizePreset(preset))
.filter(isNonEmptyString);
}
private normalizePreset(preset: string): string | null {
const migratePresets = GlobalConfig.get('migratePresets');
if (removedPresets[preset] !== undefined) {
return removedPresets[preset];
}
if (migratePresets?.[preset] !== undefined) {
return migratePresets?.[preset];
}
return preset;
}
}