eslint 0.22.0 → 0.24.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -20
- package/README.md +111 -95
- package/bin/eslint.js +41 -41
- package/conf/environments.js +87 -81
- package/conf/eslint.json +186 -179
- package/lib/api.js +13 -12
- package/lib/cli-engine.js +441 -451
- package/lib/cli.js +196 -196
- package/lib/config-initializer.js +145 -145
- package/lib/config-validator.js +110 -110
- package/lib/config.js +428 -416
- package/lib/eslint.js +1072 -1073
- package/lib/file-finder.js +167 -167
- package/lib/formatters/checkstyle.js +68 -68
- package/lib/formatters/compact.js +53 -53
- package/lib/formatters/jslint-xml.js +40 -40
- package/lib/formatters/junit.js +63 -63
- package/lib/formatters/stylish.js +90 -90
- package/lib/formatters/tap.js +86 -86
- package/lib/ignored-paths.js +137 -137
- package/lib/load-rules.js +39 -39
- package/lib/options.js +132 -126
- package/lib/rule-context.js +107 -107
- package/lib/rules/accessor-pairs.js +65 -65
- package/lib/rules/array-bracket-spacing.js +180 -0
- package/lib/rules/block-scoped-var.js +339 -320
- package/lib/rules/brace-style.js +228 -228
- package/lib/rules/camelcase.js +111 -111
- package/lib/rules/comma-dangle.js +67 -64
- package/lib/rules/comma-spacing.js +191 -191
- package/lib/rules/comma-style.js +195 -195
- package/lib/rules/complexity.js +94 -94
- package/lib/rules/computed-property-spacing.js +144 -0
- package/lib/rules/consistent-return.js +75 -75
- package/lib/rules/consistent-this.js +119 -119
- package/lib/rules/constructor-super.js +108 -0
- package/lib/rules/curly.js +109 -109
- package/lib/rules/default-case.js +66 -66
- package/lib/rules/dot-location.js +63 -63
- package/lib/rules/dot-notation.js +119 -119
- package/lib/rules/eol-last.js +38 -38
- package/lib/rules/eqeqeq.js +96 -96
- package/lib/rules/func-names.js +45 -45
- package/lib/rules/func-style.js +49 -49
- package/lib/rules/generator-star-spacing.js +104 -87
- package/lib/rules/generator-star.js +76 -76
- package/lib/rules/global-strict.js +49 -49
- package/lib/rules/guard-for-in.js +32 -32
- package/lib/rules/handle-callback-err.js +81 -124
- package/lib/rules/indent.js +486 -486
- package/lib/rules/key-spacing.js +325 -325
- package/lib/rules/linebreak-style.js +44 -44
- package/lib/rules/lines-around-comment.js +228 -160
- package/lib/rules/max-depth.js +89 -89
- package/lib/rules/max-len.js +76 -76
- package/lib/rules/max-nested-callbacks.js +73 -73
- package/lib/rules/max-params.js +45 -45
- package/lib/rules/max-statements.js +61 -61
- package/lib/rules/new-cap.js +224 -224
- package/lib/rules/new-parens.js +29 -29
- package/lib/rules/newline-after-var.js +127 -127
- package/lib/rules/no-alert.js +153 -153
- package/lib/rules/no-array-constructor.js +31 -31
- package/lib/rules/no-bitwise.js +57 -57
- package/lib/rules/no-caller.js +29 -29
- package/lib/rules/no-catch-shadow.js +52 -52
- package/lib/rules/no-comma-dangle.js +45 -45
- package/lib/rules/no-cond-assign.js +123 -123
- package/lib/rules/no-console.js +27 -27
- package/lib/rules/no-constant-condition.js +73 -73
- package/lib/rules/no-continue.js +23 -23
- package/lib/rules/no-control-regex.js +58 -58
- package/lib/rules/no-debugger.js +22 -22
- package/lib/rules/no-delete-var.js +25 -25
- package/lib/rules/no-div-regex.js +27 -27
- package/lib/rules/no-dupe-args.js +89 -85
- package/lib/rules/no-dupe-keys.js +43 -43
- package/lib/rules/no-duplicate-case.js +67 -67
- package/lib/rules/no-else-return.js +125 -125
- package/lib/rules/no-empty-character-class.js +43 -43
- package/lib/rules/no-empty-class.js +45 -45
- package/lib/rules/no-empty-label.js +27 -27
- package/lib/rules/no-empty.js +49 -49
- package/lib/rules/no-eq-null.js +29 -29
- package/lib/rules/no-eval.js +26 -26
- package/lib/rules/no-ex-assign.js +42 -42
- package/lib/rules/no-extend-native.js +103 -103
- package/lib/rules/no-extra-bind.js +81 -81
- package/lib/rules/no-extra-boolean-cast.js +71 -71
- package/lib/rules/no-extra-parens.js +368 -355
- package/lib/rules/no-extra-semi.js +70 -23
- package/lib/rules/no-extra-strict.js +86 -86
- package/lib/rules/no-fallthrough.js +97 -97
- package/lib/rules/no-floating-decimal.js +30 -30
- package/lib/rules/no-func-assign.js +83 -83
- package/lib/rules/no-implied-eval.js +76 -76
- package/lib/rules/no-inline-comments.js +49 -49
- package/lib/rules/no-inner-declarations.js +78 -78
- package/lib/rules/no-invalid-regexp.js +53 -53
- package/lib/rules/no-irregular-whitespace.js +135 -135
- package/lib/rules/no-iterator.js +28 -28
- package/lib/rules/no-label-var.js +64 -64
- package/lib/rules/no-labels.js +44 -44
- package/lib/rules/no-lone-blocks.js +106 -27
- package/lib/rules/no-lonely-if.js +30 -30
- package/lib/rules/no-loop-func.js +58 -58
- package/lib/rules/no-mixed-requires.js +165 -165
- package/lib/rules/no-mixed-spaces-and-tabs.js +74 -74
- package/lib/rules/no-multi-spaces.js +119 -119
- package/lib/rules/no-multi-str.js +43 -43
- package/lib/rules/no-multiple-empty-lines.js +98 -98
- package/lib/rules/no-native-reassign.js +62 -62
- package/lib/rules/no-negated-in-lhs.js +25 -25
- package/lib/rules/no-nested-ternary.js +24 -24
- package/lib/rules/no-new-func.js +25 -25
- package/lib/rules/no-new-object.js +25 -25
- package/lib/rules/no-new-require.js +25 -25
- package/lib/rules/no-new-wrappers.js +26 -26
- package/lib/rules/no-new.js +27 -27
- package/lib/rules/no-obj-calls.js +28 -28
- package/lib/rules/no-octal-escape.js +39 -39
- package/lib/rules/no-octal.js +25 -25
- package/lib/rules/no-param-reassign.js +87 -87
- package/lib/rules/no-path-concat.js +39 -39
- package/lib/rules/no-plusplus.js +24 -24
- package/lib/rules/no-process-env.js +30 -30
- package/lib/rules/no-process-exit.js +33 -33
- package/lib/rules/no-proto.js +28 -28
- package/lib/rules/no-redeclare.js +68 -68
- package/lib/rules/no-regex-spaces.js +35 -35
- package/lib/rules/no-reserved-keys.js +56 -56
- package/lib/rules/no-restricted-modules.js +85 -85
- package/lib/rules/no-return-assign.js +53 -24
- package/lib/rules/no-script-url.js +34 -34
- package/lib/rules/no-self-compare.js +29 -29
- package/lib/rules/no-sequences.js +94 -94
- package/lib/rules/no-shadow-restricted-names.js +51 -51
- package/lib/rules/no-shadow.js +181 -136
- package/lib/rules/no-space-before-semi.js +98 -98
- package/lib/rules/no-spaced-func.js +37 -37
- package/lib/rules/no-sparse-arrays.js +33 -33
- package/lib/rules/no-sync.js +30 -30
- package/lib/rules/no-ternary.js +24 -24
- package/lib/rules/no-this-before-super.js +144 -0
- package/lib/rules/no-throw-literal.js +33 -33
- package/lib/rules/no-trailing-spaces.js +74 -63
- package/lib/rules/no-undef-init.js +28 -28
- package/lib/rules/no-undef.js +92 -92
- package/lib/rules/no-undefined.js +27 -27
- package/lib/rules/no-underscore-dangle.js +73 -73
- package/lib/rules/no-unexpected-multiline.js +58 -0
- package/lib/rules/no-unneeded-ternary.js +48 -48
- package/lib/rules/no-unreachable.js +98 -98
- package/lib/rules/no-unused-expressions.js +76 -76
- package/lib/rules/no-unused-vars.js +252 -250
- package/lib/rules/no-use-before-define.js +105 -105
- package/lib/rules/no-var.js +26 -26
- package/lib/rules/no-void.js +28 -28
- package/lib/rules/no-warning-comments.js +102 -102
- package/lib/rules/no-with.js +22 -22
- package/lib/rules/no-wrap-func.js +65 -65
- package/lib/rules/object-curly-spacing.js +231 -206
- package/lib/rules/object-shorthand.js +74 -73
- package/lib/rules/one-var.js +311 -304
- package/lib/rules/operator-assignment.js +118 -118
- package/lib/rules/operator-linebreak.js +114 -114
- package/lib/rules/padded-blocks.js +98 -98
- package/lib/rules/prefer-const.js +91 -0
- package/lib/rules/quote-props.js +72 -72
- package/lib/rules/quotes.js +92 -92
- package/lib/rules/radix.js +41 -41
- package/lib/rules/semi-spacing.js +167 -167
- package/lib/rules/semi.js +136 -136
- package/lib/rules/sort-vars.js +49 -49
- package/lib/rules/space-after-function-name.js +49 -49
- package/lib/rules/space-after-keywords.js +82 -82
- package/lib/rules/space-before-blocks.js +91 -91
- package/lib/rules/space-before-function-paren.js +139 -139
- package/lib/rules/space-before-function-parentheses.js +139 -139
- package/lib/rules/space-in-brackets.js +305 -305
- package/lib/rules/space-in-parens.js +281 -281
- package/lib/rules/space-infix-ops.js +106 -106
- package/lib/rules/space-return-throw-case.js +38 -38
- package/lib/rules/space-unary-ops.js +124 -133
- package/lib/rules/spaced-comment.js +143 -0
- package/lib/rules/spaced-line-comment.js +89 -89
- package/lib/rules/strict.js +242 -242
- package/lib/rules/use-isnan.js +26 -26
- package/lib/rules/valid-jsdoc.js +215 -215
- package/lib/rules/valid-typeof.js +42 -42
- package/lib/rules/vars-on-top.js +115 -115
- package/lib/rules/wrap-iife.js +48 -48
- package/lib/rules/wrap-regex.js +38 -38
- package/lib/rules/yoda.js +242 -225
- package/lib/rules.js +88 -88
- package/lib/timing.js +109 -109
- package/lib/token-store.js +201 -201
- package/lib/util/traverse.js +105 -105
- package/lib/util.js +125 -85
- package/package.json +6 -6
- package/CHANGELOG.md +0 -1638
@@ -0,0 +1,143 @@
|
|
1
|
+
/**
|
2
|
+
* @fileoverview Source code for spaced-comments rule
|
3
|
+
* @author Gyandeep Singh
|
4
|
+
* @copyright 2015 Gyandeep Singh. All rights reserved.
|
5
|
+
* @copyright 2014 Greg Cochard. All rights reserved.
|
6
|
+
*/
|
7
|
+
"use strict";
|
8
|
+
|
9
|
+
//------------------------------------------------------------------------------
|
10
|
+
// Rule Definition
|
11
|
+
//------------------------------------------------------------------------------
|
12
|
+
|
13
|
+
module.exports = function(context) {
|
14
|
+
|
15
|
+
// Unless the first option is never, require a space
|
16
|
+
var requireSpace = context.options[0] !== "never";
|
17
|
+
|
18
|
+
// Default to match anything, so all will fail if there are no exceptions
|
19
|
+
var exceptionMatcher = new RegExp(" ");
|
20
|
+
var markerMatcher = new RegExp(" ");
|
21
|
+
var jsDocMatcher = new RegExp("((^(\\*)))[ \\n]");
|
22
|
+
|
23
|
+
// Fetch the options dict
|
24
|
+
var hasOptions = context.options.length === 2;
|
25
|
+
var optionsDict = hasOptions ? context.options[1] : {};
|
26
|
+
|
27
|
+
// Grab the exceptions array and build a RegExp matcher for it
|
28
|
+
var hasExceptions = hasOptions && optionsDict.exceptions && optionsDict.exceptions.length;
|
29
|
+
var unescapedExceptions = hasExceptions ? optionsDict.exceptions : [];
|
30
|
+
var exceptions;
|
31
|
+
|
32
|
+
// Now do the same for markers
|
33
|
+
var hasMarkers = hasOptions && optionsDict.markers && optionsDict.markers.length;
|
34
|
+
var unescapedMarkers = hasMarkers ? optionsDict.markers : [];
|
35
|
+
var markers;
|
36
|
+
|
37
|
+
function escaper(s) {
|
38
|
+
return s.replace(/([.*+?${}()|\^\[\]\/\\])/g, "\\$1");
|
39
|
+
}
|
40
|
+
|
41
|
+
if (hasExceptions) {
|
42
|
+
exceptions = unescapedExceptions.map(escaper);
|
43
|
+
exceptionMatcher = new RegExp("(^(" + exceptions.join(")+$)|(^(") + ")+$)");
|
44
|
+
}
|
45
|
+
|
46
|
+
if (hasMarkers) {
|
47
|
+
markers = unescapedMarkers.map(escaper);
|
48
|
+
|
49
|
+
// the markerMatcher includes any markers in the list, followed by space/tab
|
50
|
+
markerMatcher = new RegExp("((^(" + markers.join("))|(^(") + ")))[ \\t\\n]");
|
51
|
+
}
|
52
|
+
|
53
|
+
/**
|
54
|
+
* Check to see if the block comment is jsDoc comment
|
55
|
+
* @param {ASTNode} node comment node
|
56
|
+
* @returns {boolean} True if its jsdoc comment
|
57
|
+
* @private
|
58
|
+
*/
|
59
|
+
function isJsdoc(node) {
|
60
|
+
// make sure comment type is block and it start with /**\n
|
61
|
+
return node.type === "Block" && jsDocMatcher.test(node.value);
|
62
|
+
}
|
63
|
+
|
64
|
+
|
65
|
+
function checkCommentForSpace(node) {
|
66
|
+
var commentIdentifier = node.type === "Block" ? "/*" : "//";
|
67
|
+
|
68
|
+
if (requireSpace) {
|
69
|
+
|
70
|
+
// If length is zero, ignore it
|
71
|
+
if (node.value.length === 0) {
|
72
|
+
return;
|
73
|
+
}
|
74
|
+
|
75
|
+
// if comment is jsdoc style then ignore it
|
76
|
+
if (isJsdoc(node)) {
|
77
|
+
return;
|
78
|
+
}
|
79
|
+
|
80
|
+
// Check for markers now, and short-circuit if found
|
81
|
+
if (hasMarkers && markerMatcher.test(node.value)) {
|
82
|
+
return;
|
83
|
+
}
|
84
|
+
|
85
|
+
// Space expected and not found
|
86
|
+
if (node.value.indexOf(" ") !== 0 && node.value.indexOf("\t") !== 0 && node.value.indexOf("\n") !== 0) {
|
87
|
+
|
88
|
+
/*
|
89
|
+
* Do two tests; one for space starting the line,
|
90
|
+
* and one for a comment comprised only of exceptions
|
91
|
+
*/
|
92
|
+
if (hasExceptions && !exceptionMatcher.test(node.value)) {
|
93
|
+
context.report(node, "Expected exception block, space or tab after " + commentIdentifier + " in comment.");
|
94
|
+
} else if (!hasExceptions) {
|
95
|
+
context.report(node, "Expected space or tab after " + commentIdentifier + " in comment.");
|
96
|
+
}
|
97
|
+
}
|
98
|
+
|
99
|
+
} else {
|
100
|
+
|
101
|
+
if (node.value.indexOf(" ") === 0 || node.value.indexOf("\t") === 0) {
|
102
|
+
context.report(node, "Unexpected space or tab after " + commentIdentifier + " in comment.");
|
103
|
+
}
|
104
|
+
// there won't be a space or tab after commentIdentifier here, but check for the markers and whitespace
|
105
|
+
if (hasMarkers && markerMatcher.test(node.value)) {
|
106
|
+
var matches = node.value.match(markerMatcher), match = matches.length ? matches[0] : "";
|
107
|
+
|
108
|
+
context.report(node, "Unexpected space or tab after marker (" + match + ") in comment.");
|
109
|
+
}
|
110
|
+
}
|
111
|
+
}
|
112
|
+
|
113
|
+
return {
|
114
|
+
|
115
|
+
"LineComment": checkCommentForSpace,
|
116
|
+
"BlockComment": checkCommentForSpace
|
117
|
+
|
118
|
+
};
|
119
|
+
};
|
120
|
+
|
121
|
+
module.exports.schema = [
|
122
|
+
{
|
123
|
+
"enum": ["always", "never"]
|
124
|
+
},
|
125
|
+
{
|
126
|
+
"type": "object",
|
127
|
+
"properties": {
|
128
|
+
"exceptions": {
|
129
|
+
"type": "array",
|
130
|
+
"items": {
|
131
|
+
"type": "string"
|
132
|
+
}
|
133
|
+
},
|
134
|
+
"markers": {
|
135
|
+
"type": "array",
|
136
|
+
"items": {
|
137
|
+
"type": "string"
|
138
|
+
}
|
139
|
+
}
|
140
|
+
},
|
141
|
+
"additionalProperties": false
|
142
|
+
}
|
143
|
+
];
|
@@ -1,89 +1,89 @@
|
|
1
|
-
/**
|
2
|
-
* @fileoverview Enforces or disallows a space beginning a single-line comment.
|
3
|
-
* @author Greg Cochard
|
4
|
-
* @copyright 2014 Greg Cochard. All rights reserved.
|
5
|
-
*/
|
6
|
-
"use strict";
|
7
|
-
|
8
|
-
//------------------------------------------------------------------------------
|
9
|
-
// Rule Definition
|
10
|
-
//------------------------------------------------------------------------------
|
11
|
-
|
12
|
-
module.exports = function(context) {
|
13
|
-
|
14
|
-
// Unless the first option is never, require a space
|
15
|
-
var requireSpace = context.options[0] !== "never";
|
16
|
-
|
17
|
-
// Default to match anything, so all will fail if there are no exceptions
|
18
|
-
var exceptionMatcher = new RegExp(" ");
|
19
|
-
|
20
|
-
// Grab the exceptions array and build a RegExp matcher for it
|
21
|
-
var hasExceptions = context.options.length === 2;
|
22
|
-
var unescapedExceptions = hasExceptions ? context.options[1].exceptions : [];
|
23
|
-
var exceptions;
|
24
|
-
|
25
|
-
if (unescapedExceptions.length) {
|
26
|
-
exceptions = unescapedExceptions.map(function(s) {
|
27
|
-
return s.replace(/([.*+?${}()|\^\[\]\/\\])/g, "\\$1");
|
28
|
-
});
|
29
|
-
exceptionMatcher = new RegExp("(^(" + exceptions.join(")+$)|(^(") + ")+$)");
|
30
|
-
}
|
31
|
-
|
32
|
-
|
33
|
-
//--------------------------------------------------------------------------
|
34
|
-
// Public
|
35
|
-
//--------------------------------------------------------------------------
|
36
|
-
|
37
|
-
return {
|
38
|
-
|
39
|
-
"LineComment": function checkCommentForSpace(node) {
|
40
|
-
|
41
|
-
if (requireSpace) {
|
42
|
-
|
43
|
-
// If length is zero, ignore it
|
44
|
-
if (node.value.length === 0) {
|
45
|
-
return;
|
46
|
-
}
|
47
|
-
|
48
|
-
// Space expected and not found
|
49
|
-
if (node.value.indexOf(" ") !== 0 && node.value.indexOf("\t") !== 0) {
|
50
|
-
|
51
|
-
/*
|
52
|
-
* Do two tests; one for space starting the line,
|
53
|
-
* and one for a comment comprised only of exceptions
|
54
|
-
*/
|
55
|
-
if (hasExceptions && !exceptionMatcher.test(node.value)) {
|
56
|
-
context.report(node, "Expected exception block, space or tab after // in comment.");
|
57
|
-
} else if (!hasExceptions) {
|
58
|
-
context.report(node, "Expected space or tab after // in comment.");
|
59
|
-
}
|
60
|
-
}
|
61
|
-
|
62
|
-
} else {
|
63
|
-
|
64
|
-
if (node.value.indexOf(" ") === 0 || node.value.indexOf("\t") === 0) {
|
65
|
-
context.report(node, "Unexpected space or tab after // in comment.");
|
66
|
-
}
|
67
|
-
}
|
68
|
-
}
|
69
|
-
|
70
|
-
};
|
71
|
-
};
|
72
|
-
|
73
|
-
module.exports.schema = [
|
74
|
-
{
|
75
|
-
"enum": ["always", "never"]
|
76
|
-
},
|
77
|
-
{
|
78
|
-
"type": "object",
|
79
|
-
"properties": {
|
80
|
-
"exceptions": {
|
81
|
-
"type": "array",
|
82
|
-
"items": {
|
83
|
-
"type": "string"
|
84
|
-
}
|
85
|
-
}
|
86
|
-
},
|
87
|
-
"additionalProperties": false
|
88
|
-
}
|
89
|
-
];
|
1
|
+
/**
|
2
|
+
* @fileoverview Enforces or disallows a space beginning a single-line comment.
|
3
|
+
* @author Greg Cochard
|
4
|
+
* @copyright 2014 Greg Cochard. All rights reserved.
|
5
|
+
*/
|
6
|
+
"use strict";
|
7
|
+
|
8
|
+
//------------------------------------------------------------------------------
|
9
|
+
// Rule Definition
|
10
|
+
//------------------------------------------------------------------------------
|
11
|
+
|
12
|
+
module.exports = function(context) {
|
13
|
+
|
14
|
+
// Unless the first option is never, require a space
|
15
|
+
var requireSpace = context.options[0] !== "never";
|
16
|
+
|
17
|
+
// Default to match anything, so all will fail if there are no exceptions
|
18
|
+
var exceptionMatcher = new RegExp(" ");
|
19
|
+
|
20
|
+
// Grab the exceptions array and build a RegExp matcher for it
|
21
|
+
var hasExceptions = context.options.length === 2;
|
22
|
+
var unescapedExceptions = hasExceptions ? context.options[1].exceptions : [];
|
23
|
+
var exceptions;
|
24
|
+
|
25
|
+
if (unescapedExceptions.length) {
|
26
|
+
exceptions = unescapedExceptions.map(function(s) {
|
27
|
+
return s.replace(/([.*+?${}()|\^\[\]\/\\])/g, "\\$1");
|
28
|
+
});
|
29
|
+
exceptionMatcher = new RegExp("(^(" + exceptions.join(")+$)|(^(") + ")+$)");
|
30
|
+
}
|
31
|
+
|
32
|
+
|
33
|
+
//--------------------------------------------------------------------------
|
34
|
+
// Public
|
35
|
+
//--------------------------------------------------------------------------
|
36
|
+
|
37
|
+
return {
|
38
|
+
|
39
|
+
"LineComment": function checkCommentForSpace(node) {
|
40
|
+
|
41
|
+
if (requireSpace) {
|
42
|
+
|
43
|
+
// If length is zero, ignore it
|
44
|
+
if (node.value.length === 0) {
|
45
|
+
return;
|
46
|
+
}
|
47
|
+
|
48
|
+
// Space expected and not found
|
49
|
+
if (node.value.indexOf(" ") !== 0 && node.value.indexOf("\t") !== 0) {
|
50
|
+
|
51
|
+
/*
|
52
|
+
* Do two tests; one for space starting the line,
|
53
|
+
* and one for a comment comprised only of exceptions
|
54
|
+
*/
|
55
|
+
if (hasExceptions && !exceptionMatcher.test(node.value)) {
|
56
|
+
context.report(node, "Expected exception block, space or tab after // in comment.");
|
57
|
+
} else if (!hasExceptions) {
|
58
|
+
context.report(node, "Expected space or tab after // in comment.");
|
59
|
+
}
|
60
|
+
}
|
61
|
+
|
62
|
+
} else {
|
63
|
+
|
64
|
+
if (node.value.indexOf(" ") === 0 || node.value.indexOf("\t") === 0) {
|
65
|
+
context.report(node, "Unexpected space or tab after // in comment.");
|
66
|
+
}
|
67
|
+
}
|
68
|
+
}
|
69
|
+
|
70
|
+
};
|
71
|
+
};
|
72
|
+
|
73
|
+
module.exports.schema = [
|
74
|
+
{
|
75
|
+
"enum": ["always", "never"]
|
76
|
+
},
|
77
|
+
{
|
78
|
+
"type": "object",
|
79
|
+
"properties": {
|
80
|
+
"exceptions": {
|
81
|
+
"type": "array",
|
82
|
+
"items": {
|
83
|
+
"type": "string"
|
84
|
+
}
|
85
|
+
}
|
86
|
+
},
|
87
|
+
"additionalProperties": false
|
88
|
+
}
|
89
|
+
];
|