tslint-to-eslint-config
Version:
Converts your TSLint configuration to the closest reasonable ESLint equivalent.
74 lines (73 loc) • 2.15 kB
TypeScript
/**
* Configuration file paths to read from.
*/
export type ConfigurationLocations = {
/**
* Output ESLint configuration file path, such as `.eslintrc.js`.
*/
config: string;
editor?: string[] | string;
/**
* Original ESLint configuration file path, such as `.eslintrc.js`.
*/
eslint?: string;
/**
* Original packages configuration file path, such as `package.json`.
*/
package?: string;
/**
* Original TSLint configuration file path, such as `tslint.json`.
*/
tslint?: string;
/**
* Original TypeScript configuration file path, such as `tsconfig.json`.
*/
typescript?: string;
};
/**
* Settings to find and convert configurations to an ESLint configuration.
*/
export type LintConfigConversionSettings = ConfigurationLocations & {
/**
* Whether to add `eslint-config-prettier` to the plugins list.
*/
prettier?: boolean;
};
/**
* Base settings to run conversions with.
*/
export type TSLintToESLintSettings = LintConfigConversionSettings & {
/**
* File globs to convert `tslint:disable` comments within to `eslint-disable`.
*/
comments?: string[] | string | true;
/**
* Original Editor configuration file path, such as `.vscode/settings.json`.
*/
editor?: string;
};
export type TSLintToESLintResult = ResultWithStatus;
export declare enum ResultStatus {
Succeeded = 0,
Failed = 1,
ConfigurationError = 2
}
export type ResultWithStatus = ConfigurationErrorResult | FailedResult | SucceededResult;
export type ResultWithDataStatus<Data> = FailedResult | SucceededDataResult<Data>;
export type ConfigurationErrorResult = {
readonly complaints: string[];
readonly status: ResultStatus.ConfigurationError;
};
export type FailedResult = {
readonly errors: Error[];
readonly status: ResultStatus.Failed;
};
export type SucceededResult = {
readonly status: ResultStatus.Succeeded;
};
export type SucceededDataResult<Data> = Data extends void ? {
readonly status: ResultStatus.Succeeded;
} : {
readonly data: Data;
readonly status: ResultStatus.Succeeded;
};