UNPKG

@gear-js/api

Version:

A JavaScript library that provides functionality to connect GEAR Component APIs.

40 lines (36 loc) 1.49 kB
'use strict'; var createType = require('./create-type.js'); var metadata = require('./metadata.js'); var importObj = require('../wasm/importObj.js'); class StateMetadata extends metadata.GearMetadata { functions; constructor({ reg, functions }) { super(reg); this.functions = functions; } } /** * @deprecated - This functionality is deprecated and will be removed from both the API and the runtime. Use `api.message.calculateReply` instead. */ async function getStateMetadata(wasmBytes) { const memory = new WebAssembly.Memory({ initial: 17 }); let resolveMetadataPromise; const metadata = new Promise((resolve) => { resolveMetadataPromise = resolve; }); const { instance } = await WebAssembly.instantiate(wasmBytes, importObj.default(memory, undefined, undefined, undefined, undefined, (payload, len) => { resolveMetadataPromise(new Uint8Array(memory.buffer.slice(payload, payload + len))); })); const { exports } = instance; if (!exports?.metadata) { throw new Error('Unable to find metadata function in exports of applied wasm'); } if (typeof exports.metadata !== 'function') { throw new Error('exports.metadata is not a function'); } exports.metadata(); const meta = createType.CreateType.create('StateMetadataRepr', await metadata); return new StateMetadata(meta.toJSON()); } exports.StateMetadata = StateMetadata; exports.getStateMetadata = getStateMetadata;