@module-federation/sdk
Advanced tools
Comparing version 1.0.0-canary.3 to 1.1.0-canary.1
305
index.cjs.js
@@ -212,2 +212,3 @@ 'use strict'; | ||
} | ||
var LOG_CATEGORY = "[ Federation Runtime ]"; | ||
// entry: name:version version : 1.0.0 | ^1.2.3 | ||
@@ -222,3 +223,3 @@ // entry: name:entry entry: https://localhost:9000/federation-manifest.json | ||
}; | ||
// startWith type | ||
// Check if the string starts with a type | ||
if (strSplit.length >= 2) { | ||
@@ -233,3 +234,3 @@ var _strSplit = _to_array(strSplit), name = _strSplit[0], versionOrEntryArr = _strSplit.slice(1); | ||
} else { | ||
// version rule | ||
// Apply version rule | ||
// devVersionOrUrl => inputVersion => defaultVersion | ||
@@ -305,3 +306,3 @@ return { | ||
if (expose === ".") { | ||
expose = "defautl_export"; | ||
expose = "default_export"; | ||
} | ||
@@ -319,2 +320,25 @@ if (expose.startsWith("./")) { | ||
}; | ||
var getResourceUrl = function(module, sourceUrl) { | ||
if ("getPublicPath" in module) { | ||
var publicPath = new Function(module.getPublicPath)(); | ||
return "".concat(publicPath).concat(sourceUrl); | ||
} else if ("publicPath" in module) { | ||
return "".concat(module.publicPath).concat(sourceUrl); | ||
} else { | ||
console.warn("Can not get resource url, if in debug mode, please ignore", module, sourceUrl); | ||
return ""; | ||
} | ||
}; | ||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types | ||
var assert = function(condition, msg) { | ||
if (!condition) { | ||
error(msg); | ||
} | ||
}; | ||
var error = function(msg) { | ||
throw new Error("".concat(LOG_CATEGORY, ": ").concat(msg)); | ||
}; | ||
var warn = function(msg) { | ||
console.warn("".concat(LOG_CATEGORY, ": ").concat(msg)); | ||
}; | ||
@@ -402,6 +426,7 @@ function _define_property(obj, key, value) { | ||
}; | ||
// 优先级:overrides > remotes | ||
// Priority: overrides > remotes | ||
// eslint-disable-next-line max-lines-per-function | ||
function generateSnapshotFromManifest(manifest) { | ||
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; | ||
var _manifest_metaData; | ||
var _options_remotes = options.remotes, remotes = _options_remotes === void 0 ? {} : _options_remotes, _options_overrides = options.overrides, overrides = _options_overrides === void 0 ? {} : _options_overrides, version = options.version; | ||
@@ -418,3 +443,3 @@ var remoteSnapshot; | ||
var remotesInfo = {}; | ||
// If remotes are not passed, only the remotes in the manifest will be read | ||
// If remotes are not provided, only the remotes in the manifest will be read | ||
if (!Object.keys(remotes).length) { | ||
@@ -425,3 +450,3 @@ var _manifest_remotes; | ||
var name = next.federationContainerName; | ||
// overrides has hight priority | ||
// overrides have higher priority | ||
if (overridesKeys.includes(name)) { | ||
@@ -442,3 +467,3 @@ matchedVersion = overrides[name]; | ||
} | ||
// If remotes (deploy scenario) are specified, you need to traverse it again | ||
// If remotes (deploy scenario) are specified, they need to be traversed again | ||
Object.keys(remotes).forEach(function(key) { | ||
@@ -450,3 +475,3 @@ return remotesInfo[key] = { | ||
}); | ||
var _manifest_metaData = manifest.metaData, _manifest_metaData_remoteEntry = _manifest_metaData.remoteEntry, remoteEntryPath = _manifest_metaData_remoteEntry.path, remoteEntryName = _manifest_metaData_remoteEntry.name, remoteEntryType = _manifest_metaData_remoteEntry.type, remoteTypes = _manifest_metaData.types, buildVersion = _manifest_metaData.buildInfo.buildVersion, globalName = _manifest_metaData.globalName; | ||
var _manifest_metaData1 = manifest.metaData, _manifest_metaData_remoteEntry = _manifest_metaData1.remoteEntry, remoteEntryPath = _manifest_metaData_remoteEntry.path, remoteEntryName = _manifest_metaData_remoteEntry.name, remoteEntryType = _manifest_metaData_remoteEntry.type, remoteTypes = _manifest_metaData1.types, buildVersion = _manifest_metaData1.buildInfo.buildVersion, globalName = _manifest_metaData1.globalName; | ||
var exposes = manifest.exposes; | ||
@@ -475,2 +500,9 @@ var basicRemoteSnapshot = { | ||
}; | ||
if ((_manifest_metaData = manifest.metaData) === null || _manifest_metaData === void 0 ? void 0 : _manifest_metaData.prefetchEntry) { | ||
var _manifest_metaData_prefetchEntry = manifest.metaData.prefetchEntry, path = _manifest_metaData_prefetchEntry.path, name = _manifest_metaData_prefetchEntry.name, type = _manifest_metaData_prefetchEntry.type; | ||
basicRemoteSnapshot = _object_spread_props(_object_spread({}, basicRemoteSnapshot), { | ||
prefetchEntry: simpleJoinRemoteEntry(path, name), | ||
prefetchEntryType: type | ||
}); | ||
} | ||
if ("publicPath" in manifest.metaData) { | ||
@@ -495,2 +527,251 @@ remoteSnapshot = _object_spread_props(_object_spread({}, basicRemoteSnapshot), { | ||
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { | ||
try { | ||
var info = gen[key](arg); | ||
var value = info.value; | ||
} catch (error) { | ||
reject(error); | ||
return; | ||
} | ||
if (info.done) { | ||
resolve(value); | ||
} else { | ||
Promise.resolve(value).then(_next, _throw); | ||
} | ||
} | ||
function _async_to_generator(fn) { | ||
return function() { | ||
var self = this, args = arguments; | ||
return new Promise(function(resolve, reject) { | ||
var gen = fn.apply(self, args); | ||
function _next(value) { | ||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); | ||
} | ||
function _throw(err) { | ||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); | ||
} | ||
_next(undefined); | ||
}); | ||
}; | ||
} | ||
function _instanceof(left, right) { | ||
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { | ||
return !!right[Symbol.hasInstance](left); | ||
} else { | ||
return left instanceof right; | ||
} | ||
} | ||
function _ts_generator(thisArg, body) { | ||
var f, y, t, g, _ = { | ||
label: 0, | ||
sent: function() { | ||
if (t[0] & 1) throw t[1]; | ||
return t[1]; | ||
}, | ||
trys: [], | ||
ops: [] | ||
}; | ||
return g = { | ||
next: verb(0), | ||
"throw": verb(1), | ||
"return": verb(2) | ||
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() { | ||
return this; | ||
}), g; | ||
function verb(n) { | ||
return function(v) { | ||
return step([ | ||
n, | ||
v | ||
]); | ||
}; | ||
} | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while(_)try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [ | ||
op[0] & 2, | ||
t.value | ||
]; | ||
switch(op[0]){ | ||
case 0: | ||
case 1: | ||
t = op; | ||
break; | ||
case 4: | ||
_.label++; | ||
return { | ||
value: op[1], | ||
done: false | ||
}; | ||
case 5: | ||
_.label++; | ||
y = op[1]; | ||
op = [ | ||
0 | ||
]; | ||
continue; | ||
case 7: | ||
op = _.ops.pop(); | ||
_.trys.pop(); | ||
continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { | ||
_ = 0; | ||
continue; | ||
} | ||
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { | ||
_.label = op[1]; | ||
break; | ||
} | ||
if (op[0] === 6 && _.label < t[1]) { | ||
_.label = t[1]; | ||
t = op; | ||
break; | ||
} | ||
if (t && _.label < t[2]) { | ||
_.label = t[2]; | ||
_.ops.push(op); | ||
break; | ||
} | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); | ||
continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { | ||
op = [ | ||
6, | ||
e | ||
]; | ||
y = 0; | ||
} finally{ | ||
f = t = 0; | ||
} | ||
if (op[0] & 5) throw op[1]; | ||
return { | ||
value: op[0] ? op[1] : void 0, | ||
done: true | ||
}; | ||
} | ||
} | ||
// eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
function safeWrapper(callback, disableWarn) { | ||
return _safeWrapper.apply(this, arguments); | ||
} | ||
function _safeWrapper() { | ||
_safeWrapper = _async_to_generator(function(callback, disableWarn) { | ||
var res, e; | ||
return _ts_generator(this, function(_state) { | ||
switch(_state.label){ | ||
case 0: | ||
_state.trys.push([ | ||
0, | ||
2, | ||
, | ||
3 | ||
]); | ||
return [ | ||
4, | ||
callback() | ||
]; | ||
case 1: | ||
res = _state.sent(); | ||
return [ | ||
2, | ||
res | ||
]; | ||
case 2: | ||
e = _state.sent(); | ||
!disableWarn && warn(e); | ||
return [ | ||
2 | ||
]; | ||
case 3: | ||
return [ | ||
2 | ||
]; | ||
} | ||
}); | ||
}); | ||
return _safeWrapper.apply(this, arguments); | ||
} | ||
function isStaticResourcesEqual(url1, url2) { | ||
var REG_EXP = /^(https?:)?\/\//i; | ||
// Transform url1 and url2 into relative paths | ||
var relativeUrl1 = url1.replace(REG_EXP, "").replace(/\/$/, ""); | ||
var relativeUrl2 = url2.replace(REG_EXP, "").replace(/\/$/, ""); | ||
// Check if the relative paths are identical | ||
return relativeUrl1 === relativeUrl2; | ||
} | ||
function createScript(url, cb, attrs, createScriptHook) { | ||
// Retrieve the existing script element by its src attribute | ||
var script = null; | ||
var needAttach = true; | ||
var scripts = document.getElementsByTagName("script"); | ||
for(var i = 0; i < scripts.length; i++){ | ||
var s = scripts[i]; | ||
var scriptSrc = s.getAttribute("src"); | ||
if (scriptSrc && isStaticResourcesEqual(scriptSrc, url)) { | ||
script = s; | ||
needAttach = false; | ||
break; | ||
} | ||
} | ||
if (!script) { | ||
script = document.createElement("script"); | ||
script.type = "text/javascript"; | ||
script.src = url; | ||
if (createScriptHook) { | ||
var createScriptRes = createScriptHook(url); | ||
if (_instanceof(createScriptRes, HTMLScriptElement)) { | ||
script = createScriptRes; | ||
} | ||
} | ||
} | ||
if (attrs) { | ||
Object.keys(attrs).forEach(function(name) { | ||
if (script) { | ||
if (name === "async" || name === "defer") { | ||
script[name] = attrs[name]; | ||
} else { | ||
script.setAttribute(name, attrs[name]); | ||
} | ||
} | ||
}); | ||
} | ||
var onScriptComplete = function(prev, // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
event) { | ||
// Prevent memory leaks in IE. | ||
if (script) { | ||
script.onerror = null; | ||
script.onload = null; | ||
safeWrapper(function() { | ||
(script === null || script === void 0 ? void 0 : script.parentNode) && script.parentNode.removeChild(script); | ||
}); | ||
if (prev) { | ||
// eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
var res = prev(event); | ||
cb(); | ||
return res; | ||
} | ||
} | ||
cb(); | ||
}; | ||
script.onerror = onScriptComplete.bind(null, script.onerror); | ||
script.onload = onScriptComplete.bind(null, script.onload); | ||
return { | ||
script: script, | ||
needAttach: needAttach | ||
}; | ||
} | ||
function loadScript(url, info) { | ||
var attrs = info.attrs, createScriptHook = info.createScriptHook; | ||
return new Promise(function(resolve, _reject) { | ||
var _createScript = createScript(url, resolve, attrs, createScriptHook), script = _createScript.script, needAttach = _createScript.needAttach; | ||
needAttach && document.getElementsByTagName("head")[0].appendChild(script); | ||
}); | ||
} | ||
exports.BROWSER_LOG_KEY = BROWSER_LOG_KEY; | ||
@@ -505,5 +786,8 @@ exports.BROWSER_LOG_VALUE = BROWSER_LOG_VALUE; | ||
exports.SEPARATOR = SEPARATOR; | ||
exports.assert = assert; | ||
exports.composeKeyWithSeparator = composeKeyWithSeparator; | ||
exports.createScript = createScript; | ||
exports.decodeName = decodeName; | ||
exports.encodeName = encodeName; | ||
exports.error = error; | ||
exports.generateExposeFilename = generateExposeFilename; | ||
@@ -513,6 +797,11 @@ exports.generateShareFilename = generateShareFilename; | ||
exports.getProcessEnv = getProcessEnv; | ||
exports.getResourceUrl = getResourceUrl; | ||
exports.isBrowserEnv = isBrowserEnv; | ||
exports.isDebugMode = isDebugMode; | ||
exports.isManifestProvider = isManifestProvider; | ||
exports.isStaticResourcesEqual = isStaticResourcesEqual; | ||
exports.loadScript = loadScript; | ||
exports.logger = logger; | ||
exports.parseEntry = parseEntry; | ||
exports.safeWrapper = safeWrapper; | ||
exports.warn = warn; |
299
index.esm.js
@@ -208,2 +208,3 @@ function _define_property$2(obj, key, value) { | ||
} | ||
var LOG_CATEGORY = "[ Federation Runtime ]"; | ||
// entry: name:version version : 1.0.0 | ^1.2.3 | ||
@@ -218,3 +219,3 @@ // entry: name:entry entry: https://localhost:9000/federation-manifest.json | ||
}; | ||
// startWith type | ||
// Check if the string starts with a type | ||
if (strSplit.length >= 2) { | ||
@@ -229,3 +230,3 @@ var _strSplit = _to_array(strSplit), name = _strSplit[0], versionOrEntryArr = _strSplit.slice(1); | ||
} else { | ||
// version rule | ||
// Apply version rule | ||
// devVersionOrUrl => inputVersion => defaultVersion | ||
@@ -301,3 +302,3 @@ return { | ||
if (expose === ".") { | ||
expose = "defautl_export"; | ||
expose = "default_export"; | ||
} | ||
@@ -315,2 +316,25 @@ if (expose.startsWith("./")) { | ||
}; | ||
var getResourceUrl = function(module, sourceUrl) { | ||
if ("getPublicPath" in module) { | ||
var publicPath = new Function(module.getPublicPath)(); | ||
return "".concat(publicPath).concat(sourceUrl); | ||
} else if ("publicPath" in module) { | ||
return "".concat(module.publicPath).concat(sourceUrl); | ||
} else { | ||
console.warn("Can not get resource url, if in debug mode, please ignore", module, sourceUrl); | ||
return ""; | ||
} | ||
}; | ||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types | ||
var assert = function(condition, msg) { | ||
if (!condition) { | ||
error(msg); | ||
} | ||
}; | ||
var error = function(msg) { | ||
throw new Error("".concat(LOG_CATEGORY, ": ").concat(msg)); | ||
}; | ||
var warn = function(msg) { | ||
console.warn("".concat(LOG_CATEGORY, ": ").concat(msg)); | ||
}; | ||
@@ -398,6 +422,7 @@ function _define_property(obj, key, value) { | ||
}; | ||
// 优先级:overrides > remotes | ||
// Priority: overrides > remotes | ||
// eslint-disable-next-line max-lines-per-function | ||
function generateSnapshotFromManifest(manifest) { | ||
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; | ||
var _manifest_metaData; | ||
var _options_remotes = options.remotes, remotes = _options_remotes === void 0 ? {} : _options_remotes, _options_overrides = options.overrides, overrides = _options_overrides === void 0 ? {} : _options_overrides, version = options.version; | ||
@@ -414,3 +439,3 @@ var remoteSnapshot; | ||
var remotesInfo = {}; | ||
// If remotes are not passed, only the remotes in the manifest will be read | ||
// If remotes are not provided, only the remotes in the manifest will be read | ||
if (!Object.keys(remotes).length) { | ||
@@ -421,3 +446,3 @@ var _manifest_remotes; | ||
var name = next.federationContainerName; | ||
// overrides has hight priority | ||
// overrides have higher priority | ||
if (overridesKeys.includes(name)) { | ||
@@ -438,3 +463,3 @@ matchedVersion = overrides[name]; | ||
} | ||
// If remotes (deploy scenario) are specified, you need to traverse it again | ||
// If remotes (deploy scenario) are specified, they need to be traversed again | ||
Object.keys(remotes).forEach(function(key) { | ||
@@ -446,3 +471,3 @@ return remotesInfo[key] = { | ||
}); | ||
var _manifest_metaData = manifest.metaData, _manifest_metaData_remoteEntry = _manifest_metaData.remoteEntry, remoteEntryPath = _manifest_metaData_remoteEntry.path, remoteEntryName = _manifest_metaData_remoteEntry.name, remoteEntryType = _manifest_metaData_remoteEntry.type, remoteTypes = _manifest_metaData.types, buildVersion = _manifest_metaData.buildInfo.buildVersion, globalName = _manifest_metaData.globalName; | ||
var _manifest_metaData1 = manifest.metaData, _manifest_metaData_remoteEntry = _manifest_metaData1.remoteEntry, remoteEntryPath = _manifest_metaData_remoteEntry.path, remoteEntryName = _manifest_metaData_remoteEntry.name, remoteEntryType = _manifest_metaData_remoteEntry.type, remoteTypes = _manifest_metaData1.types, buildVersion = _manifest_metaData1.buildInfo.buildVersion, globalName = _manifest_metaData1.globalName; | ||
var exposes = manifest.exposes; | ||
@@ -471,2 +496,9 @@ var basicRemoteSnapshot = { | ||
}; | ||
if ((_manifest_metaData = manifest.metaData) === null || _manifest_metaData === void 0 ? void 0 : _manifest_metaData.prefetchEntry) { | ||
var _manifest_metaData_prefetchEntry = manifest.metaData.prefetchEntry, path = _manifest_metaData_prefetchEntry.path, name = _manifest_metaData_prefetchEntry.name, type = _manifest_metaData_prefetchEntry.type; | ||
basicRemoteSnapshot = _object_spread_props(_object_spread({}, basicRemoteSnapshot), { | ||
prefetchEntry: simpleJoinRemoteEntry(path, name), | ||
prefetchEntryType: type | ||
}); | ||
} | ||
if ("publicPath" in manifest.metaData) { | ||
@@ -491,2 +523,251 @@ remoteSnapshot = _object_spread_props(_object_spread({}, basicRemoteSnapshot), { | ||
export { BROWSER_LOG_KEY, BROWSER_LOG_VALUE, EncodedNameTransformMap, FederationModuleManifest, Logger, MANIFEST_EXT, NameTransformMap, NameTransformSymbol, SEPARATOR, composeKeyWithSeparator, decodeName, encodeName, generateExposeFilename, generateShareFilename, generateSnapshotFromManifest, getProcessEnv, isBrowserEnv, isDebugMode, isManifestProvider, logger, parseEntry }; | ||
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { | ||
try { | ||
var info = gen[key](arg); | ||
var value = info.value; | ||
} catch (error) { | ||
reject(error); | ||
return; | ||
} | ||
if (info.done) { | ||
resolve(value); | ||
} else { | ||
Promise.resolve(value).then(_next, _throw); | ||
} | ||
} | ||
function _async_to_generator(fn) { | ||
return function() { | ||
var self = this, args = arguments; | ||
return new Promise(function(resolve, reject) { | ||
var gen = fn.apply(self, args); | ||
function _next(value) { | ||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); | ||
} | ||
function _throw(err) { | ||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); | ||
} | ||
_next(undefined); | ||
}); | ||
}; | ||
} | ||
function _instanceof(left, right) { | ||
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { | ||
return !!right[Symbol.hasInstance](left); | ||
} else { | ||
return left instanceof right; | ||
} | ||
} | ||
function _ts_generator(thisArg, body) { | ||
var f, y, t, g, _ = { | ||
label: 0, | ||
sent: function() { | ||
if (t[0] & 1) throw t[1]; | ||
return t[1]; | ||
}, | ||
trys: [], | ||
ops: [] | ||
}; | ||
return g = { | ||
next: verb(0), | ||
"throw": verb(1), | ||
"return": verb(2) | ||
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() { | ||
return this; | ||
}), g; | ||
function verb(n) { | ||
return function(v) { | ||
return step([ | ||
n, | ||
v | ||
]); | ||
}; | ||
} | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while(_)try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [ | ||
op[0] & 2, | ||
t.value | ||
]; | ||
switch(op[0]){ | ||
case 0: | ||
case 1: | ||
t = op; | ||
break; | ||
case 4: | ||
_.label++; | ||
return { | ||
value: op[1], | ||
done: false | ||
}; | ||
case 5: | ||
_.label++; | ||
y = op[1]; | ||
op = [ | ||
0 | ||
]; | ||
continue; | ||
case 7: | ||
op = _.ops.pop(); | ||
_.trys.pop(); | ||
continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { | ||
_ = 0; | ||
continue; | ||
} | ||
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { | ||
_.label = op[1]; | ||
break; | ||
} | ||
if (op[0] === 6 && _.label < t[1]) { | ||
_.label = t[1]; | ||
t = op; | ||
break; | ||
} | ||
if (t && _.label < t[2]) { | ||
_.label = t[2]; | ||
_.ops.push(op); | ||
break; | ||
} | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); | ||
continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { | ||
op = [ | ||
6, | ||
e | ||
]; | ||
y = 0; | ||
} finally{ | ||
f = t = 0; | ||
} | ||
if (op[0] & 5) throw op[1]; | ||
return { | ||
value: op[0] ? op[1] : void 0, | ||
done: true | ||
}; | ||
} | ||
} | ||
// eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
function safeWrapper(callback, disableWarn) { | ||
return _safeWrapper.apply(this, arguments); | ||
} | ||
function _safeWrapper() { | ||
_safeWrapper = _async_to_generator(function(callback, disableWarn) { | ||
var res, e; | ||
return _ts_generator(this, function(_state) { | ||
switch(_state.label){ | ||
case 0: | ||
_state.trys.push([ | ||
0, | ||
2, | ||
, | ||
3 | ||
]); | ||
return [ | ||
4, | ||
callback() | ||
]; | ||
case 1: | ||
res = _state.sent(); | ||
return [ | ||
2, | ||
res | ||
]; | ||
case 2: | ||
e = _state.sent(); | ||
!disableWarn && warn(e); | ||
return [ | ||
2 | ||
]; | ||
case 3: | ||
return [ | ||
2 | ||
]; | ||
} | ||
}); | ||
}); | ||
return _safeWrapper.apply(this, arguments); | ||
} | ||
function isStaticResourcesEqual(url1, url2) { | ||
var REG_EXP = /^(https?:)?\/\//i; | ||
// Transform url1 and url2 into relative paths | ||
var relativeUrl1 = url1.replace(REG_EXP, "").replace(/\/$/, ""); | ||
var relativeUrl2 = url2.replace(REG_EXP, "").replace(/\/$/, ""); | ||
// Check if the relative paths are identical | ||
return relativeUrl1 === relativeUrl2; | ||
} | ||
function createScript(url, cb, attrs, createScriptHook) { | ||
// Retrieve the existing script element by its src attribute | ||
var script = null; | ||
var needAttach = true; | ||
var scripts = document.getElementsByTagName("script"); | ||
for(var i = 0; i < scripts.length; i++){ | ||
var s = scripts[i]; | ||
var scriptSrc = s.getAttribute("src"); | ||
if (scriptSrc && isStaticResourcesEqual(scriptSrc, url)) { | ||
script = s; | ||
needAttach = false; | ||
break; | ||
} | ||
} | ||
if (!script) { | ||
script = document.createElement("script"); | ||
script.type = "text/javascript"; | ||
script.src = url; | ||
if (createScriptHook) { | ||
var createScriptRes = createScriptHook(url); | ||
if (_instanceof(createScriptRes, HTMLScriptElement)) { | ||
script = createScriptRes; | ||
} | ||
} | ||
} | ||
if (attrs) { | ||
Object.keys(attrs).forEach(function(name) { | ||
if (script) { | ||
if (name === "async" || name === "defer") { | ||
script[name] = attrs[name]; | ||
} else { | ||
script.setAttribute(name, attrs[name]); | ||
} | ||
} | ||
}); | ||
} | ||
var onScriptComplete = function(prev, // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
event) { | ||
// Prevent memory leaks in IE. | ||
if (script) { | ||
script.onerror = null; | ||
script.onload = null; | ||
safeWrapper(function() { | ||
(script === null || script === void 0 ? void 0 : script.parentNode) && script.parentNode.removeChild(script); | ||
}); | ||
if (prev) { | ||
// eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
var res = prev(event); | ||
cb(); | ||
return res; | ||
} | ||
} | ||
cb(); | ||
}; | ||
script.onerror = onScriptComplete.bind(null, script.onerror); | ||
script.onload = onScriptComplete.bind(null, script.onload); | ||
return { | ||
script: script, | ||
needAttach: needAttach | ||
}; | ||
} | ||
function loadScript(url, info) { | ||
var attrs = info.attrs, createScriptHook = info.createScriptHook; | ||
return new Promise(function(resolve, _reject) { | ||
var _createScript = createScript(url, resolve, attrs, createScriptHook), script = _createScript.script, needAttach = _createScript.needAttach; | ||
needAttach && document.getElementsByTagName("head")[0].appendChild(script); | ||
}); | ||
} | ||
export { BROWSER_LOG_KEY, BROWSER_LOG_VALUE, EncodedNameTransformMap, FederationModuleManifest, Logger, MANIFEST_EXT, NameTransformMap, NameTransformSymbol, SEPARATOR, assert, composeKeyWithSeparator, createScript, decodeName, encodeName, error, generateExposeFilename, generateShareFilename, generateSnapshotFromManifest, getProcessEnv, getResourceUrl, isBrowserEnv, isDebugMode, isManifestProvider, isStaticResourcesEqual, loadScript, logger, parseEntry, safeWrapper, warn }; |
{ | ||
"name": "@module-federation/sdk", | ||
"version": "1.0.0-canary.3", | ||
"version": "1.1.0-canary.1", | ||
"license": "MIT", | ||
"description": "A sdk for support module federation", | ||
@@ -16,3 +17,16 @@ "keywords": [ | ||
"module": "./index.esm.js", | ||
"types": "./index.cjs.d.ts" | ||
"types": "./index.cjs.d.ts", | ||
"exports": { | ||
"./package.json": "./package.json", | ||
".": { | ||
"module": "./index.esm.js", | ||
"import": "./index.cjs.mjs", | ||
"default": "./index.cjs.js" | ||
}, | ||
"./normalize-webpack-path": { | ||
"module": "./normalize-webpack-path.esm.js", | ||
"import": "./normalize-webpack-path.cjs.mjs", | ||
"default": "./normalize-webpack-path.cjs.js" | ||
} | ||
} | ||
} |
@@ -7,1 +7,2 @@ export * from './constant'; | ||
export * from './env'; | ||
export * from './dom'; |
@@ -30,2 +30,4 @@ import { RemoteEntryType, StatsAssets } from './stats'; | ||
}>; | ||
prefetchEntry?: string; | ||
prefetchEntryType?: RemoteEntryType; | ||
} | ||
@@ -32,0 +34,0 @@ interface BasicProviderModuleInfoWithPublicPath extends BasicProviderModuleInfo { |
@@ -17,2 +17,3 @@ import type { RemoteWithEntry, RemoteWithVersion } from './common'; | ||
remoteEntry: ResourceInfo; | ||
prefetchEntry: ResourceInfo; | ||
types: Omit<ResourceInfo, 'type'>; | ||
@@ -19,0 +20,0 @@ } |
@@ -1,2 +0,2 @@ | ||
import { RemoteEntryInfo } from './types'; | ||
import { RemoteEntryInfo, ModuleInfo } from './types'; | ||
import { Logger } from './logger'; | ||
@@ -13,2 +13,6 @@ declare const parseEntry: (str: string, devVerOrUrl?: string) => RemoteEntryInfo; | ||
declare const generateShareFilename: (pkgName: string, withExt: boolean) => string; | ||
export { parseEntry, logger, decodeName, encodeName, composeKeyWithSeparator, generateExposeFilename, generateShareFilename, }; | ||
declare const getResourceUrl: (module: ModuleInfo, sourceUrl: string) => string; | ||
declare const assert: (condition: any, msg: string) => asserts condition; | ||
declare const error: (msg: string | Error | unknown) => never; | ||
declare const warn: (msg: Parameters<typeof console.warn>[0]) => void; | ||
export { parseEntry, logger, decodeName, encodeName, composeKeyWithSeparator, generateExposeFilename, generateShareFilename, getResourceUrl, assert, error, warn, }; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No License Found
License(Experimental) License information could not be found.
Found 1 instance in 1 package
72698
25
0
1879
7