diff options
author | Florian Dold <florian.dold@gmail.com> | 2016-10-10 03:50:11 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2016-10-10 03:50:11 +0200 |
commit | de4628b3a7e7618681a76c01d00c1632a96688cf (patch) | |
tree | 49d4d97cf1c591b8567c83aa2469522f7fa57d27 /thirdparty/systemjs/lib/cjs-helpers.js | |
parent | 7989859ed6520d4e8d18f48545e5998bf66e253c (diff) | |
parent | 9af485a584e47fd503ed5c62b9f6482574715f1e (diff) |
Merge commit '9af485a584e47fd503ed5c62b9f6482574715f1e' as 'thirdparty/systemjs'
Diffstat (limited to 'thirdparty/systemjs/lib/cjs-helpers.js')
-rw-r--r-- | thirdparty/systemjs/lib/cjs-helpers.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/thirdparty/systemjs/lib/cjs-helpers.js b/thirdparty/systemjs/lib/cjs-helpers.js new file mode 100644 index 000000000..0ae08d612 --- /dev/null +++ b/thirdparty/systemjs/lib/cjs-helpers.js @@ -0,0 +1,43 @@ +hookConstructor(function(constructor) { + return function() { + var loader = this; + constructor.call(loader); + + if (typeof window != 'undefined' && typeof document != 'undefined' && window.location) + var windowOrigin = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : ''); + + function stripOrigin(path) { + if (path.substr(0, 8) == 'file:///') + return path.substr(7 + !!isWindows); + + if (windowOrigin && path.substr(0, windowOrigin.length) == windowOrigin) + return path.substr(windowOrigin.length); + + return path; + } + + loader.set('@@cjs-helpers', loader.newModule({ + requireResolve: function(request, parentId) { + return stripOrigin(loader.normalizeSync(request, parentId)); + }, + getPathVars: function(moduleId) { + // remove any plugin syntax + var pluginIndex = moduleId.lastIndexOf('!'); + var filename; + if (pluginIndex != -1) + filename = moduleId.substr(0, pluginIndex); + else + filename = moduleId; + + var dirname = filename.split('/'); + dirname.pop(); + dirname = dirname.join('/'); + + return { + filename: stripOrigin(filename), + dirname: stripOrigin(dirname) + }; + } + })) + }; +});
\ No newline at end of file |