36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
/**
|
|
* Hoists a name from a module or promised module.
|
|
*
|
|
* @param module the module to hoist the name from
|
|
* @param name the name to hoist
|
|
* @returns the value on the module (or promised module)
|
|
*/ "use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "hoist", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return hoist;
|
|
}
|
|
});
|
|
function hoist(module, name) {
|
|
// If the name is available in the module, return it.
|
|
if (name in module) {
|
|
return module[name];
|
|
}
|
|
// If a property called `then` exists, assume it's a promise and
|
|
// return a promise that resolves to the name.
|
|
if ("then" in module && typeof module.then === "function") {
|
|
return module.then((mod)=>hoist(mod, name));
|
|
}
|
|
// If we're trying to hoise the default export, and the module is a function,
|
|
// return the module itself.
|
|
if (typeof module === "function" && name === "default") {
|
|
return module;
|
|
}
|
|
// Otherwise, return undefined.
|
|
return undefined;
|
|
}
|
|
|
|
//# sourceMappingURL=helpers.js.map
|