// Copyright 2021 IOTA Stiftung // SPDX-License-Identifier: Apache-2.0 import type { WalletEventType } from '../types'; import type { MessageHandler } from './MessageHandler'; // @ts-ignore: path is set to match runtime transpiled js path import addon = require('../../build/Release/index.node'); const { initLogger, sendMessage, messageHandlerNew, listen, destroy, migrateStrongholdSnapshotV2ToV3, } = addon; const listenWallet = ( eventTypes: WalletEventType[], callback: (error: Error, result: string) => void, handler: MessageHandler, ): Promise => { listen(eventTypes, callback, handler); return Promise.resolve(); }; const sendMessageAsync = ( message: string, handler: MessageHandler, ): Promise => new Promise((resolve, reject) => { sendMessage(message, handler, (error: Error, result: string) => { if (error) { reject(error); } else { resolve(result); } }); }); export { initLogger as internalInitLogger, sendMessageAsync, messageHandlerNew, listenWallet, destroy, migrateStrongholdSnapshotV2ToV3, };