diff options
Diffstat (limited to 'node_modules/ts-loader/dist/utils.js')
-rw-r--r-- | node_modules/ts-loader/dist/utils.js | 123 |
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; +; |