mirror of
https://github.com/fluencelabs/aqua-playground
synced 2025-04-25 02:22:27 +00:00
skipped recursive stream test, update aqua and fluencejs
This commit is contained in:
parent
0e8db7cb20
commit
13b4c58855
15
aqua/examples/recursiveStreams.aqua
Normal file
15
aqua/examples/recursiveStreams.aqua
Normal file
@ -0,0 +1,15 @@
|
||||
|
||||
service YesNoService("yesno"):
|
||||
get() -> string
|
||||
|
||||
func recursiveStream() -> []string:
|
||||
result: *string
|
||||
loop: *string
|
||||
loop <<- "yes"
|
||||
for l <- loop:
|
||||
if l == "yes":
|
||||
loop <- YesNoService.get()
|
||||
else:
|
||||
loop <- YesNoService.get()
|
||||
result <<- "success"
|
||||
<- result
|
119
package-lock.json
generated
119
package-lock.json
generated
@ -10,7 +10,7 @@
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@fluencelabs/aqua-dht-ts": "0.1.38",
|
||||
"@fluencelabs/fluence": "0.20.1",
|
||||
"@fluencelabs/fluence": "0.21.0",
|
||||
"@fluencelabs/fluence-network-environment": "1.0.13",
|
||||
"deep-equal": "^2.0.5"
|
||||
},
|
||||
@ -18,7 +18,7 @@
|
||||
"fldist": "dist/index.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@fluencelabs/aqua": "0.6.1-279",
|
||||
"@fluencelabs/aqua": "0.6.2-281",
|
||||
"@fluencelabs/aqua-dht": "0.2.5",
|
||||
"@fluencelabs/aqua-lib": "0.4.0",
|
||||
"@types/jest": "^27.0.2",
|
||||
@ -696,14 +696,14 @@
|
||||
"integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="
|
||||
},
|
||||
"node_modules/@fluencelabs/aqua": {
|
||||
"version": "0.6.1-279",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.6.1-279.tgz",
|
||||
"integrity": "sha512-SOak1PMEBB6I9W8BToabczaqgpHZCH1f0LToCwQBKSiThiWDnXM5VUNY3qVqtpwjhMfxZa3YuFP+LUycYwmSCA==",
|
||||
"version": "0.6.2-281",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.6.2-281.tgz",
|
||||
"integrity": "sha512-iXlD6+V05tlnwhiXOwEjJ1noHB1dQr8AY1skwu40pXxeP+BX2NjrbSx28kByprfZvK3NykB0N7BNY6pbZpE7eQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@fluencelabs/aqua-ipfs": "0.5.2",
|
||||
"@fluencelabs/aqua-lib": "0.4.0",
|
||||
"@fluencelabs/fluence": "0.19.2",
|
||||
"@fluencelabs/fluence": "0.20.2",
|
||||
"@fluencelabs/fluence-network-environment": "1.0.13",
|
||||
"ipfs-http-client": "50.1.2"
|
||||
},
|
||||
@ -832,38 +832,25 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@fluencelabs/aqua/node_modules/@fluencelabs/avm": {
|
||||
"version": "0.20.5",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.20.5.tgz",
|
||||
"integrity": "sha512-DhCnSzbG8hSkR1C0G/ci3jF+DciJVKpftO80GOdDYi1AXu6dYuqhZSOyWzMSwiHebprk1TDGZ/GSoQ6AGd4lLw==",
|
||||
"version": "0.20.8",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.20.8.tgz",
|
||||
"integrity": "sha512-RF5Vb3USgr7gU0gcXCGYgN9rBXcucgwTgGeUjHOYWQIwuzD795DKjGPbgzfKWWCKFWjz5w/Gimi5beTDvbstOQ==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"copy-avm": "dist/copyAvm.js"
|
||||
}
|
||||
},
|
||||
"node_modules/@fluencelabs/aqua/node_modules/@fluencelabs/avm-runner-background": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm-runner-background/-/avm-runner-background-0.1.2.tgz",
|
||||
"integrity": "sha512-06E8l6ZLkWkpWas1TTojVrs+tekOg/OvnNI6/GKdm4zJL/9ePxW1WYE8Ieg1dIk6FpcP+ZxcEfZZKDoDwn68pQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@fluencelabs/avm-runner-interface": "^0.2.0",
|
||||
"browser-or-node": "^2.0.0",
|
||||
"threads": "^1.7.0"
|
||||
},
|
||||
"bin": {
|
||||
"copy-avm-runner": "dist/copyRunnerScript.js"
|
||||
}
|
||||
},
|
||||
"node_modules/@fluencelabs/aqua/node_modules/@fluencelabs/fluence": {
|
||||
"version": "0.19.2",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.19.2.tgz",
|
||||
"integrity": "sha512-kPt8bOP0kx5sT5vc4XvAoXQsfm7fLBwreks3dZqu1RmJkWbBE1V48/qfJH2AupBRciGh5vztXvu3YeI5csmOmA==",
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.20.2.tgz",
|
||||
"integrity": "sha512-ZvMSwTqGRb2macWoGi+MVC0AwWhWacsVFRSnSp0cQT79So7o2U6+dRNv95V//ttPrC9zlElDehJ0JzY5uxzJLQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@chainsafe/libp2p-noise": "^4.1.1",
|
||||
"@fluencelabs/avm": " 0.20.5",
|
||||
"@fluencelabs/avm-runner-background": "0.1.2",
|
||||
"@fluencelabs/avm": "0.20.8",
|
||||
"@fluencelabs/avm-runner-background": "0.2.0",
|
||||
"@fluencelabs/avm-runner-interface": "^0.2.0",
|
||||
"@fluencelabs/marine-js": "0.1.0",
|
||||
"async": "3.2.0",
|
||||
"browser-or-node": "^2.0.0",
|
||||
"bs58": "4.0.1",
|
||||
@ -960,9 +947,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@fluencelabs/aqua/node_modules/ipfs-utils": {
|
||||
"version": "9.0.4",
|
||||
"resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.4.tgz",
|
||||
"integrity": "sha512-cfLKk004KLoEWJhBx4zg3mCro6mkiNhyGIlT7OZX9zxO1UqvLWpvW7cSZ1b1fbUIZ8qI7X2B7PeKlXC7jSfZ7g==",
|
||||
"version": "9.0.5",
|
||||
"resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.5.tgz",
|
||||
"integrity": "sha512-GXWfsq/nKtwkcTI4+KGc4CU9EFXjtkWaGcFAsnm177kAhA0Fnn8aWNRaF/C0xFraUIl1wTAUTWkaGKigVyfsTw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"any-signal": "^3.0.0",
|
||||
@ -1212,9 +1199,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@fluencelabs/avm": {
|
||||
"version": "0.20.8",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.20.8.tgz",
|
||||
"integrity": "sha512-RF5Vb3USgr7gU0gcXCGYgN9rBXcucgwTgGeUjHOYWQIwuzD795DKjGPbgzfKWWCKFWjz5w/Gimi5beTDvbstOQ==",
|
||||
"version": "0.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.21.0.tgz",
|
||||
"integrity": "sha512-rfPoosyZV8LF5PAu37T0FPSl6jowU7+t+Vw41g3Jvr9k0Lbu7RaWTHJP0zpMiYtlQXZ9iSxJAqPeZmJ7VtDDYA==",
|
||||
"bin": {
|
||||
"copy-avm": "dist/copyAvm.js"
|
||||
}
|
||||
@ -1238,12 +1225,12 @@
|
||||
"integrity": "sha512-Y41pL+UwZZVdormxju8cJQsNRp6tdER0VqJ9Kg9gH2wd1KJAaYTJkyVbn8NB7fEFRUbqfbb1BXHi9wWBYOgGYQ=="
|
||||
},
|
||||
"node_modules/@fluencelabs/fluence": {
|
||||
"version": "0.20.1",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.20.1.tgz",
|
||||
"integrity": "sha512-fGWmO+9WWyXpKaaBMj0kGjIfSV3Soq5SOckSDtXVFm7z5fbRshrrG5e3iDrmPepaAv2vVzwKIsudrcPVYepD0g==",
|
||||
"version": "0.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.21.0.tgz",
|
||||
"integrity": "sha512-Zbos4k73jode29STpeEVfYDIsNhh3sIdgpwA2nm/qyIuEBrFgbI9UXpdAvX41wiwuL5EKprHrr0F1IEaFL8MVw==",
|
||||
"dependencies": {
|
||||
"@chainsafe/libp2p-noise": "^4.1.1",
|
||||
"@fluencelabs/avm": "0.20.8",
|
||||
"@fluencelabs/avm": "0.21.0",
|
||||
"@fluencelabs/avm-runner-background": "0.2.0",
|
||||
"@fluencelabs/avm-runner-interface": "^0.2.0",
|
||||
"@fluencelabs/marine-js": "0.1.0",
|
||||
@ -9889,14 +9876,14 @@
|
||||
}
|
||||
},
|
||||
"@fluencelabs/aqua": {
|
||||
"version": "0.6.1-279",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.6.1-279.tgz",
|
||||
"integrity": "sha512-SOak1PMEBB6I9W8BToabczaqgpHZCH1f0LToCwQBKSiThiWDnXM5VUNY3qVqtpwjhMfxZa3YuFP+LUycYwmSCA==",
|
||||
"version": "0.6.2-281",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.6.2-281.tgz",
|
||||
"integrity": "sha512-iXlD6+V05tlnwhiXOwEjJ1noHB1dQr8AY1skwu40pXxeP+BX2NjrbSx28kByprfZvK3NykB0N7BNY6pbZpE7eQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@fluencelabs/aqua-ipfs": "0.5.2",
|
||||
"@fluencelabs/aqua-lib": "0.4.0",
|
||||
"@fluencelabs/fluence": "0.19.2",
|
||||
"@fluencelabs/fluence": "0.20.2",
|
||||
"@fluencelabs/fluence-network-environment": "1.0.13",
|
||||
"ipfs-http-client": "50.1.2"
|
||||
},
|
||||
@ -9948,32 +9935,22 @@
|
||||
}
|
||||
},
|
||||
"@fluencelabs/avm": {
|
||||
"version": "0.20.5",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.20.5.tgz",
|
||||
"integrity": "sha512-DhCnSzbG8hSkR1C0G/ci3jF+DciJVKpftO80GOdDYi1AXu6dYuqhZSOyWzMSwiHebprk1TDGZ/GSoQ6AGd4lLw==",
|
||||
"version": "0.20.8",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.20.8.tgz",
|
||||
"integrity": "sha512-RF5Vb3USgr7gU0gcXCGYgN9rBXcucgwTgGeUjHOYWQIwuzD795DKjGPbgzfKWWCKFWjz5w/Gimi5beTDvbstOQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@fluencelabs/avm-runner-background": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm-runner-background/-/avm-runner-background-0.1.2.tgz",
|
||||
"integrity": "sha512-06E8l6ZLkWkpWas1TTojVrs+tekOg/OvnNI6/GKdm4zJL/9ePxW1WYE8Ieg1dIk6FpcP+ZxcEfZZKDoDwn68pQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@fluencelabs/avm-runner-interface": "^0.2.0",
|
||||
"browser-or-node": "^2.0.0",
|
||||
"threads": "^1.7.0"
|
||||
}
|
||||
},
|
||||
"@fluencelabs/fluence": {
|
||||
"version": "0.19.2",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.19.2.tgz",
|
||||
"integrity": "sha512-kPt8bOP0kx5sT5vc4XvAoXQsfm7fLBwreks3dZqu1RmJkWbBE1V48/qfJH2AupBRciGh5vztXvu3YeI5csmOmA==",
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.20.2.tgz",
|
||||
"integrity": "sha512-ZvMSwTqGRb2macWoGi+MVC0AwWhWacsVFRSnSp0cQT79So7o2U6+dRNv95V//ttPrC9zlElDehJ0JzY5uxzJLQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@chainsafe/libp2p-noise": "^4.1.1",
|
||||
"@fluencelabs/avm": " 0.20.5",
|
||||
"@fluencelabs/avm-runner-background": "0.1.2",
|
||||
"@fluencelabs/avm": "0.20.8",
|
||||
"@fluencelabs/avm-runner-background": "0.2.0",
|
||||
"@fluencelabs/avm-runner-interface": "^0.2.0",
|
||||
"@fluencelabs/marine-js": "0.1.0",
|
||||
"async": "3.2.0",
|
||||
"browser-or-node": "^2.0.0",
|
||||
"bs58": "4.0.1",
|
||||
@ -10049,9 +10026,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"ipfs-utils": {
|
||||
"version": "9.0.4",
|
||||
"resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.4.tgz",
|
||||
"integrity": "sha512-cfLKk004KLoEWJhBx4zg3mCro6mkiNhyGIlT7OZX9zxO1UqvLWpvW7cSZ1b1fbUIZ8qI7X2B7PeKlXC7jSfZ7g==",
|
||||
"version": "9.0.5",
|
||||
"resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.5.tgz",
|
||||
"integrity": "sha512-GXWfsq/nKtwkcTI4+KGc4CU9EFXjtkWaGcFAsnm177kAhA0Fnn8aWNRaF/C0xFraUIl1wTAUTWkaGKigVyfsTw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"any-signal": "^3.0.0",
|
||||
@ -10374,9 +10351,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"@fluencelabs/avm": {
|
||||
"version": "0.20.8",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.20.8.tgz",
|
||||
"integrity": "sha512-RF5Vb3USgr7gU0gcXCGYgN9rBXcucgwTgGeUjHOYWQIwuzD795DKjGPbgzfKWWCKFWjz5w/Gimi5beTDvbstOQ=="
|
||||
"version": "0.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.21.0.tgz",
|
||||
"integrity": "sha512-rfPoosyZV8LF5PAu37T0FPSl6jowU7+t+Vw41g3Jvr9k0Lbu7RaWTHJP0zpMiYtlQXZ9iSxJAqPeZmJ7VtDDYA=="
|
||||
},
|
||||
"@fluencelabs/avm-runner-background": {
|
||||
"version": "0.2.0",
|
||||
@ -10394,12 +10371,12 @@
|
||||
"integrity": "sha512-Y41pL+UwZZVdormxju8cJQsNRp6tdER0VqJ9Kg9gH2wd1KJAaYTJkyVbn8NB7fEFRUbqfbb1BXHi9wWBYOgGYQ=="
|
||||
},
|
||||
"@fluencelabs/fluence": {
|
||||
"version": "0.20.1",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.20.1.tgz",
|
||||
"integrity": "sha512-fGWmO+9WWyXpKaaBMj0kGjIfSV3Soq5SOckSDtXVFm7z5fbRshrrG5e3iDrmPepaAv2vVzwKIsudrcPVYepD0g==",
|
||||
"version": "0.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.21.0.tgz",
|
||||
"integrity": "sha512-Zbos4k73jode29STpeEVfYDIsNhh3sIdgpwA2nm/qyIuEBrFgbI9UXpdAvX41wiwuL5EKprHrr0F1IEaFL8MVw==",
|
||||
"requires": {
|
||||
"@chainsafe/libp2p-noise": "^4.1.1",
|
||||
"@fluencelabs/avm": "0.20.8",
|
||||
"@fluencelabs/avm": "0.21.0",
|
||||
"@fluencelabs/avm-runner-background": "0.2.0",
|
||||
"@fluencelabs/avm-runner-interface": "^0.2.0",
|
||||
"@fluencelabs/marine-js": "0.1.0",
|
||||
|
@ -29,7 +29,7 @@
|
||||
"do": "aqua dist deploy --addr /dns4/kras-04.fluence.dev/tcp/19001/wss/p2p/12D3KooWFEwNWcHqi9rtsmDhsYcDbRUCDXH84RC4FW6UfsFWaoHi --data-path deploy.json --service tsOracle"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@fluencelabs/aqua": "0.6.1-279",
|
||||
"@fluencelabs/aqua": "0.6.2-281",
|
||||
"@fluencelabs/aqua-dht": "0.2.5",
|
||||
"@fluencelabs/aqua-lib": "0.4.0",
|
||||
"@types/jest": "^27.0.2",
|
||||
@ -40,7 +40,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@fluencelabs/aqua-dht-ts": "0.1.38",
|
||||
"@fluencelabs/fluence": "0.20.1",
|
||||
"@fluencelabs/fluence": "0.21.0",
|
||||
"@fluencelabs/fluence-network-environment": "1.0.13",
|
||||
"deep-equal": "^2.0.5"
|
||||
},
|
||||
|
@ -35,6 +35,7 @@ import {streamCallbackCall} from "../examples/streamCallback";
|
||||
import {streamResCall} from "../examples/streamRestrictionsCall";
|
||||
import {joinIdxCall, joinIdxLocalCall, joinIdxRelayCall} from "../examples/joinCall";
|
||||
import {topologyBug427} from "../compiled/examples/topology";
|
||||
import {recursiveStreamsCall} from "../examples/recursiveStreamsCall";
|
||||
|
||||
var selfPeerId: string;
|
||||
var peer2: FluencePeer;
|
||||
@ -161,6 +162,13 @@ describe('Testing examples', () => {
|
||||
expect(streamCanResult).toEqual([["a"], ["b"], []]);
|
||||
});
|
||||
|
||||
it.skip('recursiveStreams.aqua', async () => {
|
||||
|
||||
let recResult = await recursiveStreamsCall();
|
||||
console.log(recResult)
|
||||
expect(recResult.length).toEqual(3);
|
||||
});
|
||||
|
||||
it('streamCallback.aqua', async () => {
|
||||
let streamCallResult = await streamCallbackCall();
|
||||
expect(streamCallResult).toEqual([]);
|
||||
|
123
src/compiled/examples/recursiveStreams.ts
Normal file
123
src/compiled/examples/recursiveStreams.ts
Normal file
@ -0,0 +1,123 @@
|
||||
/**
|
||||
*
|
||||
* 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.6.2-281
|
||||
*
|
||||
*/
|
||||
import { Fluence, FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
CallParams,
|
||||
callFunction,
|
||||
registerService,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v2';
|
||||
|
||||
|
||||
// Services
|
||||
|
||||
export interface YesNoServiceDef {
|
||||
get: (callParams: CallParams<null>) => string | Promise<string>;
|
||||
}
|
||||
export function registerYesNoService(service: YesNoServiceDef): void;
|
||||
export function registerYesNoService(serviceId: string, service: YesNoServiceDef): void;
|
||||
export function registerYesNoService(peer: FluencePeer, service: YesNoServiceDef): void;
|
||||
export function registerYesNoService(peer: FluencePeer, serviceId: string, service: YesNoServiceDef): void;
|
||||
|
||||
|
||||
export function registerYesNoService(...args: any) {
|
||||
registerService(
|
||||
args,
|
||||
{
|
||||
"defaultServiceId" : "yesno",
|
||||
"functions" : [
|
||||
{
|
||||
"functionName" : "get",
|
||||
"argDefs" : [
|
||||
],
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
|
||||
export function recursiveStream(
|
||||
config?: {ttl?: number}
|
||||
): Promise<string[]>;
|
||||
|
||||
export function recursiveStream(
|
||||
peer: FluencePeer,
|
||||
config?: {ttl?: number}
|
||||
): Promise<string[]>;
|
||||
|
||||
export function recursiveStream(...args: any) {
|
||||
|
||||
let script = `
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(new $loop
|
||||
(new $result
|
||||
(seq
|
||||
(seq
|
||||
(ap "yes" $loop)
|
||||
(fold $loop l
|
||||
(seq
|
||||
(seq
|
||||
(xor
|
||||
(match l "yes"
|
||||
(xor
|
||||
(call %init_peer_id% ("yesno" "get") [] $loop)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("yesno" "get") [] $loop)
|
||||
)
|
||||
(ap "success" $result)
|
||||
)
|
||||
(next l)
|
||||
)
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("op" "identity") [$result] result-fix)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [result-fix])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
`
|
||||
return callFunction(
|
||||
args,
|
||||
{
|
||||
"functionName" : "recursiveStream",
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
},
|
||||
"argDefs" : [
|
||||
],
|
||||
"names" : {
|
||||
"relay" : "-relay-",
|
||||
"getDataSrv" : "getDataSrv",
|
||||
"callbackSrv" : "callbackSrv",
|
||||
"responseSrv" : "callbackSrv",
|
||||
"responseFnName" : "response",
|
||||
"errorHandlingSrv" : "errorHandlingSrv",
|
||||
"errorFnName" : "error"
|
||||
}
|
||||
},
|
||||
script
|
||||
)
|
||||
}
|
20
src/examples/recursiveStreamsCall.ts
Normal file
20
src/examples/recursiveStreamsCall.ts
Normal file
@ -0,0 +1,20 @@
|
||||
import {recursiveStream, registerYesNoService} from "../compiled/examples/recursiveStreams";
|
||||
|
||||
export async function recursiveStreamsCall(): Promise<string[]> {
|
||||
let i = 0;
|
||||
registerYesNoService({
|
||||
get: () => {
|
||||
i++;
|
||||
if (i > 3) {
|
||||
console.log("return no")
|
||||
return "no"
|
||||
} else {
|
||||
console.log("return yes")
|
||||
return "yes"
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
return await recursiveStream()
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user