@blitz/eslint-plugin
Version:
An ESLint config to enforce a consistent code styles across StackBlitz projects
67 lines • 2.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.defaultOptions = exports.messageId = exports.ruleName = void 0;
const util_1 = require("../util");
exports.ruleName = 'catch-error-name';
exports.messageId = 'default';
exports.defaultOptions = [
{
name: 'error',
ignore: [],
},
];
exports.default = (0, util_1.createRule)({
name: exports.ruleName,
meta: {
type: 'suggestion',
docs: {
description: 'Enforce a specific parameter name in catch clauses',
},
fixable: 'code',
schema: [
{
type: 'object',
properties: {
name: {
type: 'string',
},
ignore: {
type: 'array',
uniqueItems: true,
},
},
},
],
messages: {
default: 'The catch parameter `{{originalName}}` should be named `{{fixedName}}`.',
},
},
defaultOptions: exports.defaultOptions,
create: (context, [options]) => {
return {
CatchClause: (node) => {
const expectedName = options.name;
if (node.param && node.param.type === 'Identifier') {
const { name: originalName } = node.param;
if (originalName !== expectedName && !options.ignore.some((ignored) => originalName === ignored)) {
context.report({
node,
messageId: 'default',
data: {
originalName,
fixedName: expectedName,
},
fix: (fixer) => {
if (node.param) {
return fixer.replaceText(node.param, 'error');
}
return null;
},
});
}
}
},
};
},
});
//# sourceMappingURL=catch-error-name.js.map