aboutsummaryrefslogtreecommitdiff
path: root/node_modules/ts-loader/dist/utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/ts-loader/dist/utils.js')
-rw-r--r--node_modules/ts-loader/dist/utils.js123
1 files changed, 123 insertions, 0 deletions
diff --git a/node_modules/ts-loader/dist/utils.js b/node_modules/ts-loader/dist/utils.js
new file mode 100644
index 000000000..30292d942
--- /dev/null
+++ b/node_modules/ts-loader/dist/utils.js
@@ -0,0 +1,123 @@
+"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;
+;