forked from mysticatea/eslint-plugin-node
-
-
Notifications
You must be signed in to change notification settings - Fork 43
/
Copy pathno-process-exit.js
41 lines (38 loc) · 1.1 KB
/
no-process-exit.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/**
* @author Nicholas C. Zakas
* See LICENSE file in root directory for full license.
*/
"use strict"
const querySelector = [
`CallExpression > `,
`MemberExpression.callee`,
`[object.name="process"]`,
`[property.name="exit"]`,
]
/** @type {import('eslint').Rule.RuleModule} */
module.exports = {
meta: {
type: "suggestion",
docs: {
description: "disallow the use of `process.exit()`",
recommended: false,
url: "https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-process-exit.md",
},
fixable: null,
schema: [],
messages: {
noProcessExit: "Don't use process.exit(); throw an error instead.",
},
},
create(context) {
return {
/** @param {import('estree').MemberExpression & { parent: import('estree').CallExpression}} node */
[querySelector.join("")](node) {
context.report({
node: node.parent,
messageId: "noProcessExit",
})
},
}
},
}