aboutsummaryrefslogtreecommitdiff
path: root/node_modules/tslint/lib/test
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/tslint/lib/test')
-rw-r--r--node_modules/tslint/lib/test/lines.d.ts37
-rw-r--r--node_modules/tslint/lib/test/lines.js157
-rw-r--r--node_modules/tslint/lib/test/lintError.d.ts12
-rw-r--r--node_modules/tslint/lib/test/lintError.js40
-rw-r--r--node_modules/tslint/lib/test/parse.d.ts13
-rw-r--r--node_modules/tslint/lib/test/parse.js219
6 files changed, 0 insertions, 478 deletions
diff --git a/node_modules/tslint/lib/test/lines.d.ts b/node_modules/tslint/lib/test/lines.d.ts
deleted file mode 100644
index 4c3c5b252..000000000
--- a/node_modules/tslint/lib/test/lines.d.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-export declare class Line {
-}
-export declare class CodeLine extends Line {
- contents: string;
- constructor(contents: string);
-}
-export declare class MessageSubstitutionLine extends Line {
- key: string;
- message: string;
- constructor(key: string, message: string);
-}
-export declare class ErrorLine extends Line {
- startCol: number;
- constructor(startCol: number);
-}
-export declare class MultilineErrorLine extends ErrorLine {
- constructor(startCol: number);
-}
-export declare class EndErrorLine extends ErrorLine {
- endCol: number;
- message: string;
- constructor(startCol: number, endCol: number, message: string);
-}
-export declare const ZERO_LENGTH_ERROR = "~nil";
-/**
- * Maps a line of text from a .lint file to an appropriate Line object
- */
-export declare function parseLine(text: string): Line;
-/**
- * Maps a Line object to a matching line of text that could be in a .lint file.
- * This is almost the inverse of parseLine.
- * If you ran `printLine(parseLine(someText), code)`, the whitespace in the result may be different than in someText
- * @param line - A Line object to convert to text
- * @param code - If line represents error markup, this is the line of code preceding the markup.
- * Otherwise, this parameter is not required.
- */
-export declare function printLine(line: Line, code?: string): string | null;
diff --git a/node_modules/tslint/lib/test/lines.js b/node_modules/tslint/lib/test/lines.js
deleted file mode 100644
index 9d86bc865..000000000
--- a/node_modules/tslint/lib/test/lines.js
+++ /dev/null
@@ -1,157 +0,0 @@
-"use strict";
-/*
- * Copyright 2016 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 tslib_1 = require("tslib");
-// Use classes here instead of interfaces because we want runtime type data
-var Line = (function () {
- function Line() {
- }
- return Line;
-}());
-exports.Line = Line;
-var CodeLine = (function (_super) {
- tslib_1.__extends(CodeLine, _super);
- function CodeLine(contents) {
- var _this = _super.call(this) || this;
- _this.contents = contents;
- return _this;
- }
- return CodeLine;
-}(Line));
-exports.CodeLine = CodeLine;
-var MessageSubstitutionLine = (function (_super) {
- tslib_1.__extends(MessageSubstitutionLine, _super);
- function MessageSubstitutionLine(key, message) {
- var _this = _super.call(this) || this;
- _this.key = key;
- _this.message = message;
- return _this;
- }
- return MessageSubstitutionLine;
-}(Line));
-exports.MessageSubstitutionLine = MessageSubstitutionLine;
-var ErrorLine = (function (_super) {
- tslib_1.__extends(ErrorLine, _super);
- function ErrorLine(startCol) {
- var _this = _super.call(this) || this;
- _this.startCol = startCol;
- return _this;
- }
- return ErrorLine;
-}(Line));
-exports.ErrorLine = ErrorLine;
-var MultilineErrorLine = (function (_super) {
- tslib_1.__extends(MultilineErrorLine, _super);
- function MultilineErrorLine(startCol) {
- return _super.call(this, startCol) || this;
- }
- return MultilineErrorLine;
-}(ErrorLine));
-exports.MultilineErrorLine = MultilineErrorLine;
-var EndErrorLine = (function (_super) {
- tslib_1.__extends(EndErrorLine, _super);
- function EndErrorLine(startCol, endCol, message) {
- var _this = _super.call(this, startCol) || this;
- _this.endCol = endCol;
- _this.message = message;
- return _this;
- }
- return EndErrorLine;
-}(ErrorLine));
-exports.EndErrorLine = EndErrorLine;
-// example matches (between the quotes):
-// " ~~~~~~~~"
-var multilineErrorRegex = /^\s*(~+|~nil)$/;
-// " ~~~~~~~~~ [some error message]"
-var endErrorRegex = /^\s*(~+|~nil)\s*\[(.+)\]\s*$/;
-// "[shortcut]: full messages goes here!! "
-var messageSubstitutionRegex = /^\[([-\w]+?)]: \s*(.+?)\s*$/;
-exports.ZERO_LENGTH_ERROR = "~nil";
-/**
- * Maps a line of text from a .lint file to an appropriate Line object
- */
-function parseLine(text) {
- var multilineErrorMatch = text.match(multilineErrorRegex);
- if (multilineErrorMatch != null) {
- var startErrorCol = text.indexOf("~");
- return new MultilineErrorLine(startErrorCol);
- }
- var endErrorMatch = text.match(endErrorRegex);
- if (endErrorMatch != null) {
- var squiggles = endErrorMatch[1], message = endErrorMatch[2];
- var startErrorCol = text.indexOf("~");
- var zeroLengthError = (squiggles === exports.ZERO_LENGTH_ERROR);
- var endErrorCol = zeroLengthError ? startErrorCol : text.lastIndexOf("~") + 1;
- return new EndErrorLine(startErrorCol, endErrorCol, message);
- }
- var messageSubstitutionMatch = text.match(messageSubstitutionRegex);
- if (messageSubstitutionMatch != null) {
- var key = messageSubstitutionMatch[1], message = messageSubstitutionMatch[2];
- return new MessageSubstitutionLine(key, message);
- }
- // line doesn't match any syntax for error markup, so it's a line of code to be linted
- return new CodeLine(text);
-}
-exports.parseLine = parseLine;
-/**
- * Maps a Line object to a matching line of text that could be in a .lint file.
- * This is almost the inverse of parseLine.
- * If you ran `printLine(parseLine(someText), code)`, the whitespace in the result may be different than in someText
- * @param line - A Line object to convert to text
- * @param code - If line represents error markup, this is the line of code preceding the markup.
- * Otherwise, this parameter is not required.
- */
-function printLine(line, code) {
- if (line instanceof ErrorLine) {
- if (code == null) {
- throw new Error("Must supply argument for code parameter when line is an ErrorLine");
- }
- var leadingSpaces = " ".repeat(line.startCol);
- if (line instanceof MultilineErrorLine) {
- // special case for when the line of code is simply a newline.
- // use "~nil" to indicate the error continues on that line
- if (code.length === 0 && line.startCol === 0) {
- return exports.ZERO_LENGTH_ERROR;
- }
- var tildes = "~".repeat(code.length - leadingSpaces.length);
- return "" + leadingSpaces + tildes;
- }
- else if (line instanceof EndErrorLine) {
- var tildes = "~".repeat(line.endCol - line.startCol);
- if (code.length < line.endCol) {
- // Better than crashing in String.repeat
- throw new Error("Bad error marker at " + JSON.stringify(line));
- }
- var endSpaces = " ".repeat(code.length - line.endCol);
- if (tildes.length === 0) {
- tildes = exports.ZERO_LENGTH_ERROR;
- // because we add "~nil" we need four less spaces than normal at the end
- // always make sure we have at least one space though
- endSpaces = endSpaces.substring(0, Math.max(endSpaces.length - 4, 1));
- }
- return "" + leadingSpaces + tildes + endSpaces + " [" + line.message + "]";
- }
- }
- else if (line instanceof MessageSubstitutionLine) {
- return "[" + line.key + "]: " + line.message;
- }
- else if (line instanceof CodeLine) {
- return line.contents;
- }
- return null;
-}
-exports.printLine = printLine;
diff --git a/node_modules/tslint/lib/test/lintError.d.ts b/node_modules/tslint/lib/test/lintError.d.ts
deleted file mode 100644
index c00b4b535..000000000
--- a/node_modules/tslint/lib/test/lintError.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Error } from "../error";
-export interface PositionInFile {
- line: number;
- col: number;
-}
-export interface LintError {
- startPos: PositionInFile;
- endPos: PositionInFile;
- message: string;
-}
-export declare function errorComparator(err1: LintError, err2: LintError): number;
-export declare function lintSyntaxError(message: string): Error;
diff --git a/node_modules/tslint/lib/test/lintError.js b/node_modules/tslint/lib/test/lintError.js
deleted file mode 100644
index d784537c1..000000000
--- a/node_modules/tslint/lib/test/lintError.js
+++ /dev/null
@@ -1,40 +0,0 @@
-"use strict";
-/*
- * Copyright 2016 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 error_1 = require("../error");
-function errorComparator(err1, err2) {
- if (err1.startPos.line !== err2.startPos.line) {
- return err1.startPos.line - err2.startPos.line;
- }
- else if (err1.startPos.col !== err2.startPos.col) {
- return err1.startPos.col - err2.startPos.col;
- }
- else if (err1.endPos.line !== err2.endPos.line) {
- return err1.endPos.line - err2.endPos.line;
- }
- else if (err1.endPos.col !== err2.endPos.col) {
- return err1.endPos.col - err2.endPos.col;
- }
- else {
- return err1.message.localeCompare(err2.message);
- }
-}
-exports.errorComparator = errorComparator;
-function lintSyntaxError(message) {
- return new error_1.Error("Lint File Syntax Error: " + message);
-}
-exports.lintSyntaxError = lintSyntaxError;
diff --git a/node_modules/tslint/lib/test/parse.d.ts b/node_modules/tslint/lib/test/parse.d.ts
deleted file mode 100644
index db31418a1..000000000
--- a/node_modules/tslint/lib/test/parse.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { LintError } from "./lintError";
-export declare function getTypescriptVersionRequirement(text: string): string | undefined;
-/**
- * Takes the full text of a .lint file and returns the contents of the file
- * with all error markup removed
- */
-export declare function removeErrorMarkup(text: string): string;
-/**
- * Takes the full text of a .lint file and returns an array of LintErrors
- * corresponding to the error markup in the file.
- */
-export declare function parseErrorsFromMarkup(text: string): LintError[];
-export declare function createMarkupFromErrors(code: string, lintErrors: LintError[]): string;
diff --git a/node_modules/tslint/lib/test/parse.js b/node_modules/tslint/lib/test/parse.js
deleted file mode 100644
index 5242878c4..000000000
--- a/node_modules/tslint/lib/test/parse.js
+++ /dev/null
@@ -1,219 +0,0 @@
-"use strict";
-/*
- * Copyright 2016 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 ts = require("typescript");
-var util_1 = require("util");
-var lines_1 = require("./lines");
-var lintError_1 = require("./lintError");
-var scanner;
-function getTypescriptVersionRequirement(text) {
- var lines = text.split(/\r?\n/);
- var firstLine = lines_1.parseLine(lines[0]);
- if (firstLine instanceof lines_1.MessageSubstitutionLine && firstLine.key === "typescript") {
- return firstLine.message;
- }
- return undefined;
-}
-exports.getTypescriptVersionRequirement = getTypescriptVersionRequirement;
-/**
- * Takes the full text of a .lint file and returns the contents of the file
- * with all error markup removed
- */
-function removeErrorMarkup(text) {
- var textWithMarkup = text.split("\n");
- var lines = textWithMarkup.map(lines_1.parseLine);
- var codeText = lines.filter(function (line) { return (line instanceof lines_1.CodeLine); }).map(function (line) { return line.contents; });
- return codeText.join("\n");
-}
-exports.removeErrorMarkup = removeErrorMarkup;
-/* tslint:disable:object-literal-sort-keys */
-/**
- * Takes the full text of a .lint file and returns an array of LintErrors
- * corresponding to the error markup in the file.
- */
-function parseErrorsFromMarkup(text) {
- var textWithMarkup = text.split("\n");
- var lines = textWithMarkup.map(lines_1.parseLine);
- if (lines.length > 0 && !(lines[0] instanceof lines_1.CodeLine)) {
- throw lintError_1.lintSyntaxError("text cannot start with an error mark line.");
- }
- var messageSubstitutionLines = lines.filter(function (l) { return l instanceof lines_1.MessageSubstitutionLine; });
- var messageSubstitutions = new Map();
- for (var _i = 0, messageSubstitutionLines_1 = messageSubstitutionLines; _i < messageSubstitutionLines_1.length; _i++) {
- var _a = messageSubstitutionLines_1[_i], key = _a.key, message = _a.message;
- messageSubstitutions.set(key, formatMessage(messageSubstitutions, message));
- }
- // errorLineForCodeLine[5] contains all the ErrorLine objects associated with the 5th line of code, for example
- var errorLinesForCodeLines = createCodeLineNoToErrorsMap(lines);
- var lintErrors = [];
- function addError(errorLine, errorStartPos, lineNo) {
- lintErrors.push({
- startPos: errorStartPos,
- endPos: { line: lineNo, col: errorLine.endCol },
- message: substituteMessage(messageSubstitutions, errorLine.message),
- });
- }
- // for each line of code...
- errorLinesForCodeLines.forEach(function (errorLinesForLineOfCode, lineNo) {
- // for each error marking on that line...
- while (errorLinesForLineOfCode.length > 0) {
- var errorLine = errorLinesForLineOfCode.shift();
- var errorStartPos = { line: lineNo, col: errorLine.startCol };
- // if the error starts and ends on this line, add it now to list of errors
- if (errorLine instanceof lines_1.EndErrorLine) {
- addError(errorLine, errorStartPos, lineNo);
- // if the error is the start of a multiline error
- }
- else if (errorLine instanceof lines_1.MultilineErrorLine) {
- // iterate through the MultilineErrorLines until we get to an EndErrorLine
- for (var nextLineNo = lineNo + 1;; ++nextLineNo) {
- if (!isValidErrorMarkupContinuation(errorLinesForCodeLines, nextLineNo)) {
- throw lintError_1.lintSyntaxError("Error mark starting at " + errorStartPos.line + ":" + errorStartPos.col + " does not end correctly.");
- }
- else {
- var nextErrorLine = errorLinesForCodeLines[nextLineNo].shift();
- // if end of multiline error, add it it list of errors
- if (nextErrorLine instanceof lines_1.EndErrorLine) {
- addError(nextErrorLine, errorStartPos, nextLineNo);
- break;
- }
- }
- }
- }
- }
- });
- lintErrors.sort(lintError_1.errorComparator);
- return lintErrors;
-}
-exports.parseErrorsFromMarkup = parseErrorsFromMarkup;
-/**
- * Process `message` as follows:
- * - search `substitutions` for an exact match and return the substitution
- * - try to format the message when it looks like: name % ('substitution1' [, "substitution2" [, ...]])
- * - or return it unchanged
- */
-function substituteMessage(templates, message) {
- var substitution = templates.get(message);
- if (substitution !== undefined) {
- return substitution;
- }
- return formatMessage(templates, message);
-}
-/**
- * Tries to format the message when it has the correct format or returns it unchanged: name % ('substitution1' [, "substitution2" [, ...]])
- * Where `name` is the name of a message substitution that is used as template.
- * If `name` is not found in `templates`, `message` is returned unchanged.
- */
-function formatMessage(templates, message) {
- var formatMatch = /^([-\w]+) % \((.+)\)$/.exec(message);
- if (formatMatch !== null) {
- var template = templates.get(formatMatch[1]);
- if (template !== undefined) {
- var formatArgs = parseFormatArguments(formatMatch[2]);
- if (formatArgs !== undefined) {
- message = util_1.format.apply(void 0, [template].concat(formatArgs));
- }
- }
- }
- return message;
-}
-/**
- * Parse a list of comma separated string literals.
- * This function bails out if it sees something unexpected.
- * Whitespace between tokens is ignored.
- * Trailing comma is allowed.
- */
-function parseFormatArguments(text) {
- if (scanner === undefined) {
- // once the scanner is created, it is cached for subsequent calls
- scanner = ts.createScanner(ts.ScriptTarget.Latest, false);
- }
- scanner.setText(text);
- var result = [];
- var expectValue = true;
- for (var token = scanner.scan(); token !== ts.SyntaxKind.EndOfFileToken; token = scanner.scan()) {
- if (token === ts.SyntaxKind.StringLiteral) {
- if (!expectValue) {
- return undefined;
- }
- result.push(scanner.getTokenValue());
- expectValue = false;
- }
- else if (token === ts.SyntaxKind.CommaToken) {
- if (expectValue) {
- return undefined;
- }
- expectValue = true;
- }
- else if (token !== ts.SyntaxKind.WhitespaceTrivia) {
- // only ignore whitespace, other trivia like comments makes this function bail out
- return undefined;
- }
- }
- return result.length === 0 ? undefined : result;
-}
-function createMarkupFromErrors(code, lintErrors) {
- lintErrors.sort(lintError_1.errorComparator);
- var codeText = code.split("\n");
- var errorLinesForCodeText = codeText.map(function () { return []; });
- for (var _i = 0, lintErrors_1 = lintErrors; _i < lintErrors_1.length; _i++) {
- var error = lintErrors_1[_i];
- var startPos = error.startPos, endPos = error.endPos, message = error.message;
- if (startPos.line === endPos.line) {
- // single line error
- errorLinesForCodeText[startPos.line].push(new lines_1.EndErrorLine(startPos.col, endPos.col, message));
- }
- else {
- // multiline error
- errorLinesForCodeText[startPos.line].push(new lines_1.MultilineErrorLine(startPos.col));
- for (var lineNo = startPos.line + 1; lineNo < endPos.line; ++lineNo) {
- errorLinesForCodeText[lineNo].push(new lines_1.MultilineErrorLine(0));
- }
- errorLinesForCodeText[endPos.line].push(new lines_1.EndErrorLine(0, endPos.col, message));
- }
- }
- var finalText = combineCodeTextAndErrorLines(codeText, errorLinesForCodeText);
- return finalText.join("\n");
-}
-exports.createMarkupFromErrors = createMarkupFromErrors;
-/* tslint:enable:object-literal-sort-keys */
-function combineCodeTextAndErrorLines(codeText, errorLinesForCodeText) {
- return codeText.reduce(function (resultText, code, i) {
- resultText.push(code);
- var errorPrintLines = errorLinesForCodeText[i].map(function (line) { return lines_1.printLine(line, code); }).filter(function (line) { return line !== null; });
- resultText.push.apply(resultText, errorPrintLines);
- return resultText;
- }, []);
-}
-function createCodeLineNoToErrorsMap(lines) {
- var errorLinesForCodeLine = [];
- for (var _i = 0, lines_2 = lines; _i < lines_2.length; _i++) {
- var line = lines_2[_i];
- if (line instanceof lines_1.CodeLine) {
- errorLinesForCodeLine.push([]);
- }
- else if (line instanceof lines_1.ErrorLine) {
- errorLinesForCodeLine[errorLinesForCodeLine.length - 1].push(line);
- }
- }
- return errorLinesForCodeLine;
-}
-function isValidErrorMarkupContinuation(errorLinesForCodeLines, lineNo) {
- return lineNo < errorLinesForCodeLines.length
- && errorLinesForCodeLines[lineNo].length !== 0
- && errorLinesForCodeLines[lineNo][0].startCol === 0;
-}