mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-07 04:26:32 +08:00
This also adds the MPL-2.0 license as valid license to our allowed licenses list. R=jacktfranklin@chromium.org DISABLE_THIRD_PARTY_CHECK=NPM update Change-Id: I2a3bee2ffc0b328a0579ab62ab27f938bdc876c8 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2593130 Commit-Queue: Jack Franklin <jacktfranklin@chromium.org> Reviewed-by: Jack Franklin <jacktfranklin@chromium.org> Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
3.2 KiB
3.2 KiB
eslint-rule-extender
A utility to extend existing ESLint rules.
Installation
npm install eslint-rule-extender
or
yarn add eslint-rule-extender
Usage
The default export is a function that takes two arguments and returns the modified rule.
API
ruleExtender(originalRule: ESLintRule, options: Object) => ESLintRule;
originalRule- The original rule to extend- options - An object with the desired overrides (options can be viewed below)
Example Usage
const ruleExtender = require('eslint-rule-extender');
const { originalRule } = require('eslint-plugin-example');
const extendedRule = ruleExtender(originalRule, options);
module.exports = {
extendedRule,
};
Options
metaOverrides
Overrides for the original rule's meta property. The properties of the meta object can be found here.Options
const extendedRule = ruleExtender(originalRule, {
metaOverrides: {
type: 'suggestion',
fixable: false,
},
});
createAdditionalVisitors
A function that has the same signature as ESLint rules' create method. It is passed the context object and should return a object of visitor callbacks. See the official ESLint docs for more details!
Example Usage
const extendedRule = ruleExtender(originalRule, {
createAdditionalVisitors(context) {
return {
ArrowFunctionExpression(node) {
context.report({ node, messageId: 'anAdditionalSuggestion' });
},
};
},
});
reportOverrides
A function that is called with the report metadata of the original rule's context.report() calls. The return value of this function is a trinary with the following behavior:
true: report with original metadata (unchanged)false: do not report- modified report metadata object: report with this metadata instead
Example Usage
const extendedRule = ruleExtender(originalRule, {
reportOverrides(meta) {
return meta.node.type !== 'ThisExpression';
},
});
Putting It All Together
const ruleExtender = require('eslint-rule-extender');
const { originalRule } = require('eslint-plugin-example');
const extendedRule = ruleExtender(originalRule, {
metaOverrides: {
type: 'suggestion',
fixable: false,
},
createAdditionalVisitors(context) {
return {
ArrowFunctionExpression(node) {
context.report({ node, messageId: 'anAdditionalSuggestion' });
},
};
},
reportOverrides(meta) {
return meta.node.type !== 'ThisExpression';
},
});
module.exports = {
extendedRule,
};