github-pages-deploy-action/node_modules/tslint/lib/language/rule/rule.js

181 lines
6.7 KiB
JavaScript
Raw Normal View History

2019-11-19 20:48:29 +08:00
"use strict";
/**
* @license
* Copyright 2013 Palantir Technologies, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
var utils_1 = require("../../utils");
function isTypedRule(rule) {
return "applyWithProgram" in rule;
}
exports.isTypedRule = isTypedRule;
var Replacement = /** @class */ (function () {
function Replacement(start, length, text) {
this.start = start;
this.length = length;
this.text = text;
}
Replacement.applyFixes = function (content, fixes) {
return Replacement.applyAll(content, utils_1.flatMap(fixes, utils_1.arrayify));
};
Replacement.applyAll = function (content, replacements) {
// sort in reverse so that diffs are properly applied
replacements.sort(function (a, b) { return (b.end !== a.end ? b.end - a.end : b.start - a.start); });
return replacements.reduce(function (text, r) { return r.apply(text); }, content);
};
Replacement.replaceNode = function (node, text, sourceFile) {
return Replacement.replaceFromTo(node.getStart(sourceFile), node.getEnd(), text);
};
Replacement.replaceFromTo = function (start, end, text) {
return new Replacement(start, end - start, text);
};
Replacement.deleteText = function (start, length) {
return new Replacement(start, length, "");
};
Replacement.deleteFromTo = function (start, end) {
return new Replacement(start, end - start, "");
};
Replacement.appendText = function (start, text) {
return new Replacement(start, 0, text);
};
Object.defineProperty(Replacement.prototype, "end", {
get: function () {
return this.start + this.length;
},
enumerable: true,
configurable: true
});
Replacement.prototype.apply = function (content) {
return (content.substring(0, this.start) +
this.text +
content.substring(this.start + this.length));
};
Replacement.prototype.toJson = function () {
// tslint:disable object-literal-sort-keys
return {
innerStart: this.start,
innerLength: this.length,
innerText: this.text,
};
// tslint:enable object-literal-sort-keys
};
return Replacement;
}());
exports.Replacement = Replacement;
var RuleFailurePosition = /** @class */ (function () {
function RuleFailurePosition(position, lineAndCharacter) {
this.position = position;
this.lineAndCharacter = lineAndCharacter;
}
RuleFailurePosition.prototype.getPosition = function () {
return this.position;
};
RuleFailurePosition.prototype.getLineAndCharacter = function () {
return this.lineAndCharacter;
};
RuleFailurePosition.prototype.toJson = function () {
return {
character: this.lineAndCharacter.character,
line: this.lineAndCharacter.line,
position: this.position,
};
};
RuleFailurePosition.prototype.equals = function (ruleFailurePosition) {
var ll = this.lineAndCharacter;
var rr = ruleFailurePosition.lineAndCharacter;
return (this.position === ruleFailurePosition.position &&
ll.line === rr.line &&
ll.character === rr.character);
};
return RuleFailurePosition;
}());
exports.RuleFailurePosition = RuleFailurePosition;
var RuleFailure = /** @class */ (function () {
function RuleFailure(sourceFile, start, end, failure, ruleName, fix) {
this.sourceFile = sourceFile;
this.failure = failure;
this.ruleName = ruleName;
this.fix = fix;
this.fileName = sourceFile.fileName;
this.startPosition = this.createFailurePosition(start);
this.endPosition = this.createFailurePosition(end);
this.rawLines = sourceFile.text;
this.ruleSeverity = "error";
}
RuleFailure.compare = function (a, b) {
if (a.fileName !== b.fileName) {
return a.fileName < b.fileName ? -1 : 1;
}
return a.startPosition.getPosition() - b.startPosition.getPosition();
};
RuleFailure.prototype.getFileName = function () {
return this.fileName;
};
RuleFailure.prototype.getRuleName = function () {
return this.ruleName;
};
RuleFailure.prototype.getStartPosition = function () {
return this.startPosition;
};
RuleFailure.prototype.getEndPosition = function () {
return this.endPosition;
};
RuleFailure.prototype.getFailure = function () {
return this.failure;
};
RuleFailure.prototype.hasFix = function () {
return this.fix !== undefined;
};
RuleFailure.prototype.getFix = function () {
return this.fix;
};
RuleFailure.prototype.getRawLines = function () {
return this.rawLines;
};
RuleFailure.prototype.getRuleSeverity = function () {
return this.ruleSeverity;
};
RuleFailure.prototype.setRuleSeverity = function (value) {
this.ruleSeverity = value;
};
RuleFailure.prototype.toJson = function () {
return {
endPosition: this.endPosition.toJson(),
failure: this.failure,
fix: this.fix === undefined
? undefined
: Array.isArray(this.fix)
? this.fix.map(function (r) { return r.toJson(); })
: this.fix.toJson(),
name: this.fileName,
ruleName: this.ruleName,
ruleSeverity: this.ruleSeverity.toUpperCase(),
startPosition: this.startPosition.toJson(),
};
};
RuleFailure.prototype.equals = function (ruleFailure) {
return (this.failure === ruleFailure.getFailure() &&
this.fileName === ruleFailure.getFileName() &&
this.startPosition.equals(ruleFailure.getStartPosition()) &&
this.endPosition.equals(ruleFailure.getEndPosition()));
};
RuleFailure.prototype.createFailurePosition = function (position) {
var lineAndCharacter = this.sourceFile.getLineAndCharacterOfPosition(position);
return new RuleFailurePosition(position, lineAndCharacter);
};
return RuleFailure;
}());
exports.RuleFailure = RuleFailure;