ESLint rule to lint JavaScript code in JSDoc example blocks.
var rule = require( '@stdlib/_tools/eslint/rules/jsdoc-example-eslint' );ESLint rule to lint JavaScript code in JSDoc example blocks. The rule extracts code from @example tags in JSDoc comments, lints it using a provided set of ESLint rules, and reports violations mapped back to the original source lines.
The rule accepts an options object with a rules property specifying which ESLint rules to apply to the extracted example code.
Bad (missing semicolon):
/**
* Squares a number.
*
* @example
* var y = square( 3.0 )
*/
function square( x ) {
return x * x;
}Good:
/**
* Squares a number.
*
* @example
* var y = square( 3.0 );
*/
function square( x ) {
return x * x;
}var Linter = require( 'eslint' ).Linter;
var rule = require( '@stdlib/_tools/eslint/rules/jsdoc-example-eslint' );
var linter = new Linter();
var result;
var code;
code = [
'/**',
'* Squares a number.',
'*',
'* @example',
'* var y = square( 3.0 )',
'* // returns 9.0',
'*/',
'function square( x ) {',
'\treturn x * x;',
'}'
].join( '\n' );
linter.defineRule( 'jsdoc-example-eslint', rule );
result = linter.verify( code, {
'rules': {
'jsdoc-example-eslint': [ 'error', {
'rules': {
'semi': 'error'
}
}]
}
});
console.log( result );
/* =>
[
{
'ruleId': 'jsdoc-example-eslint',
'severity': 2,
'message': 'Missing semicolon. (semi)',
...
}
]
*/