diff --git a/aqua/examples/multiReturn.aqua b/aqua/examples/multiReturn.aqua new file mode 100644 index 0000000..8c4a050 --- /dev/null +++ b/aqua/examples/multiReturn.aqua @@ -0,0 +1,11 @@ +service GetStr("multiret-test"): + retStr: string -> string + +const someNum = 5 +const someStr = "some-str" + +func multiReturnFunc(somethingToReturn: []u8) -> []string, u8, u8, string, []u8 : + res: *string + res <- GetStr.retStr(someStr) + res <- GetStr.retStr("random-str") + <- res, 5, someNum, someStr, somethingToReturn \ No newline at end of file diff --git a/src/compiled/examples/assignment.ts b/src/compiled/examples/assignment.ts index 0f2fcc6..cb401f2 100644 --- a/src/compiled/examples/assignment.ts +++ b/src/compiled/examples/assignment.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/callArrow.ts b/src/compiled/examples/callArrow.ts index 7ea7de3..9ad843a 100644 --- a/src/compiled/examples/callArrow.ts +++ b/src/compiled/examples/callArrow.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; @@ -89,7 +89,7 @@ export async function passFunctionAsArg(client: FluenceClient, node: string, str (call -relay- ("op" "noop") []) ) (xor - (call %init_peer_id% ("callbackSrv" "c") [str] init_call_res) + (call %init_peer_id% ("callbackSrv" "c") [str] init_call_res0) (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) ) ) @@ -105,7 +105,7 @@ export async function passFunctionAsArg(client: FluenceClient, node: string, str ) (call -relay- ("op" "noop") []) ) - (call %init_peer_id% ("println-service-id" "print") [init_call_res]) + (call %init_peer_id% ("println-service-id" "print") [init_call_res0]) ) (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) ) diff --git a/src/compiled/examples/co.ts b/src/compiled/examples/co.ts index 89c1d1a..e1adb00 100644 --- a/src/compiled/examples/co.ts +++ b/src/compiled/examples/co.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/complex.ts b/src/compiled/examples/complex.ts index 3c405ac..b10e96e 100644 --- a/src/compiled/examples/complex.ts +++ b/src/compiled/examples/complex.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/constants.ts b/src/compiled/examples/constants.ts index 641e53b..2a67492 100644 --- a/src/compiled/examples/constants.ts +++ b/src/compiled/examples/constants.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/dataAlias.ts b/src/compiled/examples/dataAlias.ts index cbff453..37f5229 100644 --- a/src/compiled/examples/dataAlias.ts +++ b/src/compiled/examples/dataAlias.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/example.ts b/src/compiled/examples/example.ts index a50eb49..2873360 100644 --- a/src/compiled/examples/example.ts +++ b/src/compiled/examples/example.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/fldist-sample.ts b/src/compiled/examples/fldist-sample.ts index f65bac8..9dcea00 100644 --- a/src/compiled/examples/fldist-sample.ts +++ b/src/compiled/examples/fldist-sample.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/fold.ts b/src/compiled/examples/fold.ts index 1582016..bf11105 100644 --- a/src/compiled/examples/fold.ts +++ b/src/compiled/examples/fold.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/foldJoin.ts b/src/compiled/examples/foldJoin.ts index 45c23ac..92fbcea 100644 --- a/src/compiled/examples/foldJoin.ts +++ b/src/compiled/examples/foldJoin.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/func.ts b/src/compiled/examples/func.ts index 499a3a3..489c18f 100644 --- a/src/compiled/examples/func.ts +++ b/src/compiled/examples/func.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/helloWorld.ts b/src/compiled/examples/helloWorld.ts index 8a1da66..61ee058 100644 --- a/src/compiled/examples/helloWorld.ts +++ b/src/compiled/examples/helloWorld.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/if.ts b/src/compiled/examples/if.ts index bed1fa7..13b1c1c 100644 --- a/src/compiled/examples/if.ts +++ b/src/compiled/examples/if.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/nestedFuncs.ts b/src/compiled/examples/nestedFuncs.ts index 77eb085..0cc98d0 100644 --- a/src/compiled/examples/nestedFuncs.ts +++ b/src/compiled/examples/nestedFuncs.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/on.ts b/src/compiled/examples/on.ts index 5f86437..19a5855 100644 --- a/src/compiled/examples/on.ts +++ b/src/compiled/examples/on.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/option.ts b/src/compiled/examples/option.ts index 797be70..9283719 100644 --- a/src/compiled/examples/option.ts +++ b/src/compiled/examples/option.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/par.ts b/src/compiled/examples/par.ts index 96858ba..0476a59 100644 --- a/src/compiled/examples/par.ts +++ b/src/compiled/examples/par.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/passArgs.ts b/src/compiled/examples/passArgs.ts index 3bae3c9..abd49f2 100644 --- a/src/compiled/examples/passArgs.ts +++ b/src/compiled/examples/passArgs.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/println.ts b/src/compiled/examples/println.ts index 275bbba..c5fc65f 100644 --- a/src/compiled/examples/println.ts +++ b/src/compiled/examples/println.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/pushToStream.ts b/src/compiled/examples/pushToStream.ts index 68a2639..e069ec7 100644 --- a/src/compiled/examples/pushToStream.ts +++ b/src/compiled/examples/pushToStream.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/stream.ts b/src/compiled/examples/stream.ts index 4f6131d..5731997 100644 --- a/src/compiled/examples/stream.ts +++ b/src/compiled/examples/stream.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/streamArgs.ts b/src/compiled/examples/streamArgs.ts index c8afeb5..7978ebb 100644 --- a/src/compiled/examples/streamArgs.ts +++ b/src/compiled/examples/streamArgs.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/streamResults.ts b/src/compiled/examples/streamResults.ts index e80da1f..537d33b 100644 --- a/src/compiled/examples/streamResults.ts +++ b/src/compiled/examples/streamResults.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/topology.ts b/src/compiled/examples/topology.ts index 04dc1ad..7f27e29 100644 --- a/src/compiled/examples/topology.ts +++ b/src/compiled/examples/topology.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/tryCatch.ts b/src/compiled/examples/tryCatch.ts index f216480..71a0ed2 100644 --- a/src/compiled/examples/tryCatch.ts +++ b/src/compiled/examples/tryCatch.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/tryOtherwise.ts b/src/compiled/examples/tryOtherwise.ts index bc0ecb8..9f7c039 100644 --- a/src/compiled/examples/tryOtherwise.ts +++ b/src/compiled/examples/tryOtherwise.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/compiled/examples/via.ts b/src/compiled/examples/via.ts index a2fafd3..c1d506e 100644 --- a/src/compiled/examples/via.ts +++ b/src/compiled/examples/via.ts @@ -3,7 +3,7 @@ * 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 - * Aqua version: 0.1.11-SNAPSHOT + * Aqua version: 0.1.13-SNAPSHOT * */ import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; diff --git a/src/examples/multiReturnCall.ts b/src/examples/multiReturnCall.ts new file mode 100644 index 0000000..76ac2e1 --- /dev/null +++ b/src/examples/multiReturnCall.ts @@ -0,0 +1,10 @@ +import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; +import {multiReturnFunc} from "../compiled/examples/multiReturn"; + +export async function multiReturnCall(client: FluenceClient): Promise<[string[], number, number, string, number[]]> { + registerServiceFunction(client, "multiret-test", "retStr", (args: any[], _) => { + return args[0] + }) + + return await multiReturnFunc(client, [1, 2]) +} \ No newline at end of file diff --git a/src/examples/nestedFuncsCall.ts b/src/examples/nestedFuncsCall.ts index 2099517..6e0b593 100644 --- a/src/examples/nestedFuncsCall.ts +++ b/src/examples/nestedFuncsCall.ts @@ -1,6 +1,4 @@ import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {getTwoResults} from "../compiled/examples/foldJoin"; -import {useOptional} from "../compiled/examples/option"; import {d} from "../compiled/examples/nestedFuncs"; export async function nestedFuncsCall(client: FluenceClient): Promise { diff --git a/src/run-examples.ts b/src/run-examples.ts index 11d1ced..6202c6a 100644 --- a/src/run-examples.ts +++ b/src/run-examples.ts @@ -27,6 +27,7 @@ import {streamArgsCall} from "./examples/streamArgsCall"; import {streamResultsCall} from "./examples/streamResultsCall"; import {pushToStreamCall} from "./examples/pushToStreamCall"; import {literalCall} from "./examples/returnLiteralCall"; +import {multiReturnCall} from "./examples/multiReturnCall"; let deepEqual = require('deep-equal') function checkCall(name: string, expected: any, actual: any, callBackOnError: () => void) { @@ -142,6 +143,9 @@ const main = async () => { // literalCall.aqua let literalCallResult = await literalCall(client) + // multiReturn.aqua + let multiReturnResult = await multiReturnCall(client) + await client.disconnect(); let success = true; @@ -197,6 +201,8 @@ const main = async () => { checkCall("literalCall", literalCallResult, "some literal", cb) + checkCall("multiReturnResult", multiReturnResult, [ [ 'some-str', 'random-str' ], 5, 5, 'some-str', [ 1, 2 ] ], cb) + checkCallBy("tryCatchCall", tryCatchResult, (res) => { return (res[0] as string).includes("Error: Service with id 'unex' not found") && res[1] === '/ip4/164.90.171.139/tcp/7770' }, cb)