dclint
Version:
A command-line tool for validating and enforcing best practices in Docker Compose files.
49 lines (48 loc) • 1.34 kB
TypeScript
import * as Rules from './index';
type RuleClass = (typeof Rules)[keyof typeof Rules];
type RuleInstance = InstanceType<RuleClass>;
type RuleName = RuleInstance['name'];
type RuleType = 'warning' | 'error';
type RuleSeverity = 'info' | 'minor' | 'major' | 'critical';
type RuleCategory = 'style' | 'security' | 'best-practice' | 'performance';
interface Rule {
name: RuleName;
type: RuleType;
meta: RuleMeta;
category: RuleCategory;
severity: RuleSeverity;
fixable: boolean;
options?: object;
getMessage(details?: object): string;
check(content: object, type?: RuleType): RuleMessage[];
fix?(content: string): string;
}
interface RuleMeta {
description: string;
url: string;
}
interface RuleMessage {
rule: RuleName;
type: RuleType;
severity: RuleSeverity;
category: RuleCategory;
message: string;
line: number;
column: number;
endLine?: number;
endColumn?: number;
meta?: RuleMeta;
fixable: boolean;
data: object;
}
interface RuleDefinition {
name: RuleName;
type: RuleType;
category: RuleCategory;
severity: RuleSeverity;
fixable: boolean;
meta: RuleMeta;
hasFixFunction: boolean;
hasOptions: boolean;
}
export { Rule, RuleDefinition, RuleName, RuleSeverity, RuleCategory, RuleType, RuleMeta, RuleMessage };