From 339b9d5070b0c67bb8aab17f35eb829c4b01be1d Mon Sep 17 00:00:00 2001 From: Tsvetan Raikov Date: Fri, 28 Oct 2016 19:14:03 +0300 Subject: [PATCH] Fixed `tns device log` throws exception --- lib/services/ios-log-filter.ts | 44 +++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/lib/services/ios-log-filter.ts b/lib/services/ios-log-filter.ts index d0306cb3db..42f7f57ce2 100644 --- a/lib/services/ios-log-filter.ts +++ b/lib/services/ios-log-filter.ts @@ -3,9 +3,10 @@ import * as path from "path"; export class IOSLogFilter implements Mobile.IPlatformLogFilter { + private $projectData: IProjectData; + constructor( private $fs: IFileSystem, - private $projectData: IProjectData, private $loggingLevels: Mobile.ILoggingLevels) { } public filterData(data: string, logLevel: string, pid?: string): string { @@ -22,16 +23,16 @@ export class IOSLogFilter implements Mobile.IPlatformLogFilter { } // CONSOLE LOG messages comme in the following form: // [pid] CONSOLE LOG file:///location:row:column: - // This code removes unnecessary information from log messages. The output looks like: - // CONSOLE LOG file:///location:row:column: + // This code removes unnecessary information from log messages. The output looks like: + // CONSOLE LOG file:///location:row:column: if (pid) { let searchString = "["+pid+"]: "; let pidIndex = data.indexOf(searchString); if (pidIndex > 0) { data = data.substring(pidIndex + searchString.length, data.length); - data = this.getOriginalFileLocation(data); } } + data = this.getOriginalFileLocation(data); return data.trim(); } @@ -45,24 +46,33 @@ export class IOSLogFilter implements Mobile.IPlatformLogFilter { let parts = data.substring(fileIndex + fileString.length).split(":"); if (parts.length >= 4) { let file = parts[0]; - let sourceMapFile = path.join(this.$projectData.projectDir, file + ".map"); - let row = parseInt(parts[1]); - let column = parseInt(parts[2]); - if (this.$fs.exists(sourceMapFile).wait()) { - let sourceMap = this.$fs.readText(sourceMapFile, "utf8").wait(); - let smc = new sourcemap.SourceMapConsumer(sourceMap); - let originalPosition = smc.originalPositionFor({line:row,column:column}); - data = data.substring(0, fileIndex + fileString.length) - + file.replace(".js", ".ts") + ":" - + originalPosition.line + ":" - + originalPosition.column; - for (let i = 3; i