@@ -25,6 +25,7 @@ var rule = require( 'unified-lint-rule' );
2525var visit = require ( 'unist-util-visit' ) ;
2626var Engine = require ( 'eslint' ) . CLIEngine ;
2727var cwd = require ( '@stdlib/process/cwd' ) ;
28+ var contains = require ( '@stdlib/assert/contains' ) ;
2829var hasOwnProp = require ( '@stdlib/assert/has-own-property' ) ;
2930var isObject = require ( '@stdlib/assert/is-plain-object' ) ;
3031var transformHTML = require ( './transform_html.js' ) ;
@@ -60,6 +61,9 @@ function factory( options ) {
6061 if ( hasOwnProp ( options , 'config' ) ) {
6162 opts . configFile = resolve ( cwd ( ) , options . config ) ;
6263 }
64+ if ( hasOwnProp ( options , 'rules' ) ) {
65+ opts . rules = options . rules ;
66+ }
6367 if ( hasOwnProp ( options , 'ignore' ) ) {
6468 opts . ignore = options . ignore ;
6569 }
@@ -81,6 +85,7 @@ function factory( options ) {
8185 * @param {Callback } clbk - callback
8286 */
8387 function lint ( tree , file ) {
88+ var FIRST ;
8489 visit ( tree , 'code' , onNode ) ;
8590
8691 /**
@@ -106,6 +111,9 @@ function factory( options ) {
106111 var j ;
107112
108113 if ( node . lang === 'javascript' || node . lang === 'js' ) {
114+ if ( ! FIRST ) {
115+ FIRST = node . value ;
116+ }
109117 // Look for HTML comments immediately preceding a code block which may contain ESLint configuration...
110118 idx -= 1 ;
111119 prev = parent . children [ idx ] ;
@@ -127,6 +135,9 @@ function factory( options ) {
127135 code = comments . join ( '\n' ) ;
128136
129137 // Lint the code block...
138+ if ( ! contains ( code , FIRST ) ) {
139+ code = FIRST + '\n' + code ;
140+ }
130141 report = cli . executeOnText ( code ) ;
131142 for ( i = 0 ; i < report . results . length ; i ++ ) {
132143 result = report . results [ i ] ;
0 commit comments