UNPKG

systemjs-cjs-extra

Version:

An extra for SystemJS 6 to load CommonJS modules in the browser

1 lines 15.4 kB
{"version":3,"file":"index.js","sources":["../src/constants.js","../src/utils.js","../src/index.js"],"sourcesContent":["export const CJS_REQUIRE_REGEX =\n /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.\"'])require\\s*\\(\\s*(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'|`[^`\\\\]*(?:\\\\.[^`\\\\]*)*`)\\s*\\)/g;\nexport const AMD_MODULE_REGEX =\n /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.])define\\s*\\(\\s*(\"[^\"]+\"\\s*,\\s*|'[^']+'\\s*,\\s*)?\\s*(\\[(\\s*((\"[^\"]+\"|'[^']+')\\s*,|\\/\\/.*\\r?\\n|\\/\\*(.|\\s)*?\\*\\/))*(\\s*(\"[^\"]+\"|'[^']+')\\s*,?)?(\\s*(\\/\\/.*\\r?\\n|\\/\\*(.|\\s)*?\\*\\/))*\\s*\\]|function\\s*|{|[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*\\))/;\nexport const CJS_EXPORTS_REGEX =\n /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.])(exports\\s*(\\[['\"]|\\.)|module(\\.exports|\\['exports'\\]|\\[\"exports\"\\])\\s*(\\[['\"]|[=,\\.]))/;\nexport const CJS_FILEDIR_REGEX = /__filename|__dirname]/;\nexport const COMMENT_REGEX = /(^|[^\\\\])(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg;\nexport const STRING_REGEX = /(\"[^\"\\\\\\n\\r]*(\\\\.[^\"\\\\\\n\\r]*)*\"|'[^'\\\\\\n\\r]*(\\\\.[^'\\\\\\n\\r]*)*')/g;\nexport const JAVASCRIPT_REGEX = /^[^#?]+\\.js([?#].*)?$/;\nexport const JS_CONTENT_TYPE_REGEX = /^(text|application)\\/(x-)?javascript(;|$)/;\n","import {\n AMD_MODULE_REGEX,\n CJS_EXPORTS_REGEX,\n CJS_FILEDIR_REGEX,\n CJS_REQUIRE_REGEX,\n COMMENT_REGEX,\n STRING_REGEX,\n} from \"./constants\";\n\nexport function isCJSFormat(source) {\n return (\n !AMD_MODULE_REGEX.test(source) &&\n (CJS_REQUIRE_REGEX.test(source) ||\n CJS_EXPORTS_REGEX.test(source) ||\n CJS_FILEDIR_REGEX.test(source))\n );\n}\n\nexport function errMsg(errCode, msg) {\n return (\n (msg || \"\") +\n \" (SystemJS Error#\" +\n errCode +\n \" \" +\n \"https://github.com/systemjs/systemjs/blob/main/docs/errors.md#\" +\n errCode +\n \")\"\n );\n}\n\nexport function getPathVars(url) {\n const filename = url.substring(url.lastIndexOf(\"/\") + 1);\n let dirname = url.split(\"/\");\n dirname.pop();\n dirname = dirname.join(\"/\");\n\n return {\n filename,\n dirname,\n };\n}\n\nexport function extractDepsFromSource(source) {\n CJS_REQUIRE_REGEX.lastIndex =\n COMMENT_REGEX.lastIndex =\n STRING_REGEX.lastIndex =\n 0;\n let depIndentifiers = [];\n let stringLocations = [];\n let commentLocations = [];\n let match;\n\n if (source.length / source.split(\"\\n\").length < 200) {\n while ((match = STRING_REGEX.exec(source))) {\n stringLocations.push([match.index, match.index + match[0].length]);\n }\n\n while ((match = COMMENT_REGEX.exec(source))) {\n // only track comments not starting in strings\n if (!inLocation(stringLocations, match)) {\n commentLocations.push([\n match.index + match[1].length,\n match.index + match[0].length - 1,\n ]);\n }\n }\n }\n\n while ((match = CJS_REQUIRE_REGEX.exec(source))) {\n // ensure we're not within a string or comment location\n if (\n !inLocation(stringLocations, match) &&\n !inLocation(commentLocations, match)\n ) {\n var dep = match[1].substring(1, match[1].length - 1);\n // skip cases like require('\" + file + \"')\n if (dep.match(/\"|'/)) {\n continue;\n }\n depIndentifiers.push(dep);\n }\n }\n\n return depIndentifiers;\n}\n\nfunction inLocation(locations, match) {\n for (var i = 0; i < locations.length; i++) {\n if (locations[i][0] < match.index && locations[i][1] > match.index) {\n return true;\n }\n }\n return false;\n}\n\nexport function template(source) {\n return `(function (module,exports,require,__filename,__dirname, global, GLOBAL) {\n${source}\n}).apply(__cjsWrapper.exports, __cjsWrapper.args)`;\n}\n\nexport function createRequire(loader, parentUrl) {\n return function require(id) {\n const resolvedUrl = loader.resolve(id, parentUrl);\n const module = loader.get(resolvedUrl);\n\n if (!module) {\n throw new Error(\n 'Module not already loaded loading \"' +\n id +\n '\" as ' +\n resolvedUrl +\n (parentUrl ? ' from \"' + parentUrl + '\".' : \".\"),\n );\n }\n\n return \"__useDefault\" in module ? module.default : module;\n };\n}\n","import {\n createRequire,\n extractDepsFromSource,\n getPathVars,\n template,\n isCJSFormat,\n errMsg,\n} from \"./utils\";\n\nimport { JAVASCRIPT_REGEX, JS_CONTENT_TYPE_REGEX } from \"./constants\";\n\nimport global from \"global\";\n\nconst systemJSPrototype = global.System.constructor.prototype;\nconst originalInstantiate = systemJSPrototype.instantiate;\nconst originalShouldFetch =\n systemJSPrototype.shouldFetch.bind(systemJSPrototype);\n\nsystemJSPrototype.shouldFetch = function (url) {\n return originalShouldFetch(url) || JAVASCRIPT_REGEX.test(url);\n};\n\nsystemJSPrototype.instantiate = function (url, parentUrl, meta) {\n const isJavascriptFile = JAVASCRIPT_REGEX.test(url);\n\n if (!this.shouldFetch(url)) {\n return originalInstantiate.call(this, url, parentUrl, meta);\n }\n\n if (isJavascriptFile) {\n return systemJSPrototype\n .fetch(url, {\n credentials: \"same-origin\",\n meta: meta,\n })\n .then((res) => {\n if (!res.ok) {\n throw Error(\n errMsg(\n 7,\n res.status +\n \" \" +\n res.statusText +\n \", loading \" +\n url +\n (parentUrl ? \" from \" + parentUrl : \"\"),\n ),\n );\n }\n const contentType = res.headers.get(\"content-type\");\n\n if (!contentType || !JS_CONTENT_TYPE_REGEX.test(contentType)) {\n throw Error(\n errMsg(\n 4,\n 'Unknown Content-Type \"' +\n contentType +\n '\", loading ' +\n url +\n (parentUrl ? \" from \" + parentUrl : \"\"),\n ),\n );\n }\n\n return res.text().then((source) => {\n if (isCJSFormat(source)) {\n const exports = {};\n const module = { exports };\n const require = createRequire(this, parentUrl ?? url);\n const dependencies = extractDepsFromSource(source);\n\n // Import all dependencies into the SystemJS registry\n const depsPromises = dependencies.map((dep) =>\n global.System.import(dep, parentUrl ?? url),\n );\n\n // Make sure all deps are loaded before attempting to exec the module\n // otherwise \"require\" will fail at System.get\n return Promise.all(depsPromises).then(() => {\n let _src = template(source);\n\n if (_src.indexOf(\"//# sourceURL=\") < 0) {\n _src += \"\\n//# sourceURL=\" + url;\n }\n\n const { filename, dirname } = getPathVars(url);\n global.__cjsWrapper = {\n exports,\n args: [\n module,\n exports,\n require,\n filename,\n dirname,\n global,\n global,\n ],\n };\n // exec the code to capture exports.\n (0, eval)(_src);\n\n global.__cjsWrapper = undefined;\n\n // Create a System.register format and pass the dependencies\n // and module exports.\n systemJSPrototype.register(dependencies, function (_export) {\n return {\n setters: [],\n execute: function () {\n _export(module.exports);\n _export(\"default\", module.exports);\n },\n };\n });\n\n // Return the new module\n return systemJSPrototype.getRegister(url);\n });\n } else {\n // If not a CommonJS module, use default behavior\n if (source.indexOf(\"//# sourceURL=\") < 0) {\n source += \"\\n//# sourceURL=\" + url;\n }\n (0, eval)(source);\n return systemJSPrototype.getRegister(url);\n }\n });\n });\n }\n\n // If not a JS file, use default behavior\n return originalInstantiate.call(this, url, parentUrl, meta);\n};\n"],"names":[],"mappings":"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"}