UNPKG

644 BJavaScriptView Raw
1'use strict';
2const getDocumentationUrl = require('./utils/get-documentation-url');
3
4const selector = [
5 'ThrowStatement',
6 '>',
7 'CallExpression',
8 '[callee.type="Identifier"]'
9].join('');
10const customError = /^(?:[A-Z][\da-z]*)*Error$/;
11const message = 'Use `new` when throwing an error.';
12
13const create = context => ({
14 [selector]: node => {
15 if (customError.test(node.callee.name)) {
16 context.report({
17 node,
18 message,
19 fix: fixer => fixer.insertTextBefore(node, 'new ')
20 });
21 }
22 }
23});
24
25module.exports = {
26 create,
27 meta: {
28 type: 'suggestion',
29 docs: {
30 url: getDocumentationUrl(__filename)
31 },
32 fixable: 'code'
33 }
34};