Skip to content

Commit

Permalink
migrate more depTypes
Browse files Browse the repository at this point in the history
  • Loading branch information
RahulGautamSingh committed Jul 5, 2022
1 parent 87d711d commit 3f97d9e
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 30 deletions.
22 changes: 11 additions & 11 deletions lib/config/__snapshots__/migration.spec.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -215,36 +215,36 @@ Object {
"examples/**",
],
},
Object {
"matchDepTypes": Array [
"peerDependencies",
],
"rangeStrategy": "widen",
},
Object {
"major": Object {
"automerge": false,
},
"matchDepTypes": Array [
"devDependencies",
"optionalDependencies",
],
"minor": Object {
"automerge": true,
},
"schedule": null,
"respectLatest": false,
"schedule": "before 5am on Monday",
},
Object {
"matchDepTypes": Array [
"peerDependencies",
],
"rangeStrategy": "widen",
},
Object {
"major": Object {
"automerge": false,
},
"matchDepTypes": Array [
"optionalDependencies",
"devDependencies",
],
"minor": Object {
"automerge": true,
},
"respectLatest": false,
"schedule": "before 5am on Monday",
"schedule": null,
},
],
"patch": Object {
Expand Down
26 changes: 7 additions & 19 deletions lib/config/migration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,7 @@ export function migrateConfig(config: RenovateConfig): MigratedConfig {
}
const newConfig = MigrationsService.run(config);
const migratedConfig = clone(newConfig) as MigratedRenovateConfig;
const depTypes = [
'dependencies',
'devDependencies',
'engines',
'optionalDependencies',
'peerDependencies',
];

for (const [key, val] of Object.entries(newConfig)) {
if (key.startsWith('masterIssue')) {
const newKey = key.replace('masterIssue', 'dependencyDashboard');
Expand Down Expand Up @@ -79,17 +73,6 @@ export function migrateConfig(config: RenovateConfig): MigratedConfig {
}
migratedConfig.includePaths = fileList;
delete migratedConfig.packageFiles;
} else if (depTypes.includes(key)) {
migratedConfig.packageRules = is.array(migratedConfig.packageRules)
? migratedConfig.packageRules
: [];
const depTypePackageRule = migrateConfig(
val as RenovateConfig
).migratedConfig;
depTypePackageRule.depTypeList = [key];
delete depTypePackageRule.packageRules;
migratedConfig.packageRules.push(depTypePackageRule);
delete migratedConfig[key];
} else if (is.string(val) && val.includes('{{baseDir}}')) {
migratedConfig[key] = val.replace(
regEx(/{{baseDir}}/g),
Expand Down Expand Up @@ -211,7 +194,12 @@ export function migrateConfig(config: RenovateConfig): MigratedConfig {
if (is.nonEmptyArray(migratedConfig.packageRules)) {
const existingRules = migratedConfig.packageRules;
migratedConfig.packageRules = [];
for (const packageRule of existingRules) {
for (let packageRule of existingRules) {
if (packageRule.matchDepTypes) {
packageRule = migrateConfig(packageRule as RenovateConfig)
.migratedConfig as PackageRule;
delete packageRule.packageRules;
}
if (is.array(packageRule.packageRules)) {
logger.debug('Flattening nested packageRules');
// merge each subrule and add to the parent list
Expand Down
20 changes: 20 additions & 0 deletions lib/config/migrations/custom/dep-types-migration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@ import is from '@sindresorhus/is';
import type { PackageRule } from '../../types';
import { AbstractMigration } from '../base/abstract-migration';

const depTypes = [
'dependencies',
'devDependencies',
'engines',
'optionalDependencies',
'peerDependencies',
];

export class DepTypesMigration extends AbstractMigration {
override readonly deprecated = true;
override readonly propertyName = 'depTypes';
Expand All @@ -20,6 +28,18 @@ export class DepTypesMigration extends AbstractMigration {
}
}
}

for (const depType of depTypes) {
const val = this.get(depType);
if (is.nonEmptyObject(val)) {
delete (depType as any).depType;
(val as any).depTypeList = [depType];

packageRules.push({ ...(val as PackageRule) });
this.delete(depType);
}
}

if (packageRules.length) {
this.setSafely('packageRules', packageRules);
}
Expand Down

0 comments on commit 3f97d9e

Please sign in to comment.