upend/tools/upend_js/wasm/index.ts
Tomáš Mládek 91cfa6a2da
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
feat: 📦 upend jslib + wasm can be used from node
2023-10-07 13:00:34 +02:00

34 lines
899 B
TypeScript

import debug from "debug";
const dbg = debug("upend:wasm");
export abstract class UpEndWasmExtensions {
private initialized = false;
private initPromise: Promise<void> | undefined = undefined;
protected abstract _init(): Promise<void>;
public async init(): Promise<void> {
if (!this.initialized) {
if (!this.initPromise) {
this.initPromise = this._init();
}
await this.initPromise;
this.initialized = true;
dbg("WASM extensions initialized.");
}
}
public abstract addr_to_components(address: string): AddressComponents;
public abstract components_to_addr(components: AddressComponents): string;
public abstract AddressTypeConstants: AddressTypeConstants;
}
export interface AddressTypeConstants {
Attribute: string;
Hash: string;
Url: string;
Uuid: string;
}
export interface AddressComponents {
t: string;
c?: string;
}