mirror of
https://github.com/sasjs/lint.git
synced 2026-01-05 03:30:06 +00:00
feat: add new property severityLevel
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { LineEndings } from './LineEndings'
|
||||
import { LintConfig } from './LintConfig'
|
||||
import { LintRuleType } from './LintRuleType'
|
||||
import { Severity } from './Severity'
|
||||
|
||||
describe('LintConfig', () => {
|
||||
it('should create an empty instance', () => {
|
||||
@@ -123,6 +124,23 @@ describe('LintConfig', () => {
|
||||
expect(config.lineEndings).toEqual(LineEndings.CRLF)
|
||||
})
|
||||
|
||||
it('should create an instance with the severityLevel config', () => {
|
||||
const config = new LintConfig({
|
||||
severityLevel: {
|
||||
hasDoxygenHeader: 'warn',
|
||||
maxLineLength: 'error',
|
||||
noTrailingSpaces: 'error'
|
||||
}
|
||||
})
|
||||
|
||||
expect(config).toBeTruthy()
|
||||
expect(config.severityLevel).toEqual({
|
||||
hasDoxygenHeader: Severity.Warning,
|
||||
maxLineLength: Severity.Error,
|
||||
noTrailingSpaces: Severity.Error
|
||||
})
|
||||
})
|
||||
|
||||
it('should create an instance with the line endings set to LF by default', () => {
|
||||
const config = new LintConfig({})
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ import { lowerCaseFileNames, noSpacesInFileNames } from '../rules/path'
|
||||
import { LineEndings } from './LineEndings'
|
||||
import { FileLintRule, LineLintRule, PathLintRule } from './LintRule'
|
||||
import { getDefaultHeader } from '../utils'
|
||||
import { Severity } from './Severity'
|
||||
|
||||
/**
|
||||
* LintConfig is the logical representation of the .sasjslint file.
|
||||
@@ -34,6 +35,7 @@ export class LintConfig {
|
||||
readonly indentationMultiple: number = 2
|
||||
readonly lineEndings: LineEndings = LineEndings.LF
|
||||
readonly defaultHeader: string = getDefaultHeader()
|
||||
readonly severityLevel: { [key: string]: Severity } = {}
|
||||
|
||||
constructor(json?: any) {
|
||||
if (json?.ignoreList) {
|
||||
@@ -116,5 +118,12 @@ export class LintConfig {
|
||||
if (json?.strictMacroDefinition) {
|
||||
this.fileLintRules.push(strictMacroDefinition)
|
||||
}
|
||||
|
||||
if (json?.severityLevel) {
|
||||
for (const [rule, severity] of Object.entries(json.severityLevel)) {
|
||||
if (severity === 'warn') this.severityLevel[rule] = Severity.Warning
|
||||
if (severity === 'error') this.severityLevel[rule] = Severity.Error
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,5 +36,5 @@ export interface FileLintRule extends LintRule {
|
||||
*/
|
||||
export interface PathLintRule extends LintRule {
|
||||
type: LintRuleType.Path
|
||||
test: (value: string) => Diagnostic[]
|
||||
test: (value: string, config?: LintConfig) => Diagnostic[]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user