Initial commit (from f5274cbdce4ae7c9e4b937dcdf95ac70ae436d5f)
This commit is contained in:
commit
28ccc3db2d
13974 changed files with 2618436 additions and 0 deletions
100
node_modules/tslint/lib/files/resolution.js
generated
vendored
Normal file
100
node_modules/tslint/lib/files/resolution.js
generated
vendored
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
"use strict";
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2019 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 fs = require("fs");
|
||||
var glob = require("glob");
|
||||
var minimatch_1 = require("minimatch");
|
||||
var path = require("path");
|
||||
var error_1 = require("../error");
|
||||
var linter_1 = require("../linter");
|
||||
var utils_1 = require("../utils");
|
||||
function filterFiles(files, patterns, include) {
|
||||
if (patterns.length === 0) {
|
||||
return include ? [] : files;
|
||||
}
|
||||
var matcher = patterns.map(function (pattern) { return new minimatch_1.Minimatch(pattern, { dot: !include }); }); // `glob` always enables `dot` for ignore patterns
|
||||
return files.filter(function (file) { return include === matcher.some(function (pattern) { return pattern.match(file); }); });
|
||||
}
|
||||
exports.filterFiles = filterFiles;
|
||||
function findTsconfig(project) {
|
||||
try {
|
||||
var stats = fs.statSync(project); // throws if file does not exist
|
||||
if (!stats.isDirectory()) {
|
||||
return project;
|
||||
}
|
||||
var projectFile = path.join(project, "tsconfig.json");
|
||||
fs.accessSync(projectFile); // throws if file does not exist
|
||||
return projectFile;
|
||||
}
|
||||
catch (e) {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
exports.findTsconfig = findTsconfig;
|
||||
function resolveGlobs(files, ignore, outputAbsolutePaths, logger) {
|
||||
var results = utils_1.flatMap(files, function (file) {
|
||||
return glob.sync(utils_1.trimSingleQuotes(file), { ignore: ignore, nodir: true });
|
||||
});
|
||||
// warn if `files` contains non-existent files, that are not patters and not excluded by any of the exclude patterns
|
||||
for (var _i = 0, _a = filterFiles(files, ignore, false); _i < _a.length; _i++) {
|
||||
var file = _a[_i];
|
||||
if (!glob.hasMagic(file) && !results.some(minimatch_1.filter(file))) {
|
||||
logger.error("'" + file + "' does not exist. This will be an error in TSLint 6.\n"); // TODO make this an error in v6.0.0
|
||||
}
|
||||
}
|
||||
var cwd = process.cwd();
|
||||
return results.map(function (file) {
|
||||
return outputAbsolutePaths ? path.resolve(cwd, file) : path.relative(cwd, file);
|
||||
});
|
||||
}
|
||||
exports.resolveGlobs = resolveGlobs;
|
||||
function resolveFilesAndProgram(_a, logger) {
|
||||
var files = _a.files, project = _a.project, exclude = _a.exclude, outputAbsolutePaths = _a.outputAbsolutePaths;
|
||||
// remove single quotes which break matching on Windows when glob is passed in single quotes
|
||||
exclude = exclude.map(utils_1.trimSingleQuotes);
|
||||
if (project === undefined) {
|
||||
return { files: resolveGlobs(files, exclude, outputAbsolutePaths, logger) };
|
||||
}
|
||||
var projectPath = findTsconfig(project);
|
||||
if (projectPath === undefined) {
|
||||
throw new error_1.FatalError("Invalid option for project: " + project);
|
||||
}
|
||||
exclude = exclude.map(function (pattern) { return path.resolve(pattern); });
|
||||
var program = linter_1.Linter.createProgram(projectPath);
|
||||
var filesFound;
|
||||
if (files.length === 0) {
|
||||
filesFound = filterFiles(linter_1.Linter.getFileNames(program), exclude, false);
|
||||
}
|
||||
else {
|
||||
files = files.map(function (f) { return path.resolve(f); });
|
||||
filesFound = filterFiles(program.getSourceFiles().map(function (f) { return f.fileName; }), files, true);
|
||||
filesFound = filterFiles(filesFound, exclude, false);
|
||||
// find non-glob files that have no matching file in the project and are not excluded by any exclude pattern
|
||||
for (var _i = 0, _b = filterFiles(files, exclude, false); _i < _b.length; _i++) {
|
||||
var file = _b[_i];
|
||||
if (!glob.hasMagic(file) && !filesFound.some(minimatch_1.filter(file))) {
|
||||
if (fs.existsSync(file)) {
|
||||
throw new error_1.FatalError("'" + file + "' is not included in project.");
|
||||
}
|
||||
logger.error("'" + file + "' does not exist. This will be an error in TSLint 6.\n"); // TODO make this an error in v6.0.0
|
||||
}
|
||||
}
|
||||
}
|
||||
return { files: filesFound, program: program };
|
||||
}
|
||||
exports.resolveFilesAndProgram = resolveFilesAndProgram;
|
||||
Loading…
Add table
Add a link
Reference in a new issue