diff --git a/src/__test__/examples.spec.ts b/src/__test__/examples.spec.ts index c3d08be..991adff 100644 --- a/src/__test__/examples.spec.ts +++ b/src/__test__/examples.spec.ts @@ -186,7 +186,7 @@ describe('Testing examples', () => { it('closures.aqua', async () => { let closuresResult = await closuresCall(); let res1 = ["/ip4/164.90.164.229/tcp/7001", "/ip4/164.90.164.229/tcp/9001/ws"] - let res2 = ["/ip4/164.90.164.229/tcp/7001", "in"] + let res2 = ["in", "/ip4/164.90.164.229/tcp/7001"] expect(closuresResult).toStrictEqual(["in", res1, res2]); }); diff --git a/src/compiled/examples/closures.ts b/src/compiled/examples/closures.ts new file mode 100644 index 0000000..cf5ce99 --- /dev/null +++ b/src/compiled/examples/closures.ts @@ -0,0 +1,344 @@ +/** + * + * 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.4.1-SNAPSHOT + * + */ +import { Fluence, FluencePeer } from '@fluencelabs/fluence'; +import { + CallParams, + callFunction, + registerService, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v2'; + + +// Services + +export interface LocalSrvDef { + inside: (callParams: CallParams) => void | Promise; +} +export function registerLocalSrv(service: LocalSrvDef): void; +export function registerLocalSrv(serviceId: string, service: LocalSrvDef): void; +export function registerLocalSrv(peer: FluencePeer, service: LocalSrvDef): void; +export function registerLocalSrv(peer: FluencePeer, serviceId: string, service: LocalSrvDef): void; + + +export function registerLocalSrv(...args: any) { + registerService( + args, + { + "defaultServiceId" : "local_srv", + "functions" : [ + { + "functionName" : "inside", + "argDefs" : [ + ], + "returnType" : { + "tag" : "void" + } + } + ] +} + ); +} + +// Functions + + +export function closureIn(peer1: string, config?: {ttl?: number}): Promise; +export function closureIn(peer: FluencePeer, peer1: string, config?: {ttl?: number}): Promise; +export function closureIn(...args: any) { + + let script = ` + (xor + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "peer1") [] peer1) + ) + (par + (seq + (call -relay- ("op" "noop") []) + (xor + (call peer1 ("op" "identity") ["co on"] p1Id) + (seq + (call -relay- ("op" "noop") []) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + ) + (null) + ) + ) + (xor + (match "in" "in" + (xor + (call %init_peer_id% ("local_srv" "inside") []) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) + ) + ) + (null) + ) + ) + (call %init_peer_id% ("op" "identity") ["in"] p2Id) + ) + (xor + (call %init_peer_id% ("callbackSrv" "response") [p2Id]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4]) + ) + ` + return callFunction( + args, + { + "functionName" : "closureIn", + "returnType" : { + "tag" : "primitive" + }, + "argDefs" : [ + { + "name" : "peer1", + "argType" : { + "tag" : "primitive" + } + } + ], + "names" : { + "relay" : "-relay-", + "getDataSrv" : "getDataSrv", + "callbackSrv" : "callbackSrv", + "responseSrv" : "callbackSrv", + "responseFnName" : "response", + "errorHandlingSrv" : "errorHandlingSrv", + "errorFnName" : "error" + } +}, + script + ) +} + + +export type ClosureOutResult = { external_addresses: string[]; } +export function closureOut(peer2: string, config?: {ttl?: number}): Promise; +export function closureOut(peer: FluencePeer, peer2: string, config?: {ttl?: number}): Promise; +export function closureOut(...args: any) { + + let script = ` + (xor + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "peer2") [] peer2) + ) + (call -relay- ("op" "noop") []) + ) + (xor + (seq + (xor + (match "on" "in" + (xor + (call peer2 ("local_srv" "inside") []) + (seq + (seq + (call -relay- ("op" "noop") []) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + (call -relay- ("op" "noop") []) + ) + ) + ) + (null) + ) + (call peer2 ("peer" "identify") [] p2Id) + ) + (seq + (call -relay- ("op" "noop") []) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) + ) + ) + ) + (call -relay- ("op" "noop") []) + ) + (xor + (call %init_peer_id% ("callbackSrv" "response") [p2Id]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4]) + ) + ` + return callFunction( + args, + { + "functionName" : "closureOut", + "returnType" : { + "tag" : "primitive" + }, + "argDefs" : [ + { + "name" : "peer2", + "argType" : { + "tag" : "primitive" + } + } + ], + "names" : { + "relay" : "-relay-", + "getDataSrv" : "getDataSrv", + "callbackSrv" : "callbackSrv", + "responseSrv" : "callbackSrv", + "responseFnName" : "response", + "errorHandlingSrv" : "errorHandlingSrv", + "errorFnName" : "error" + } +}, + script + ) +} + + +export type ClosureBigResult = [string, string] +export function closureBig(peer1: string, peer2: string, config?: {ttl?: number}): Promise; +export function closureBig(peer: FluencePeer, peer1: string, peer2: string, config?: {ttl?: number}): Promise; +export function closureBig(...args: any) { + + let script = ` + (xor + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "peer1") [] peer1) + ) + (call %init_peer_id% ("getDataSrv" "peer2") [] peer2) + ) + (par + (seq + (call -relay- ("op" "noop") []) + (xor + (call peer1 ("op" "identity") ["co on"] p1Id) + (seq + (call -relay- ("op" "noop") []) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + ) + (null) + ) + ) + (xor + (match "in" "in" + (xor + (seq + (call %init_peer_id% ("op" "identity") ["in"] p2) + (ap p2 $p2Id0) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) + ) + ) + (seq + (call %init_peer_id% ("peer" "identify") [] p2Info) + (ap p2Info.$.external_addresses.[0]! $p2Id0) + ) + ) + ) + (call -relay- ("op" "noop") []) + ) + (xor + (seq + (call -relay- ("op" "noop") []) + (xor + (match "on" "in" + (xor + (seq + (call peer2 ("op" "identity") ["on"] p20) + (ap p20 $p2Id) + ) + (seq + (seq + (call -relay- ("op" "noop") []) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) + ) + (call -relay- ("op" "noop") []) + ) + ) + ) + (seq + (call peer2 ("peer" "identify") [] p2Info0) + (ap p2Info0.$.external_addresses.[0]! $p2Id) + ) + ) + ) + (seq + (call -relay- ("op" "noop") []) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4]) + ) + ) + ) + (call -relay- ("op" "noop") []) + ) + (xor + (call %init_peer_id% ("callbackSrv" "response") [$p2Id0.$.[0]! $p2Id.$.[0]!]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 5]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 6]) + ) + ` + return callFunction( + args, + { + "functionName" : "closureBig", + "returnType" : { + "tag" : "multiReturn", + "returnItems" : [ + { + "tag" : "primitive" + }, + { + "tag" : "primitive" + } + ] + }, + "argDefs" : [ + { + "name" : "peer1", + "argType" : { + "tag" : "primitive" + } + }, + { + "name" : "peer2", + "argType" : { + "tag" : "primitive" + } + } + ], + "names" : { + "relay" : "-relay-", + "getDataSrv" : "getDataSrv", + "callbackSrv" : "callbackSrv", + "responseSrv" : "callbackSrv", + "responseFnName" : "response", + "errorHandlingSrv" : "errorHandlingSrv", + "errorFnName" : "error" + } +}, + script + ) +} diff --git a/src/compiled/examples/streamCallback.ts b/src/compiled/examples/streamCallback.ts new file mode 100644 index 0000000..3bc6a4a --- /dev/null +++ b/src/compiled/examples/streamCallback.ts @@ -0,0 +1,78 @@ +/** + * + * 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.4.1-SNAPSHOT + * + */ +import { Fluence, FluencePeer } from '@fluencelabs/fluence'; +import { + CallParams, + callFunction, + registerService, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v2'; + + +// Services + +// Functions + + +export function someFunc(cb: (arg0: string[], callParams: CallParams<'arg0'>) => void | Promise, config?: {ttl?: number}): Promise; +export function someFunc(peer: FluencePeer, cb: (arg0: string[], callParams: CallParams<'arg0'>) => void | Promise, config?: {ttl?: number}): Promise; +export function someFunc(...args: any) { + + let script = ` + (xor + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (xor + (call %init_peer_id% ("callbackSrv" "cb") [$ifaces]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) + ) + ` + return callFunction( + args, + { + "functionName" : "someFunc", + "returnType" : { + "tag" : "void" + }, + "argDefs" : [ + { + "name" : "cb", + "argType" : { + "tag" : "callback", + "callback" : { + "argDefs" : [ + { + "name" : "arg0", + "argType" : { + "tag" : "primitive" + } + } + ], + "returnType" : { + "tag" : "void" + } + } + } + } + ], + "names" : { + "relay" : "-relay-", + "getDataSrv" : "getDataSrv", + "callbackSrv" : "callbackSrv", + "responseSrv" : "callbackSrv", + "responseFnName" : "response", + "errorHandlingSrv" : "errorHandlingSrv", + "errorFnName" : "error" + } +}, + script + ) +} diff --git a/src/compiled/examples/streamCan.ts b/src/compiled/examples/streamCan.ts new file mode 100644 index 0000000..1e4429e --- /dev/null +++ b/src/compiled/examples/streamCan.ts @@ -0,0 +1,136 @@ +/** + * + * 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.4.1-SNAPSHOT + * + */ +import { Fluence, FluencePeer } from '@fluencelabs/fluence'; +import { + CallParams, + callFunction, + registerService, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v2'; + + +// Services + +// Functions + + +export function toOpt(s: string, config?: {ttl?: number}): Promise; +export function toOpt(peer: FluencePeer, s: string, config?: {ttl?: number}): Promise; +export function toOpt(...args: any) { + + let script = ` + (xor + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "s") [] s) + ) + (ap s $str) + ) + (xor + (call %init_peer_id% ("callbackSrv" "response") [$str]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) + ) + ` + return callFunction( + args, + { + "functionName" : "toOpt", + "returnType" : { + "tag" : "optional" + }, + "argDefs" : [ + { + "name" : "s", + "argType" : { + "tag" : "primitive" + } + } + ], + "names" : { + "relay" : "-relay-", + "getDataSrv" : "getDataSrv", + "callbackSrv" : "callbackSrv", + "responseSrv" : "callbackSrv", + "responseFnName" : "response", + "errorHandlingSrv" : "errorHandlingSrv", + "errorFnName" : "error" + } +}, + script + ) +} + + + +export function accumRes(config?: {ttl?: number}): Promise; +export function accumRes(peer: FluencePeer, config?: {ttl?: number}): Promise; +export function accumRes(...args: any) { + + let script = ` + (xor + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (ap "a" $str) + ) + (call %init_peer_id% ("op" "identity") [$str] push-to-stream-10) + ) + (ap push-to-stream-10 $res_accum) + ) + (ap "b" $str0) + ) + (call %init_peer_id% ("op" "identity") [$str0] push-to-stream-20) + ) + (ap push-to-stream-20 $res_accum) + ) + (call %init_peer_id% ("op" "identity") [[]] push-to-stream-12) + ) + (ap push-to-stream-12 $res_accum) + ) + (xor + (call %init_peer_id% ("callbackSrv" "response") [$res_accum]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) + ) + ` + return callFunction( + args, + { + "functionName" : "accumRes", + "returnType" : { + "tag" : "primitive" + }, + "argDefs" : [ + ], + "names" : { + "relay" : "-relay-", + "getDataSrv" : "getDataSrv", + "callbackSrv" : "callbackSrv", + "responseSrv" : "callbackSrv", + "responseFnName" : "response", + "errorHandlingSrv" : "errorHandlingSrv", + "errorFnName" : "error" + } +}, + script + ) +}