Skip to content

Commit

Permalink
refactor: extract types to new files (#9951)
Browse files Browse the repository at this point in the history
  • Loading branch information
viceice committed May 11, 2021
1 parent 9b45811 commit 7daa93a
Show file tree
Hide file tree
Showing 58 changed files with 430 additions and 393 deletions.
6 changes: 1 addition & 5 deletions lib/config/cli.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Command } from 'commander';
import { version } from '../../package.json';
import { getOptions } from './definitions';
import type { GlobalConfig, RenovateOptions } from './types';
import type { GlobalConfig, RenovateCliConfig, RenovateOptions } from './types';

export function getCliName(option: Partial<RenovateOptions>): string {
if (option.cli === false) {
Expand All @@ -11,10 +11,6 @@ export function getCliName(option: Partial<RenovateOptions>): string {
return `--${nameWithHyphens.toLowerCase()}`;
}

export interface RenovateCliConfig extends Record<string, any> {
repositories?: string[];
}

export function getConfig(input: string[]): GlobalConfig {
// massage migrated configuration keys
const argv = input
Expand Down
36 changes: 18 additions & 18 deletions lib/config/migration.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,22 @@ import { getName } from '../../test/util';
import { PLATFORM_TYPE_GITHUB } from '../constants/platforms';
import { getConfig } from './defaults';
import * as configMigration from './migration';
import { MigratedConfig } from './migration';
import type {
MigratedConfig,
RenovateConfig,
RenovateSharedConfig,
RenovateConfig as _RenovateConfig,
} from './types';

const defaultConfig = getConfig();

interface RenovateConfig extends _RenovateConfig {
interface TestRenovateConfig extends RenovateConfig {
node?: RenovateSharedConfig & { supportPolicy?: unknown };
}

describe(getName(), () => {
describe('migrateConfig(config, parentConfig)', () => {
it('migrates config', () => {
const config: RenovateConfig = {
const config: TestRenovateConfig = {
endpoints: [{}] as never,
enabled: true,
platform: PLATFORM_TYPE_GITHUB,
Expand Down Expand Up @@ -275,7 +275,7 @@ describe(getName(), () => {
expect(migratedConfig).toMatchSnapshot();
});
it('overrides existing automerge setting', () => {
const config: RenovateConfig = {
const config: TestRenovateConfig = {
automerge: 'minor' as never,
packages: [
{
Expand All @@ -294,7 +294,7 @@ describe(getName(), () => {
expect(migratedConfig.packageRules[0].minor.automerge).toBe(false);
});
it('does not migrate config', () => {
const config: RenovateConfig = {
const config: TestRenovateConfig = {
enabled: true,
separateMinorPatch: true,
};
Expand All @@ -305,7 +305,7 @@ describe(getName(), () => {
expect(migratedConfig).toMatchObject(config);
});
it('migrates subconfig', () => {
const config: RenovateConfig = {
const config: TestRenovateConfig = {
lockFileMaintenance: {
depTypes: [
'dependencies',
Expand Down Expand Up @@ -346,7 +346,7 @@ describe(getName(), () => {
expect(migratedConfig.packageRules).toHaveLength(1);
});
it('migrates node to travis', () => {
const config: RenovateConfig = {
const config: TestRenovateConfig = {
node: {
enabled: true,
supportPolicy: ['lts'],
Expand All @@ -366,11 +366,11 @@ describe(getName(), () => {
true
);
expect(
(migratedConfig.node as RenovateConfig).supportPolicy
(migratedConfig.node as TestRenovateConfig).supportPolicy
).toBeDefined();
});
it('migrates packageFiles', () => {
const config: RenovateConfig = {
const config: TestRenovateConfig = {
packageFiles: [
'package.json',
{ packageFile: 'backend/package.json', pinVersions: false },
Expand All @@ -395,7 +395,7 @@ describe(getName(), () => {
expect(migratedConfig.packageRules[1].rangeStrategy).toBe('pin');
});
it('migrates more packageFiles', () => {
const config: RenovateConfig = {
const config: TestRenovateConfig = {
packageFiles: [
{
packageFile: 'package.json',
Expand Down Expand Up @@ -424,7 +424,7 @@ describe(getName(), () => {
});

it('removes invalid configs', () => {
const config: RenovateConfig = {
const config: TestRenovateConfig = {
pathRules: {},
packageFiles: [{ packageFile: 'test' }],
gomodTidy: false,
Expand All @@ -448,7 +448,7 @@ describe(getName(), () => {
expect(isMigrated).toBe(true);
});
it('it migrates semanticCommits', () => {
let config: RenovateConfig;
let config: TestRenovateConfig;
let res: MigratedConfig;

config = { semanticCommits: true as never };
Expand Down Expand Up @@ -478,7 +478,7 @@ describe(getName(), () => {
});

it('it migrates preset strings to array', () => {
let config: RenovateConfig;
let config: TestRenovateConfig;
let res: MigratedConfig;

config = { extends: ':js-app' } as never;
Expand All @@ -500,7 +500,7 @@ describe(getName(), () => {
});

it('it migrates unpublishSafe', () => {
let config: RenovateConfig;
let config: TestRenovateConfig;
let res: MigratedConfig;

config = { unpublishSafe: true };
Expand Down Expand Up @@ -582,7 +582,7 @@ describe(getName(), () => {
});
});
it('migrates combinations of packageRules', () => {
let config: RenovateConfig;
let config: TestRenovateConfig;
let res: MigratedConfig;

config = {
Expand All @@ -602,7 +602,7 @@ describe(getName(), () => {
expect(res.migratedConfig.packageRules).toHaveLength(2);
});
it('it migrates packageRules', () => {
const config: RenovateConfig = {
const config: TestRenovateConfig = {
packageRules: [
{
paths: ['package.json'],
Expand All @@ -629,7 +629,7 @@ describe(getName(), () => {
});
});
it('it migrates nested packageRules', () => {
const config: RenovateConfig = {
const config: TestRenovateConfig = {
packageRules: [
{
matchDepTypes: ['devDependencies'],
Expand Down
22 changes: 6 additions & 16 deletions lib/config/migration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,15 @@ import later from '@breejs/later';
import is from '@sindresorhus/is';
import { dequal } from 'dequal';
import { logger } from '../logger';
import type { HostRule } from '../types';
import { clone } from '../util/clone';
import { getOptions } from './definitions';
import { removedPresets } from './presets/common';
import type { PackageRule, RenovateConfig, RenovateOptions } from './types';
import type {
MigratedConfig,
MigratedRenovateConfig,
RenovateConfig,
RenovateOptions,
} from './types';
import { mergeChildConfig } from './utils';

const options = getOptions();
Expand All @@ -29,20 +33,6 @@ const removedOptions = [
'lazyGrouping',
];

export interface MigratedConfig {
isMigrated: boolean;
migratedConfig: RenovateConfig;
}

interface MigratedRenovateConfig extends RenovateConfig {
endpoints?: HostRule[];
pathRules: PackageRule[];
packages: PackageRule[];

node?: RenovateConfig;
travis?: RenovateConfig;
}

// Returns a migrated config
export function migrateConfig(
config: RenovateConfig,
Expand Down
10 changes: 1 addition & 9 deletions lib/config/presets/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import * as gitlab from './gitlab';
import * as internal from './internal';
import * as local from './local';
import * as npm from './npm';
import type { PresetApi } from './types';
import type { ParsedPreset, PresetApi } from './types';
import {
PRESET_DEP_NOT_FOUND,
PRESET_INVALID,
Expand Down Expand Up @@ -345,11 +345,3 @@ export async function resolveConfigPresets(
logger.trace({ config }, 'Resolved config');
return config;
}

export interface ParsedPreset {
presetSource: string;
packageName: string;
presetPath?: string;
presetName: string;
params?: string[];
}
8 changes: 8 additions & 0 deletions lib/config/presets/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,11 @@ export type PresetConfig = {
export interface PresetApi {
getPreset(config: PresetConfig): Promise<Preset> | Preset;
}

export interface ParsedPreset {
presetSource: string;
packageName: string;
presetPath?: string;
presetName: string;
params?: string[];
}
23 changes: 23 additions & 0 deletions lib/config/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -357,3 +357,26 @@ export interface ManagerConfig extends RenovateConfig {
language: string;
manager: string;
}

export interface RenovateCliConfig extends Record<string, any> {
repositories?: string[];
}

export interface MigratedConfig {
isMigrated: boolean;
migratedConfig: RenovateConfig;
}

export interface MigratedRenovateConfig extends RenovateConfig {
endpoints?: HostRule[];
pathRules: PackageRule[];
packages: PackageRule[];

node?: RenovateConfig;
travis?: RenovateConfig;
}

export interface ValidationResult {
errors: ValidationMessage[];
warnings: ValidationMessage[];
}
8 changes: 2 additions & 6 deletions lib/config/validation-helpers/managers.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
import { getManagerList } from '../../manager';
import type { PackageRule, ValidationMessage } from '../types';

export interface CheckManagerArgs {
resolvedRule: PackageRule;
currentPath: string;
}
import type { ValidationMessage } from '../types';
import type { CheckManagerArgs } from './types';

/**
* Only if type condition or context condition violated then errors array will be mutated to store metadata
Expand Down
6 changes: 6 additions & 0 deletions lib/config/validation-helpers/types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import type { PackageRule } from '../types';

export interface CheckManagerArgs {
resolvedRule: PackageRule;
currentPath: string;
}
6 changes: 1 addition & 5 deletions lib/config/validation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import type {
RenovateConfig,
RenovateOptions,
ValidationMessage,
ValidationResult,
} from './types';
import * as managerValidator from './validation-helpers/managers';

Expand All @@ -18,11 +19,6 @@ const options = getOptions();
let optionTypes: Record<string, RenovateOptions['type']>;
let optionParents: Record<string, RenovateOptions['parent']>;

export interface ValidationResult {
errors: ValidationMessage[];
warnings: ValidationMessage[];
}

const managerList = getManagerList();

function isManagerPath(parentPath: string): boolean {
Expand Down
16 changes: 1 addition & 15 deletions lib/datasource/cdnjs/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { ExternalHostError } from '../../types/errors/external-host-error';
import { Http } from '../../util/http';
import type { GetReleasesConfig, ReleaseResult } from '../types';
import type { CdnjsResponse } from './types';

export const id = 'cdnjs';
export const customRegistrySupport = false;
Expand All @@ -9,21 +10,6 @@ export const caching = true;

const http = new Http(id);

interface CdnjsAsset {
version: string;
files: string[];
sri?: Record<string, string>;
}

interface CdnjsResponse {
homepage?: string;
repository?: {
type: 'git' | unknown;
url?: string;
};
assets?: CdnjsAsset[];
}

export async function getReleases({
lookupName,
registryUrl,
Expand Down
14 changes: 14 additions & 0 deletions lib/datasource/cdnjs/types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
interface CdnjsAsset {
version: string;
files: string[];
sri?: Record<string, string>;
}

export interface CdnjsResponse {
homepage?: string;
repository?: {
type: 'git' | unknown;
url?: string;
};
assets?: CdnjsAsset[];
}
9 changes: 2 additions & 7 deletions lib/datasource/crate/index.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,8 @@ import { getName, loadFixture } from '../../../test/util';
import { setAdminConfig } from '../../config/admin';
import * as memCache from '../../util/cache/memory';
import { setFsConfig } from '../../util/fs';
import {
RegistryFlavor,
RegistryInfo,
id as datasource,
fetchCrateRecordsPayload,
getIndexSuffix,
} from '.';
import { RegistryFlavor, RegistryInfo } from './types';
import { id as datasource, fetchCrateRecordsPayload, getIndexSuffix } from '.';

jest.mock('simple-git');
const simpleGit: any = _simpleGit;
Expand Down

0 comments on commit 7daa93a

Please sign in to comment.