UNPKG

1.38 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7exports.default = function (context) {
8 var never = (context.options[0] || 'always') === 'never';
9 var sourceCode = context.getSourceCode();
10
11 var report = function report(node, missing) {
12 var lastToken = sourceCode.getLastToken(node);
13 var fix = void 0,
14 message = void 0;
15 var loc = lastToken.loc;
16
17
18 if (missing) {
19 message = 'Missing semicolon.';
20 loc = loc.end;
21 fix = function fix(fixer) {
22 return fixer.insertTextAfter(lastToken, ';');
23 };
24 } else {
25 message = 'Extra semicolon.';
26 loc = loc.start;
27 fix = function fix(fixer) {
28 return fixer.remove(lastToken);
29 };
30 }
31
32 context.report({
33 fix: fix,
34 loc: loc,
35 message: message,
36 node: node
37 });
38 };
39
40 var isSemicolon = function isSemicolon(token) {
41 return token.type === 'Punctuator' && token.value === ';';
42 };
43
44 var checkForSemicolon = function checkForSemicolon(node) {
45 var lastToken = sourceCode.getLastToken(node);
46 var isLastTokenSemicolon = isSemicolon(lastToken);
47
48 if (never && isLastTokenSemicolon) {
49 report(node, false);
50 }
51
52 if (!never && !isLastTokenSemicolon) {
53 report(node, true);
54 }
55 };
56
57 return {
58 TypeAlias: checkForSemicolon
59 };
60};
61
62module.exports = exports['default'];
\No newline at end of file