Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | /*!
* Copyright 2019 Palantir Technologies, Inc.
*
* Licensed under the MIT license. See LICENSE file in the project root for details.
*
*/
import { Context } from "./Context.js";
import { WorkspaceContext } from "./WorkspaceContext.js";
// TODO: extract all these types to their own files
export interface RuleEntry<T = unknown> {
readonly options?: T;
readonly excludePackages?: ReadonlyArray<string>;
readonly includePackages?: ReadonlyArray<string>;
readonly includeWorkspaceRoot?: boolean;
readonly id?: string;
}
export interface RuleModule<X = unknown> {
readonly check: (context: Context) => Promise<unknown> | unknown;
readonly name: string;
readonly id: string;
readonly validateOptions: (options: X) => void;
readonly printStats?: () => void;
readonly ruleEntry: RuleEntry<X>;
}
export interface Config {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
readonly rules: RuleModule<any>[];
}
export type ConfigFn = (context: WorkspaceContext) => Promise<Config> | Config;
export interface Options {
readonly verbose?: boolean;
readonly fix?: boolean;
readonly paths?: ReadonlyArray<string>;
readonly silent?: boolean;
readonly stats?: boolean;
}
export type ResolvedRule<X = unknown> = RuleModule<X>;
export interface ResolvedConfig extends Options {
readonly rules: ReadonlyArray<ResolvedRule>;
}
|