.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / tslint / lib / rules / maxFileLineCountRule.js
1 "use strict";
2 /**
3  * @license
4  * Copyright 2013 Palantir Technologies, Inc.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *     http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18 Object.defineProperty(exports, "__esModule", { value: true });
19 var tslib_1 = require("tslib");
20 var Lint = require("../index");
21 var Rule = /** @class */ (function (_super) {
22     tslib_1.__extends(Rule, _super);
23     function Rule() {
24         return _super !== null && _super.apply(this, arguments) || this;
25     }
26     /* tslint:enable:object-literal-sort-keys */
27     Rule.FAILURE_STRING = function (lineCount, lineLimit) {
28         return ("This file has " + lineCount + " lines, which exceeds the maximum of " + lineLimit + " lines allowed. " +
29             "Consider breaking this file up into smaller parts");
30     };
31     Rule.prototype.isEnabled = function () {
32         return _super.prototype.isEnabled.call(this) && this.ruleArguments[0] > 0;
33     };
34     Rule.prototype.apply = function (sourceFile) {
35         var lineLimit = this.ruleArguments[0];
36         var lineCount = sourceFile.getLineStarts().length;
37         if (lineCount <= lineLimit) {
38             return [];
39         }
40         var len = sourceFile.text.length;
41         return [
42             new Lint.RuleFailure(sourceFile, len - 1, len, Rule.FAILURE_STRING(lineCount, lineLimit), this.ruleName),
43         ];
44     };
45     /* tslint:disable:object-literal-sort-keys */
46     Rule.metadata = {
47         ruleName: "max-file-line-count",
48         description: "Requires files to remain under a certain number of lines",
49         rationale: Lint.Utils.dedent(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n            Limiting the number of lines allowed in a file allows files to remain small,\n            single purpose, and maintainable."], ["\n            Limiting the number of lines allowed in a file allows files to remain small,\n            single purpose, and maintainable."]))),
50         optionsDescription: "An integer indicating the maximum number of lines.",
51         options: {
52             type: "number",
53             minimum: "1",
54         },
55         optionExamples: [[true, 300]],
56         type: "maintainability",
57         typescriptOnly: false,
58     };
59     return Rule;
60 }(Lint.Rules.AbstractRule));
61 exports.Rule = Rule;
62 var templateObject_1;