Use Object.assign to fix default import

This commit is contained in:
dapplion 2020-11-29 16:52:29 +00:00
parent 804ed42354
commit ef98683424
1 changed files with 5 additions and 2 deletions

View File

@ -4,7 +4,7 @@ import {bls as blsHerumi} from "./herumi";
export type Implementation = "herumi" | "blst-native"; export type Implementation = "herumi" | "blst-native";
// TODO: Use a Proxy for example to throw an error if it's not initialized yet // TODO: Use a Proxy for example to throw an error if it's not initialized yet
export let bls: IBls; export let bls: IBls = {} as IBls;
async function getImplementation(impl: Implementation = "herumi"): Promise<IBls> { async function getImplementation(impl: Implementation = "herumi"): Promise<IBls> {
switch (impl) { switch (impl) {
@ -25,7 +25,10 @@ async function getImplementation(impl: Implementation = "herumi"): Promise<IBls>
} }
export async function init(impl: Implementation): Promise<void> { export async function init(impl: Implementation): Promise<void> {
bls = await getImplementation(impl); // Using Object.assign instead of just bls = getImplementation()
// because otherwise the default import breaks. The reference is lost
// and the imported object is still undefined after calling init()
Object.assign(bls, await getImplementation(impl));
} }
export default bls; export default bls;