From 657faee915ecc57d4eee246b7d985dd9dbaedb18 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Sun, 28 Jun 2020 15:09:07 +0200 Subject: [PATCH] Update to latest loader.js --- src/vs/loader.js | 43 ++++++++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/src/vs/loader.js b/src/vs/loader.js index e81ef52603f..5a28455df11 100644 --- a/src/vs/loader.js +++ b/src/vs/loader.js @@ -624,17 +624,34 @@ var AMDLoader; script.addEventListener('error', errorEventListener); }; BrowserScriptLoader.prototype.load = function (moduleManager, scriptSrc, callback, errorback) { - var script = document.createElement('script'); - script.setAttribute('async', 'async'); - script.setAttribute('type', 'text/javascript'); - this.attachListeners(script, callback, errorback); - script.setAttribute('src', scriptSrc); - // Propagate CSP nonce to dynamically created script tag. - var cspNonce = moduleManager.getConfig().getOptionsLiteral().cspNonce; - if (cspNonce) { - script.setAttribute('nonce', cspNonce); + if (/^node\|/.test(scriptSrc)) { + var opts = moduleManager.getConfig().getOptionsLiteral(); + var nodeRequire = (opts.nodeRequire || AMDLoader.global.nodeRequire); + var pieces = scriptSrc.split('|'); + var moduleExports_1 = null; + try { + moduleExports_1 = nodeRequire(pieces[1]); + } + catch (err) { + errorback(err); + return; + } + moduleManager.enqueueDefineAnonymousModule([], function () { return moduleExports_1; }); + callback(); + } + else { + var script = document.createElement('script'); + script.setAttribute('async', 'async'); + script.setAttribute('type', 'text/javascript'); + this.attachListeners(script, callback, errorback); + script.setAttribute('src', scriptSrc); + // Propagate CSP nonce to dynamically created script tag. + var cspNonce = moduleManager.getConfig().getOptionsLiteral().cspNonce; + if (cspNonce) { + script.setAttribute('nonce', cspNonce); + } + document.getElementsByTagName('head')[0].appendChild(script); } - document.getElementsByTagName('head')[0].appendChild(script); }; return BrowserScriptLoader; }()); @@ -742,15 +759,15 @@ var AMDLoader; var recorder = moduleManager.getRecorder(); if (/^node\|/.test(scriptSrc)) { var pieces = scriptSrc.split('|'); - var moduleExports_1 = null; + var moduleExports_2 = null; try { - moduleExports_1 = nodeRequire(pieces[1]); + moduleExports_2 = nodeRequire(pieces[1]); } catch (err) { errorback(err); return; } - moduleManager.enqueueDefineAnonymousModule([], function () { return moduleExports_1; }); + moduleManager.enqueueDefineAnonymousModule([], function () { return moduleExports_2; }); callback(); } else {