@@ -68,11 +68,6 @@ interface PluginDetails {
6868 ruleNames : string [ ] ;
6969}
7070
71- // Default rule metadata, used if `rule.meta` property is empty.
72- const emptyRuleMeta : RuleMeta = {
73- fixable : null ,
74- } ;
75-
7671/**
7772 * Load a plugin.
7873 *
@@ -120,27 +115,22 @@ async function loadPluginImpl(path: string): Promise<PluginDetails> {
120115 const ruleName = ruleNames [ i ] ,
121116 rule = rules [ ruleName ] ;
122117
123- // Validate `rule.meta` and convert to object with standardized shape
124- // (all properties defined with default values if not supplied)
118+ // Validate `rule.meta` and convert to vars with standardized shape
119+ let isFixable = false ;
125120 let ruleMeta = rule . meta ;
126- if ( ruleMeta == null ) {
127- ruleMeta = emptyRuleMeta ;
128- } else {
121+ if ( ruleMeta != null ) {
129122 if ( typeof ruleMeta !== 'object' ) throw new TypeError ( 'Invalid `meta`' ) ;
130123
131- let { fixable } = ruleMeta ;
132- if ( fixable === void 0 ) {
133- fixable = null ;
134- } else if ( fixable !== null && fixable !== 'code' && fixable !== 'whitespace' ) {
135- throw new TypeError ( 'Invalid `meta.fixable`' ) ;
124+ const { fixable } = ruleMeta ;
125+ if ( fixable != null ) {
126+ if ( fixable !== 'code' && fixable !== 'whitespace' ) throw new TypeError ( 'Invalid `meta.fixable`' ) ;
127+ isFixable = true ;
136128 }
137-
138- ruleMeta = { fixable } ;
139129 }
140130
141131 // Create `Context` object for rule. This will be re-used for every file.
142132 // It's updated with file-specific data before linting each file with `setupContextForFile`.
143- const context = new Context ( `${ pluginName } /${ ruleName } ` , ruleMeta ) ;
133+ const context = new Context ( `${ pluginName } /${ ruleName } ` , isFixable ) ;
144134
145135 let ruleAndContext ;
146136 if ( 'createOnce' in rule ) {
0 commit comments