@cara/porter
Advanced tools
Comparing version 4.0.0-beta.14 to 4.0.0-beta.15
@@ -74,3 +74,3 @@ /* eslint-env browser */ | ||
try { | ||
importScripts(url); | ||
importScripts(new URL(url, location.origin).toString()); | ||
} catch (err) { | ||
@@ -143,3 +143,3 @@ return callback(err); | ||
// loader.js might be required to run in legacy browser hence async/await not used | ||
fetch(uri) | ||
fetch(new URL(uri, location.origin)) | ||
.then(function onResponse(module) { | ||
@@ -464,9 +464,10 @@ return loadWasm(module, imports); | ||
var parent = parseId(context); | ||
if (!parent.version) Object.assign(parent, pkg, { file: context }); | ||
var parentMap = lock[parent.name][parent.version]; | ||
var parentMap = parent.version | ||
? lock[parent.name][parent.version] | ||
: lock[pkg.name][pkg.version]; | ||
if (parent.name === pkg.name) { | ||
if (!parent.version) { | ||
for (const key in alias) { | ||
if (specifier.startsWith(key)) { | ||
specifier = resolve(parent.name, parent.version, alias[key] + specifier.slice(key.length)); | ||
if (specifier.indexOf(key) === 0) { | ||
specifier = alias[key] + specifier.slice(key.length); | ||
break; | ||
@@ -483,27 +484,28 @@ } | ||
var mod = specifier.charAt(0) == '.' | ||
? parseId(resolve(parent.name, parent.version, dirname(parent.file), specifier)) | ||
: parseId(specifier); | ||
if (!(mod.name in lock)) { | ||
mod = { name: pkg.name, version: pkg.version, file: specifier }; | ||
} | ||
var id = specifier.charAt(0) == '.' | ||
? resolve(dirname(context), specifier) | ||
: specifier; | ||
var mod = parseId(id); | ||
var name = mod.name; | ||
var version = mod.version; | ||
var map; | ||
var file = mod.file; | ||
if (version) { | ||
map = lock[name][version]; | ||
} | ||
if (!version) { | ||
if (parentMap && parentMap.dependencies && (name in parentMap.dependencies)) { | ||
// import dependency | ||
version = parentMap.dependencies[name]; | ||
} | ||
else if (name == pkg.name) { | ||
} else if (name === pkg.name) { | ||
// import itself as dependency, see demo-components/test/suite.js | ||
version = pkg.version; | ||
} else { | ||
// import itself by file | ||
name = pkg.name; | ||
version = pkg.version; | ||
file = id; | ||
} | ||
} | ||
map = lock[name][version]; | ||
var file = mod.file || map.main || 'index.js'; | ||
var map = lock[name][version]; | ||
file = file || map.main || 'index.js'; | ||
if (map.browser) { | ||
@@ -519,5 +521,3 @@ let result = map.browser['./' + file]; | ||
// root entry might still in id format when loading web worker from dependencies | ||
return name !== pkg.name || location.pathname.includes([ name, version ].join('/')) | ||
? resolve(name, version, file) | ||
: file; | ||
return name !== pkg.name || mod.version ? resolve(name, version, file) : file; | ||
}; | ||
@@ -561,5 +561,9 @@ | ||
return function(id) { | ||
var url = parseUri(resolve(context, suffix(id))); | ||
var url = new URL(parseUri(resolve(context, suffix(id))), location.origin); | ||
return function createWorker() { | ||
return new Worker([url, 'main'].join(url.indexOf('?') > 0 ? '&' : '?')); | ||
url.searchParams.set('main', ''); | ||
var blob = new Blob([ 'importScripts("' + url.toString() + '")' ], { | ||
type: 'application/javascript', | ||
}); | ||
return new Worker(URL.createObjectURL(blob)); | ||
}; | ||
@@ -574,4 +578,3 @@ }; | ||
specifiers = preload.concat(specifiers).map(function(specifier) { | ||
var mod = parseId(specifier); | ||
return suffix(mod.version && !registry[specifier] ? mod.file : specifier); | ||
return suffix(specifier); | ||
}); | ||
@@ -578,0 +581,0 @@ rootImport(specifiers, function() { |
{ | ||
"name": "@cara/porter", | ||
"description": "A middleware for web modules", | ||
"version": "4.0.0-beta.14", | ||
"version": "4.0.0-beta.15", | ||
"main": "src/porter.js", | ||
@@ -43,3 +43,3 @@ "repository": { | ||
"license": "BSD-3-Clause", | ||
"gitHead": "8da9f4dc97f8e7808eebd1b1efdac606c6a610ba" | ||
"gitHead": "6ab0f14aced5f65185b01010bb8d87421e6f9e32" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
117494
3085