Comparing version 3.0.0-rc.2 to 3.0.0-rc.3
@@ -81,10 +81,5 @@ --- | ||
schema: [ | ||
{ | ||
type: 'array', | ||
items: [{ type: 'integer' }], | ||
uniqueItems: true, | ||
minItems: 2 | ||
} | ||
] | ||
schema: { | ||
type: 'integer' | ||
} | ||
} | ||
@@ -91,0 +86,0 @@ |
@@ -126,3 +126,5 @@ class CommentDirectiveParser { | ||
isRuleEnabled(line, ruleId) { | ||
return !this.disableAllByLine[line] && !this.disableRuleByLine[line].has(ruleId) | ||
const allRulesDisabled = this.disableAllByLine[line] | ||
const ruleDisabled = this.disableRuleByLine[line] && this.disableRuleByLine[line].has(ruleId) | ||
return !allRulesDisabled && !ruleDisabled | ||
} | ||
@@ -129,0 +131,0 @@ |
@@ -28,3 +28,7 @@ function match(text, regex) { | ||
return !this.isUpperSnakeCase(text) | ||
}, | ||
hasLeadingUnderscore(text) { | ||
return text && text[0] === '_' | ||
} | ||
} |
@@ -5,3 +5,3 @@ const _ = require('lodash') | ||
from(configVals) { | ||
return _.assign(configVals, this) | ||
return _.assign({ rules: {} }, configVals, this) | ||
}, | ||
@@ -8,0 +8,0 @@ |
@@ -0,1 +1,22 @@ | ||
const chalk = require('chalk') | ||
const Ajv = require('ajv') | ||
const ruleConfigSchema = schema => { | ||
const baseSchema = { | ||
type: 'array', | ||
items: [ | ||
{ | ||
enum: ['error', 'warn', 'off'] | ||
} | ||
], | ||
minItems: 1 | ||
} | ||
if (schema) { | ||
baseSchema.items.push(schema) | ||
} | ||
return baseSchema | ||
} | ||
class BaseChecker { | ||
@@ -6,2 +27,35 @@ constructor(reporter, ruleId, meta) { | ||
this.meta = meta | ||
if (!reporter) { | ||
return | ||
} | ||
// validate user's configuration of the rule | ||
const userConfig = reporter.config[ruleId] | ||
if (userConfig) { | ||
if (Array.isArray(userConfig)) { | ||
const ajv = new Ajv() | ||
const schema = ruleConfigSchema(meta.schema) | ||
const validate = ajv.compile(schema) | ||
if (!validate(userConfig)) { | ||
const messages = validate.errors | ||
.map(e => e.message) | ||
.filter(x => x) // filter out possible missing messages | ||
.map(x => ` ${x}`) // indent | ||
.join('\n') | ||
console.warn( | ||
chalk.yellow( | ||
`[solhint] Warning: invalid configuration for rule '${ruleId}':\n${messages}` | ||
) | ||
) | ||
} | ||
} else if (!['off', 'warn', 'error'].includes(userConfig)) { | ||
console.warn( | ||
chalk.yellow( | ||
`[solhint] Warning: rule '${ruleId}' level is '${userConfig}'; should be one of "error", "warn" or "off"` | ||
) | ||
) | ||
} | ||
} | ||
} | ||
@@ -8,0 +62,0 @@ |
@@ -43,10 +43,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [ | ||
{ | ||
type: 'array', | ||
items: [{ type: 'integer' }], | ||
uniqueItems: true, | ||
minItems: 2 | ||
} | ||
] | ||
schema: { type: 'integer' } | ||
} | ||
@@ -53,0 +46,0 @@ |
@@ -29,10 +29,6 @@ const BaseChecker = require('./../base-checker') | ||
schema: [ | ||
{ | ||
type: 'array', | ||
items: [{ type: 'integer' }], | ||
uniqueItems: true, | ||
minItems: 2 | ||
} | ||
] | ||
schema: { | ||
type: 'integer', | ||
minimum: 1 | ||
} | ||
} | ||
@@ -39,0 +35,0 @@ |
@@ -31,10 +31,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [ | ||
{ | ||
type: 'array', | ||
items: [{ type: 'integer' }], | ||
uniqueItems: true, | ||
minItems: 2 | ||
} | ||
] | ||
schema: { type: 'integer', minimum: 1 } | ||
} | ||
@@ -41,0 +34,0 @@ |
@@ -45,10 +45,3 @@ const _ = require('lodash') | ||
schema: [ | ||
{ | ||
type: 'array', | ||
items: [{ type: 'integer' }], | ||
uniqueItems: true, | ||
minItems: 2 | ||
} | ||
] | ||
schema: { type: 'integer' } | ||
} | ||
@@ -55,0 +48,0 @@ |
@@ -17,3 +17,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -20,0 +20,0 @@ |
@@ -20,3 +20,3 @@ const _ = require('lodash') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -23,0 +23,0 @@ |
@@ -31,3 +31,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -34,0 +34,0 @@ |
@@ -48,19 +48,10 @@ const _ = require('lodash') | ||
schema: [ | ||
{ | ||
type: 'array', | ||
items: [ | ||
{ | ||
properties: { | ||
maxLength: { | ||
type: 'integer' | ||
} | ||
}, | ||
additionalProperties: false | ||
} | ||
], | ||
uniqueItems: true, | ||
minItems: 2 | ||
schema: { | ||
type: 'object', | ||
properties: { | ||
maxLength: { | ||
type: 'integer' | ||
} | ||
} | ||
] | ||
} | ||
} | ||
@@ -67,0 +58,0 @@ |
@@ -16,3 +16,3 @@ const BaseDeprecation = require('./base-deprecation') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -19,0 +19,0 @@ |
@@ -14,3 +14,3 @@ const chalk = require('chalk') | ||
const config = configObject.from(configVals) | ||
const { rules = {} } = config | ||
const { rules } = config | ||
const meta = { | ||
@@ -17,0 +17,0 @@ reporter, |
@@ -44,15 +44,6 @@ const BaseChecker = require('../base-checker') | ||
schema: [ | ||
{ | ||
type: 'array', | ||
items: [ | ||
{ | ||
type: 'string', | ||
enum: QUOTE_TYPES | ||
} | ||
], | ||
uniqueItems: true, | ||
minItems: 2 | ||
} | ||
] | ||
schema: { | ||
type: 'string', | ||
enum: QUOTE_TYPES | ||
} | ||
} | ||
@@ -59,0 +50,0 @@ |
@@ -17,3 +17,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -20,0 +20,0 @@ |
@@ -17,3 +17,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -20,0 +20,0 @@ |
@@ -17,3 +17,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -20,0 +20,0 @@ |
@@ -17,3 +17,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -20,0 +20,0 @@ |
@@ -17,3 +17,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -20,0 +20,0 @@ |
@@ -7,2 +7,3 @@ const ConstNameSnakecaseChecker = require('./const-name-snakecase') | ||
const ModifierNameMixedcaseChecker = require('./modifier-name-mixedcase') | ||
const PrivateVarsLeadingUnderscore = require('./private-vars-leading-underscore') | ||
const UseForbiddenNameChecker = require('./use-forbidden-name') | ||
@@ -19,2 +20,3 @@ const VarNameMixedcaseChecker = require('./var-name-mixedcase') | ||
new ModifierNameMixedcaseChecker(reporter), | ||
new PrivateVarsLeadingUnderscore(reporter), | ||
new UseForbiddenNameChecker(reporter), | ||
@@ -21,0 +23,0 @@ new VarNameMixedcaseChecker(reporter) |
@@ -17,3 +17,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -20,0 +20,0 @@ |
@@ -18,3 +18,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -21,0 +21,0 @@ |
@@ -17,3 +17,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -20,0 +20,0 @@ |
@@ -34,3 +34,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -37,0 +37,0 @@ |
@@ -16,3 +16,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -19,0 +19,0 @@ |
@@ -30,3 +30,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -33,0 +33,0 @@ |
@@ -16,3 +16,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -19,0 +19,0 @@ |
@@ -25,3 +25,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -28,0 +28,0 @@ |
@@ -17,3 +17,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -20,0 +20,0 @@ |
@@ -16,3 +16,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -19,0 +19,0 @@ |
@@ -17,3 +17,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -20,0 +20,0 @@ |
@@ -16,3 +16,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -19,0 +19,0 @@ |
@@ -33,3 +33,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -36,0 +36,0 @@ |
@@ -30,10 +30,5 @@ const semver = require('semver') | ||
schema: [ | ||
{ | ||
type: 'array', | ||
items: [{ type: 'string' }], | ||
uniqueItems: true, | ||
minItems: 2 | ||
} | ||
] | ||
schema: { | ||
type: 'string' | ||
} | ||
} | ||
@@ -40,0 +35,0 @@ |
@@ -30,3 +30,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -33,0 +33,0 @@ |
@@ -34,3 +34,3 @@ const TreeTraversing = require('./../../common/tree-traversing') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -37,0 +37,0 @@ |
@@ -19,3 +19,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -22,0 +22,0 @@ |
@@ -17,3 +17,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -20,0 +20,0 @@ |
@@ -16,3 +16,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -19,0 +19,0 @@ |
@@ -16,3 +16,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -19,0 +19,0 @@ |
@@ -16,3 +16,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -19,0 +19,0 @@ |
@@ -46,3 +46,3 @@ const _ = require('lodash') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -49,0 +49,0 @@ |
@@ -16,3 +16,3 @@ const BaseChecker = require('./../base-checker') | ||
schema: [] | ||
schema: null | ||
} | ||
@@ -19,0 +19,0 @@ |
{ | ||
"name": "solhint", | ||
"version": "3.0.0-rc.2", | ||
"version": "3.0.0-rc.3", | ||
"description": "Solidity Code Linter", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
@@ -14,2 +14,13 @@ const { times } = require('lodash') | ||
function libraryWith(code) { | ||
return ` | ||
pragma solidity 0.4.4; | ||
library A { | ||
${code} | ||
} | ||
` | ||
} | ||
function funcWith(statements) { | ||
@@ -60,2 +71,3 @@ return contractWith(` | ||
contractWith, | ||
libraryWith, | ||
funcWith, | ||
@@ -62,0 +74,0 @@ modifierWith, |
@@ -17,3 +17,3 @@ const assert = require('assert') | ||
it('should not raise error with an empty file', () => { | ||
it('should raise error with an empty file', () => { | ||
const code = ' '.repeat(121) | ||
@@ -25,3 +25,4 @@ | ||
assertNoErrors(report) | ||
assert.equal(report.errorCount, 1) | ||
assertErrorMessage(report, 0, 'Line length must be no more than') | ||
}) | ||
@@ -28,0 +29,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Unidentified License
License(Experimental) Something that seems like a license was found, but its contents could not be matched with a known license.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Unidentified License
License(Experimental) Something that seems like a license was found, but its contents could not be matched with a known license.
Found 1 instance in 1 package
1848527
37711