meteor-typescript
Advanced tools
@@ -96,4 +96,10 @@ var assert = require("assert"); | ||
function isRequire(code, offset) { | ||
return code.substr(offset - 9, 7) === 'require'; | ||
return code.substr(offset - 8, 7) === 'require'; | ||
} | ||
function buildPathRegExp(modulePath) { | ||
var regExp = new RegExp("(\\(\"|\')(" + modulePath + ")(\"|\')", "g"); | ||
return regExp; | ||
} | ||
for (var usedPath in mappings) { | ||
@@ -103,24 +109,11 @@ var module = mappings[usedPath]; | ||
if (module.external) { | ||
var regExp = new RegExp("(/" + usedPath + ")", "g"); | ||
code = code.replace(regExp, function(match, p1, offset) { | ||
if (isRequire(code, offset)) { | ||
return usedPath; | ||
} | ||
return match; | ||
}); | ||
if (usedPath.indexOf('apollo-client') !== -1) { | ||
Logger.assert("%s", code); | ||
} | ||
continue; | ||
} | ||
if (module.external) continue; | ||
var modulePath = ts.removeFileExtension(resolvedPath); | ||
// Fix some weird v2.1.1 bug where | ||
// LanguageService converts dotted paths | ||
// to relative in the code. | ||
var regExp = new RegExp("(" + modulePath + ")", "g"); | ||
code = code.replace(regExp, function(match, p1, offset) { | ||
var regExp = buildPathRegExp(resolvedPath); | ||
code = code.replace(regExp, function(match, p1, p2, p3, offset) { | ||
if (isRequire(code, offset)) { | ||
return tsu.getRootedPath(modulePath); | ||
return p1 + tsu.getRootedPath(resolvedPath) + p3; | ||
} | ||
@@ -132,6 +125,6 @@ return match; | ||
if (! usedPath.startsWith(".")) { | ||
regExp = new RegExp("(" + usedPath + ")", "g"); | ||
code = code.replace(regExp, function(match, p1, offset) { | ||
var regExp = buildPathRegExp(usedPath); | ||
code = code.replace(regExp, function(match, p1, p2, p3, offset) { | ||
if (isRequire(code, offset)) { | ||
return tsu.getRootedPath(modulePath); | ||
return p1 + tsu.getRootedPath(resolvedPath) + p3; | ||
} | ||
@@ -138,0 +131,0 @@ return match; |
{ | ||
"name": "meteor-typescript", | ||
"author": "@barbatus", | ||
"version": "0.7.7-beta.8", | ||
"version": "0.7.7-beta.9", | ||
"license": "MIT", | ||
@@ -6,0 +6,0 @@ "description": "TypeScript wrapper package for use with Meteor", |
@@ -117,3 +117,4 @@ var assert = require("assert"); | ||
mappings[modulePath] = { | ||
resolvedPath: module.resolvedFileName, | ||
resolvedPath: ts.removeFileExtension( | ||
module.resolvedFileName), | ||
external: module.isExternalLibraryImport | ||
@@ -120,0 +121,0 @@ }; |
61207
-0.33%1730
-0.46%