diff --git a/scripts/importTypescript.js b/scripts/importTypescript.js index cade4cb..85820b5 100644 --- a/scripts/importTypescript.js +++ b/scripts/importTypescript.js @@ -34,10 +34,24 @@ const TYPESCRIPT_LIB_DESTINATION = path.join(__dirname, '../src/lib'); tsServices.replace(/\n ts\.sys =([^]*)\n \}\)\(\);/m, `\n // MONACOCHANGE\n ts.sys = undefined;\n // END MONACOCHANGE`) ); - // Eliminate another require() call... + // Eliminate more require() calls... tsServices = ( tsServices.replace(/return require\(fileNameToRequire\);/, `// MONACOCHANGE\n return undefined;\n // END MONACOCHANGE`) ); + tsServices = tsServices.replace(/^( +)etwModule = require\(.*$/m, '$1// MONACOCHANGE\n$1etwModule = undefined;\n$1// END MONACOCHANGE'); + + // Flag any new require calls (outside comments) so they can be corrected preemptively. + // To avoid missing cases (or using an even more complex regex), temporarily remove comments + // about require() and then check for lines actually calling require(). + // \/[*/] matches the start of a comment (single or multi-line). + // ^\s+\*[^/] matches (presumably) a later line of a multi-line comment. + const tsServicesNoCommentedRequire = tsServices.replace(/(\/[*/]|^\s+\*[^/]).*\brequire\(.*/gm, ''); + const linesWithRequire = tsServicesNoCommentedRequire.match(/^.*?\brequire\(.*$/gm); + if (linesWithRequire && linesWithRequire.length) { + console.error('Found new require() calls on the following lines. These should be removed to avoid breaking webpack builds.\n'); + console.error(linesWithRequire.join('\n')); + process.exit(1); + } // Make sure process.args don't get called in the browser, this // should only happen in TS 2.6.2 diff --git a/src/lib/typescriptServices-amd.js b/src/lib/typescriptServices-amd.js index 3b94917..79c5026 100644 --- a/src/lib/typescriptServices-amd.js +++ b/src/lib/typescriptServices-amd.js @@ -2417,7 +2417,9 @@ var ts; try { // require() will throw an exception if the module is not installed // It may also return undefined if not installed properly - etwModule = require("@microsoft/typescript-etw"); // tslint:disable-line:no-implicit-dependencies + // MONACOCHANGE + etwModule = undefined; + // END MONACOCHANGE } catch (e) { etwModule = undefined; diff --git a/src/lib/typescriptServices.js b/src/lib/typescriptServices.js index 98b7558..5c60255 100644 --- a/src/lib/typescriptServices.js +++ b/src/lib/typescriptServices.js @@ -2417,7 +2417,9 @@ var ts; try { // require() will throw an exception if the module is not installed // It may also return undefined if not installed properly - etwModule = require("@microsoft/typescript-etw"); // tslint:disable-line:no-implicit-dependencies + // MONACOCHANGE + etwModule = undefined; + // END MONACOCHANGE } catch (e) { etwModule = undefined; diff --git a/src/lib/typescriptServicesMetadata.ts b/src/lib/typescriptServicesMetadata.ts index 433e642..ce50d80 100644 --- a/src/lib/typescriptServicesMetadata.ts +++ b/src/lib/typescriptServicesMetadata.ts @@ -1 +1 @@ -export const typescriptVersion = "3.5.1"; +export const typescriptVersion = "3.6.2";