mirror of
https://github.com/renovatebot/renovate.git
synced 2026-11-02 10:33:39 +00:00
930cf6633c
fix: Additional vi.mock path corrections and prettier formatting
45 lines
1.2 KiB
TypeScript
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;
|
|
}
|
|
}
|