This commit is contained in:
DieMyst
2021-11-04 19:09:29 +03:00
parent 67d12947eb
commit 90d353c9c0
4 changed files with 559 additions and 1 deletions

View File

@ -186,7 +186,7 @@ describe('Testing examples', () => {
it('closures.aqua', async () => { it('closures.aqua', async () => {
let closuresResult = await closuresCall(); let closuresResult = await closuresCall();
let res1 = ["/ip4/164.90.164.229/tcp/7001", "/ip4/164.90.164.229/tcp/9001/ws"] 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]); expect(closuresResult).toStrictEqual(["in", res1, res2]);
}); });

View File

@ -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<null>) => void | Promise<void>;
}
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<string>;
export function closureIn(peer: FluencePeer, peer1: string, config?: {ttl?: number}): Promise<string>;
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<ClosureOutResult>;
export function closureOut(peer: FluencePeer, peer2: string, config?: {ttl?: number}): Promise<ClosureOutResult>;
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<ClosureBigResult>;
export function closureBig(peer: FluencePeer, peer1: string, peer2: string, config?: {ttl?: number}): Promise<ClosureBigResult>;
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
)
}

View File

@ -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<void>, config?: {ttl?: number}): Promise<void>;
export function someFunc(peer: FluencePeer, cb: (arg0: string[], callParams: CallParams<'arg0'>) => void | Promise<void>, config?: {ttl?: number}): Promise<void>;
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
)
}

View File

@ -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<string | null>;
export function toOpt(peer: FluencePeer, s: string, config?: {ttl?: number}): Promise<string | null>;
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<string | null[]>;
export function accumRes(peer: FluencePeer, config?: {ttl?: number}): Promise<string | null[]>;
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
)
}