wallet-core/node_modules/ts-loader/dist/utils.js
2017-05-03 15:35:00 +02:00

124 lines
4.6 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var path = require("path");
var fs = require("fs");
var constants = require("./constants");
function registerWebpackErrors(existingErrors, errorsToPush) {
Array.prototype.splice.apply(existingErrors, [0, 0].concat(errorsToPush));
}
exports.registerWebpackErrors = registerWebpackErrors;
function hasOwnProperty(obj, property) {
return Object.prototype.hasOwnProperty.call(obj, property);
}
exports.hasOwnProperty = hasOwnProperty;
/**
* Take TypeScript errors, parse them and format to webpack errors
* Optionally adds a file name
*/
function formatErrors(diagnostics, loaderOptions, compiler, merge) {
return diagnostics
.filter(function (diagnostic) { return loaderOptions.ignoreDiagnostics.indexOf(diagnostic.code) === -1; })
.map(function (diagnostic) {
var errorCategory = compiler.DiagnosticCategory[diagnostic.category].toLowerCase();
var errorCategoryAndCode = errorCategory + ' TS' + diagnostic.code + ': ';
var messageText = errorCategoryAndCode + compiler.flattenDiagnosticMessageText(diagnostic.messageText, constants.EOL);
var error;
if (diagnostic.file) {
var lineChar = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);
var errorMessage = "" + '('.white + (lineChar.line + 1).toString().cyan + "," + (lineChar.character + 1).toString().cyan + "): " + messageText.red;
if (loaderOptions.visualStudioErrorFormat) {
errorMessage = path.normalize(diagnostic.file.fileName).red + errorMessage;
}
error = makeError({
message: errorMessage,
rawMessage: messageText,
location: { line: lineChar.line + 1, character: lineChar.character + 1 }
});
}
else {
error = makeError({ rawMessage: messageText });
}
return Object.assign(error, merge);
});
}
exports.formatErrors = formatErrors;
function readFile(fileName) {
fileName = path.normalize(fileName);
try {
return fs.readFileSync(fileName, 'utf8');
}
catch (e) {
return undefined;
}
}
exports.readFile = readFile;
function makeError(_a) {
var rawMessage = _a.rawMessage, message = _a.message, location = _a.location, file = _a.file;
var error = {
rawMessage: rawMessage,
message: message || "" + rawMessage.red,
loaderSource: 'ts-loader'
};
return Object.assign(error, { location: location, file: file });
}
exports.makeError = makeError;
function appendTsSuffixIfMatch(patterns, path) {
if (patterns.length > 0) {
for (var _i = 0, patterns_1 = patterns; _i < patterns_1.length; _i++) {
var regexp = patterns_1[_i];
if (path.match(regexp)) {
return path + '.ts';
}
}
}
return path;
}
exports.appendTsSuffixIfMatch = appendTsSuffixIfMatch;
/**
* Recursively collect all possible dependants of passed file
*/
function collectAllDependants(reverseDependencyGraph, fileName, collected) {
if (collected === void 0) { collected = {}; }
var result = {};
result[fileName] = true;
collected[fileName] = true;
if (reverseDependencyGraph[fileName]) {
Object.keys(reverseDependencyGraph[fileName]).forEach(function (dependantFileName) {
if (!collected[dependantFileName]) {
collectAllDependants(reverseDependencyGraph, dependantFileName, collected)
.forEach(function (fName) { return result[fName] = true; });
}
});
}
return Object.keys(result);
}
exports.collectAllDependants = collectAllDependants;
/**
* Recursively collect all possible dependencies of passed file
*/
function collectAllDependencies(dependencyGraph, filePath, collected) {
if (collected === void 0) { collected = {}; }
var result = {};
result[filePath] = true;
collected[filePath] = true;
var directDependencies = dependencyGraph[filePath];
if (directDependencies) {
directDependencies.forEach(function (dependencyModule) {
if (!collected[dependencyModule.originalFileName]) {
collectAllDependencies(dependencyGraph, dependencyModule.resolvedFileName, collected)
.forEach(function (filePath) { return result[filePath] = true; });
}
});
}
return Object.keys(result);
}
exports.collectAllDependencies = collectAllDependencies;
function arrify(val) {
if (val === null || val === undefined) {
return [];
}
return Array.isArray(val) ? val : [val];
}
exports.arrify = arrify;
;