config

package
v0.1.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 22, 2025 License: MIT Imports: 63 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var GlobalRuleRegistry = NewRuleRegistry()

Global rule registry instance

Functions

func GetAllRulesForPlugin

func GetAllRulesForPlugin(plugin string) []rule.Rule

func InitDefaultConfig added in v0.1.10

func InitDefaultConfig(directory string) error

initialize a default config in the directory

func RegisterAllRules added in v0.1.8

func RegisterAllRules()

Types

type ConfigEntry

type ConfigEntry struct {
	Language        string           `json:"language"`
	Files           []string         `json:"files"`
	Ignores         []string         `json:"ignores,omitempty"` // List of file patterns to ignore
	LanguageOptions *LanguageOptions `json:"languageOptions,omitempty"`
	Rules           Rules            `json:"rules"`
	Plugins         []string         `json:"plugins,omitempty"` // List of plugin names
}

ConfigEntry represents a single configuration entry in the rslint.json array

type ConfigLoader

type ConfigLoader struct {
	// contains filtered or unexported fields
}

ConfigLoader handles loading and parsing of rslint and tsconfig files

func NewConfigLoader

func NewConfigLoader(fs vfs.FS, currentDirectory string) *ConfigLoader

NewConfigLoader creates a new configuration loader

func (*ConfigLoader) LoadConfiguration

func (loader *ConfigLoader) LoadConfiguration(configPath string) (RslintConfig, []string, string, error)

LoadConfiguration is a convenience method that loads both rslint and tsconfig configurations

func (*ConfigLoader) LoadDefaultRslintConfig

func (loader *ConfigLoader) LoadDefaultRslintConfig() (RslintConfig, string, error)

LoadDefaultRslintConfig attempts to load default configuration files

func (*ConfigLoader) LoadRslintConfig

func (loader *ConfigLoader) LoadRslintConfig(configPath string) (RslintConfig, string, error)

LoadRslintConfig loads and parses a rslint configuration file

func (*ConfigLoader) LoadTsConfigsFromRslintConfig

func (loader *ConfigLoader) LoadTsConfigsFromRslintConfig(rslintConfig RslintConfig, configDirectory string) ([]string, error)

LoadTsConfigsFromRslintConfig extracts and validates TypeScript configuration paths from rslint config

type LanguageOptions

type LanguageOptions struct {
	ParserOptions *ParserOptions `json:"parserOptions,omitempty"`
}

LanguageOptions contains language-specific configuration options

type ParserOptions

type ParserOptions struct {
	ProjectService bool     `json:"projectService"`
	Project        []string `json:"project,omitempty"`
}

ParserOptions contains parser-specific configuration

type RslintConfig

type RslintConfig []ConfigEntry

RslintConfig represents the top-level configuration array

func LoadConfigurationWithFallback

func LoadConfigurationWithFallback(configPath string, currentDirectory string, fs vfs.FS) (RslintConfig, []string, string)

LoadConfigurationWithFallback loads configuration and handles errors by printing to stderr and exiting This is for backward compatibility with the existing cmd behavior

func (RslintConfig) GetRulesForFile

func (config RslintConfig) GetRulesForFile(filePath string) map[string]*RuleConfig

GetRulesForFile returns enabled rules for a given file based on the configuration

type RuleConfig

type RuleConfig struct {
	Level   string                 `json:"level,omitempty"`   // "error", "warn", "off"
	Options map[string]interface{} `json:"options,omitempty"` // Rule-specific options
}

RuleConfig represents individual rule configuration

func (*RuleConfig) GetLevel

func (rc *RuleConfig) GetLevel() string

GetLevel returns the rule level, defaulting to "error" if not specified

func (*RuleConfig) GetOptions

func (rc *RuleConfig) GetOptions() map[string]interface{}

GetOptions returns the rule options, ensuring we return a usable value

func (*RuleConfig) GetSeverity

func (rc *RuleConfig) GetSeverity() rule.DiagnosticSeverity

GetSeverity returns the diagnostic severity for this rule configuration

func (*RuleConfig) IsEnabled

func (rc *RuleConfig) IsEnabled() bool

IsEnabled returns true if the rule is enabled (not "off")

func (*RuleConfig) SetOptions

func (rc *RuleConfig) SetOptions(options map[string]interface{})

SetOptions sets the rule options

type RuleRegistry

type RuleRegistry struct {
	// contains filtered or unexported fields
}

RuleRegistry manages all available rules

func NewRuleRegistry

func NewRuleRegistry() *RuleRegistry

NewRuleRegistry creates a new rule registry

func (*RuleRegistry) GetAllRules

func (r *RuleRegistry) GetAllRules() map[string]rule.Rule

GetAllRules returns all registered rules

func (*RuleRegistry) GetEnabledRules

func (r *RuleRegistry) GetEnabledRules(config RslintConfig, filePath string) []linter.ConfiguredRule

GetEnabledRules returns rules that are enabled in the configuration for a given file

func (*RuleRegistry) GetRule

func (r *RuleRegistry) GetRule(name string) (rule.Rule, bool)

GetRule returns a rule by name

func (*RuleRegistry) Register

func (r *RuleRegistry) Register(ruleName string, ruleImpl rule.Rule)

Register adds a rule to the registry

type Rules

type Rules map[string]interface{}

Rules represents the rules configuration This can be extended to include specific rule configurations

type TypedRules

type TypedRules struct {
	// Example rule configurations - extend as needed
	AdjacentOverloadSignatures         *RuleConfig `json:"@typescript-eslint/adjacent-overload-signatures,omitempty"`
	ArrayType                          *RuleConfig `json:"@typescript-eslint/array-type,omitempty"`
	ClassLiteralPropertyStyle          *RuleConfig `json:"@typescript-eslint/class-literal-property-style,omitempty"`
	NoArrayDelete                      *RuleConfig `json:"@typescript-eslint/no-array-delete,omitempty"`
	NoBaseToString                     *RuleConfig `json:"@typescript-eslint/no-base-to-string,omitempty"`
	NoForInArray                       *RuleConfig `json:"@typescript-eslint/no-for-in-array,omitempty"`
	NoImpliedEval                      *RuleConfig `json:"@typescript-eslint/no-implied-eval,omitempty"`
	OnlyThrowError                     *RuleConfig `json:"@typescript-eslint/only-throw-error,omitempty"`
	AwaitThenable                      *RuleConfig `json:"@typescript-eslint/await-thenable,omitempty"`
	NoConfusingVoidExpression          *RuleConfig `json:"@typescript-eslint/no-confusing-void-expression,omitempty"`
	NoDuplicateTypeConstituents        *RuleConfig `json:"@typescript-eslint/no-duplicate-type-constituents,omitempty"`
	NoFloatingPromises                 *RuleConfig `json:"@typescript-eslint/no-floating-promises,omitempty"`
	NoMeaninglessVoidOperator          *RuleConfig `json:"@typescript-eslint/no-meaningless-void-operator,omitempty"`
	NoMisusedPromises                  *RuleConfig `json:"@typescript-eslint/no-misused-promises,omitempty"`
	NoMisusedSpread                    *RuleConfig `json:"@typescript-eslint/no-misused-spread,omitempty"`
	NoMixedEnums                       *RuleConfig `json:"@typescript-eslint/no-mixed-enums,omitempty"`
	NoRedundantTypeConstituents        *RuleConfig `json:"@typescript-eslint/no-redundant-type-constituents,omitempty"`
	NoUnnecessaryBooleanLiteralCompare *RuleConfig `json:"@typescript-eslint/no-unnecessary-boolean-literal-compare,omitempty"`
	NoUnnecessaryTemplateExpression    *RuleConfig `json:"@typescript-eslint/no-unnecessary-template-expression,omitempty"`
	NoUnnecessaryTypeArguments         *RuleConfig `json:"@typescript-eslint/no-unnecessary-type-arguments,omitempty"`
	NoUnnecessaryTypeAssertion         *RuleConfig `json:"@typescript-eslint/no-unnecessary-type-assertion,omitempty"`
	NoUnsafeArgument                   *RuleConfig `json:"@typescript-eslint/no-unsafe-argument,omitempty"`
	NoUnsafeAssignment                 *RuleConfig `json:"@typescript-eslint/no-unsafe-assignment,omitempty"`
	NoUnsafeCall                       *RuleConfig `json:"@typescript-eslint/no-unsafe-call,omitempty"`
	NoUnsafeEnumComparison             *RuleConfig `json:"@typescript-eslint/no-unsafe-enum-comparison,omitempty"`
	NoUnsafeMemberAccess               *RuleConfig `json:"@typescript-eslint/no-unsafe-member-access,omitempty"`
	NoUnsafeReturn                     *RuleConfig `json:"@typescript-eslint/no-unsafe-return,omitempty"`
	NoUnsafeTypeAssertion              *RuleConfig `json:"@typescript-eslint/no-unsafe-type-assertion,omitempty"`
	NoUnsafeUnaryMinus                 *RuleConfig `json:"@typescript-eslint/no-unsafe-unary-minus,omitempty"`
}

Alternative: If you want type-safe rule configurations

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL