semantic-release-yarn
Version:
semantic-release plugin to publish a npm package with yarn
25 lines (24 loc) • 746 B
JavaScript
const modules = {};
async function getDefaultImplementation(name) {
switch (name) {
case "execa":
return (await import("execa")).execa;
case "readPackage":
return (await import("read-pkg")).readPackage;
case "AggregateError":
return (await import("aggregate-error")).default;
}
throw new Error("Unknown module");
}
export async function getImplementation(name) {
if (!(name in modules)) {
await resetImplementation(name);
}
return modules[name];
}
export function setImplementation(name, implementation) {
modules[name] = implementation;
}
export async function resetImplementation(name) {
modules[name] = await getDefaultImplementation(name);
}