.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / tslint / lib / rules / completed-docs / classExclusion.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 tsutils_1 = require("tsutils");
21 var ts = require("typescript");
22 var completedDocsRule_1 = require("../completedDocsRule");
23 var exclusion_1 = require("./exclusion");
24 var ClassExclusion = /** @class */ (function (_super) {
25     tslib_1.__extends(ClassExclusion, _super);
26     function ClassExclusion() {
27         var _this = _super !== null && _super.apply(this, arguments) || this;
28         _this.locations = _this.createSet(_this.descriptor.locations);
29         _this.privacies = _this.createSet(_this.descriptor.privacies);
30         return _this;
31     }
32     ClassExclusion.prototype.excludes = function (node) {
33         return !(this.shouldLocationBeDocumented(node) && this.shouldPrivacyBeDocumented(node));
34     };
35     ClassExclusion.prototype.shouldLocationBeDocumented = function (node) {
36         if (this.locations.has(completedDocsRule_1.ALL)) {
37             return true;
38         }
39         if (tsutils_1.hasModifier(node.modifiers, ts.SyntaxKind.StaticKeyword)) {
40             return this.locations.has(completedDocsRule_1.LOCATION_STATIC);
41         }
42         return this.locations.has(completedDocsRule_1.LOCATION_INSTANCE);
43     };
44     ClassExclusion.prototype.shouldPrivacyBeDocumented = function (node) {
45         if (this.privacies.has(completedDocsRule_1.ALL)) {
46             return true;
47         }
48         if (tsutils_1.hasModifier(node.modifiers, ts.SyntaxKind.PrivateKeyword)) {
49             return this.privacies.has(completedDocsRule_1.PRIVACY_PRIVATE);
50         }
51         if (tsutils_1.hasModifier(node.modifiers, ts.SyntaxKind.ProtectedKeyword)) {
52             return this.privacies.has(completedDocsRule_1.PRIVACY_PROTECTED);
53         }
54         return this.privacies.has(completedDocsRule_1.PRIVACY_PUBLIC);
55     };
56     return ClassExclusion;
57 }(exclusion_1.Exclusion));
58 exports.ClassExclusion = ClassExclusion;