1
0
Fork 0
mirror of https://github.com/anyproto/anytype-heart.git synced 2025-06-11 10:18:28 +09:00
anytype-heart/clientlibrary/jsaddon/test.js
2020-09-12 15:36:47 +03:00

90 lines
2 KiB
JavaScript

const bindings = require( 'bindings' )( 'addon' );
const com = require( '../build/ts/commands.js' );
var microtime = require( 'microtime' );
function getTime(){
let n = microtime.nowStruct();
return n[0] + "." + n[1];
}
bindings.setEventHandler( item => {
let msg = com.anytype.Event.decode( item.data );
if (msg.ping) {
console.log( getTime(), "js got ping event", msg.ping.index );
}
if (msg.accountAdd) {
service.accountSelect(
{id: msg.accountAdd.account.id},
(err, res) => {
console.log( 'accountSelect err:', err, 'res:', res );
}
);
}
} );
let toCamelCase = (str) => str[0].toUpperCase() + str.slice( 1, str.length );
let napiCall = (method, inputObj, outputObj, request, callback) => {
let buffer = inputObj.encode( request ).finish();
bindings.sendCommand( toCamelCase( method.name ), buffer, (item) => {
try {
let msg = outputObj.decode( item.data );
console.log( "napiCall >>> got callback:", msg );
callback( null, msg );
} catch (err) {
console.log( "napiCall >>> got error: ", err );
callback( err, null );
}
} );
};
com.anytype.ClientCommands.prototype.rpcCall = napiCall;
let service = com.anytype.ClientCommands.create( () => {
}, false, false );
let start = new Date();
service.ping(
{
index: 1,
numberOfEventsToSend: 1
},
(err, res) => {
var end = new Date() - start;
console.log( getTime(), 'js got ping rpc resp' );
}
);
setTimeout( () => {
console.log( getTime(), 'js send ping rpc req' );
service.ping(
{
index: 2,
numberOfEventsToSend: 1
},
(err, res) => {
var end = new Date() - start;
console.log( getTime(), 'js got ping rpc resp' );
}
);
}, 3000 );
/*
service.walletRecover({ rootPath: "/Users/roman/.anytype", mnemonic: 'input blame switch simple fatigue fragile grab goose unusual identify abuse use' }, (err, res) => {
console.log('err:', err, 'res:', res)
});
setTimeout(function (){
service.accountRecover({ }, (err, res) => {
console.log('err:', err, 'res:', res)
});
}, 5000);
*/