Files
examples/quickstart/3-browser-to-service/src/_aqua/getting-started.ts

127 lines
3.4 KiB
TypeScript
Raw Normal View History

2021-07-20 14:00:26 +03:00
/**
*
* This file is auto-generated. Do not edit manually: changes may be erased.
* Generated by Aqua compiler: https://github.com/fluencelabs/aqua/.
* If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues
2021-09-04 17:41:01 -05:00
* Aqua version: 0.2.2-221
2021-07-20 14:00:26 +03:00
*
*/
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
2021-09-04 17:41:01 -05:00
// Services
//HelloWorld
//defaultId = undefined
//hello: (from: string) => {msg:string;reply:string}
//END HelloWorld
//HelloPeer
//defaultId = "HelloPeer"
//hello: (message: string) => string
//END HelloPeer
// Functions
2021-07-20 14:00:26 +03:00
2021-08-05 17:43:01 -05:00
export async function sayHello(client: FluenceClient, targetPeerId: string, targetRelayPeerId: string, config?: {ttl?: number}): Promise<string> {
2021-07-20 14:00:26 +03:00
let request: RequestFlow;
const promise = new Promise<string>((resolve, reject) => {
const r = new RequestFlowBuilder()
.disableInjections()
.withRawScript(
`
(xor
(seq
(seq
(seq
(seq
(seq
(seq
(seq
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
2021-08-05 17:43:01 -05:00
(call %init_peer_id% ("getDataSrv" "targetPeerId") [] targetPeerId)
2021-07-20 14:00:26 +03:00
)
2021-08-05 17:43:01 -05:00
(call %init_peer_id% ("getDataSrv" "targetRelayPeerId") [] targetRelayPeerId)
2021-07-20 14:00:26 +03:00
)
(call -relay- ("op" "noop") [])
)
(xor
(seq
(call -relay- ("op" "noop") [])
2021-08-05 17:43:01 -05:00
(call "12D3KooWFEwNWcHqi9rtsmDhsYcDbRUCDXH84RC4FW6UfsFWaoHi" ("1e740ce4-81f6-4dd4-9bed-8d86e9c2fa50" "hello") [%init_peer_id%] comp)
2021-07-20 14:00:26 +03:00
)
(seq
(call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
)
)
)
(call -relay- ("op" "noop") [])
)
(par
(seq
2021-08-05 17:43:01 -05:00
(call targetRelayPeerId ("op" "noop") [])
2021-07-20 14:00:26 +03:00
(xor
2021-08-05 17:43:01 -05:00
(call targetPeerId ("HelloPeer" "hello") [%init_peer_id%] res)
2021-07-20 14:00:26 +03:00
(seq
(seq
2021-08-05 17:43:01 -05:00
(call targetRelayPeerId ("op" "noop") [])
2021-07-20 14:00:26 +03:00
(call -relay- ("op" "noop") [])
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
)
)
)
(null)
)
)
(xor
(call %init_peer_id% ("callbackSrv" "response") [comp.$.reply!])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4])
)
`,
)
.configHandler((h) => {
h.on('getDataSrv', '-relay-', () => {
return client.relayPeerId!;
});
2021-08-05 17:43:01 -05:00
h.on('getDataSrv', 'targetPeerId', () => {return targetPeerId;});
h.on('getDataSrv', 'targetRelayPeerId', () => {return targetRelayPeerId;});
2021-07-20 14:00:26 +03:00
h.onEvent('callbackSrv', 'response', (args) => {
2021-09-04 17:41:01 -05:00
const [res] = args;
2021-07-20 14:00:26 +03:00
resolve(res);
});
h.onEvent('errorHandlingSrv', 'error', (args) => {
// assuming error is the single argument
const [err] = args;
reject(err);
});
})
.handleScriptError(reject)
.handleTimeout(() => {
reject('Request timed out for sayHello');
})
2021-09-04 17:41:01 -05:00
if(config && config.ttl) {
2021-07-20 14:00:26 +03:00
r.withTTL(config.ttl)
}
request = r.build();
});
await client.initiateFlow(request!);
return promise;
}
2021-09-04 17:41:01 -05:00