From 17a00d853fde673dcd4af54a05c1d6e119bf2230 Mon Sep 17 00:00:00 2001 From: Pavel Murygin Date: Wed, 8 Sep 2021 14:38:40 +0300 Subject: [PATCH] Rewrite JS SDK examples with release version of libraries --- js-sdk/hello-world/package-lock.json | 42 ++-- js-sdk/hello-world/package.json | 9 +- js-sdk/hello-world/src/_aqua/hello-world.ts | 232 +++++++++--------- js-sdk/hello-world/src/index.ts | 3 +- .../node-example/aqua/demo-calculation.aqua | 13 + js-sdk/node-example/aqua/demoCall.aqua | 11 - js-sdk/node-example/package-lock.json | 30 +-- js-sdk/node-example/package.json | 9 +- js-sdk/node-example/src/_aqua/calc.ts | 113 ++------- .../src/_aqua/demo-calculation.ts | 122 +++++++++ js-sdk/node-example/src/index.ts | 5 +- 11 files changed, 309 insertions(+), 280 deletions(-) create mode 100644 js-sdk/node-example/aqua/demo-calculation.aqua delete mode 100644 js-sdk/node-example/aqua/demoCall.aqua create mode 100644 js-sdk/node-example/src/_aqua/demo-calculation.ts diff --git a/js-sdk/hello-world/package-lock.json b/js-sdk/hello-world/package-lock.json index dbdc005..66be4c7 100644 --- a/js-sdk/hello-world/package-lock.json +++ b/js-sdk/hello-world/package-lock.json @@ -52,29 +52,29 @@ "@cspotcode/source-map-consumer": "0.8.0" } }, - "@fluencelabs/aqua-cli": { - "version": "0.2.1-219", - "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-cli/-/aqua-cli-0.2.1-219.tgz", - "integrity": "sha512-0Yh0cN4yyF69DQXKvk8jYpFsvVLT4IztRVkKjoc/6uqAzNLEKdldvXC2cZ5nDcz4CyAWkg9IyTCdY+7g1q8Ufg==", + "@fluencelabs/aqua": { + "version": "0.3.0-222", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.3.0-222.tgz", + "integrity": "sha512-dwBPNoE490LX9CRssNyz3nHKgpxwYvkRIhmTbjbFYXknzZWN18vx6WseD9tuzIFnlXdsJ/MoUhNZAxmT+VPhiw==", "dev": true }, "@fluencelabs/avm": { - "version": "0.14.0-async.17", - "resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.14.0-async.17.tgz", - "integrity": "sha512-sTb5UNwhmrrFixexq2TxWVv0yOvfRnBt92dBX983JM47D0UoeCXg/s+S9t6ZtP1wz0zBv/FLfXwmgBFgJIKdCw==", + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.14.4.tgz", + "integrity": "sha512-XyR+1H5k0CAc+mDHOkl81viX8XeW1Yqbw793xbsfUfju5bUb/hqk+gHv3q8lAFdbrCG5P45gdOT08a5RNODZaQ==", "requires": { "base64-js": "1.5.1" } }, "@fluencelabs/fluence": { - "version": "0.10.0-new-js-sdk-api.14", - "resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.10.0-new-js-sdk-api.14.tgz", - "integrity": "sha512-XUwmxSxyG7RGDvEUc1Tb99Hobe9nKS5pDLmZi9XGn4aYq7gq2Sbhf26mn7BpCD12NlxAoYLjr/jxtVAj74jhbw==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.11.0.tgz", + "integrity": "sha512-HfUS8eLwfviiJhqsrHnOnRxO20TbdahPreP6AkBXQaEpWeRew6vxAd0Dn+xdzy6KCJ4W9GOKLcgtPfqquIO2Pg==", "requires": { "@chainsafe/libp2p-noise": "4.0.0", - "@fluencelabs/avm": "0.14.0-async.17", + "@fluencelabs/avm": "0.14.4", "async": "3.2.0", - "base64-js": "^1.3.1", + "base64-js": "1.5.1", "bs58": "4.0.1", "cids": "0.8.1", "it-length-prefixed": "3.0.1", @@ -323,9 +323,9 @@ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" }, "@types/node": { - "version": "16.7.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz", - "integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==" + "version": "16.7.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.13.tgz", + "integrity": "sha512-pLUPDn+YG3FYEt/pHI74HmnJOWzeR+tOIQzUx93pi9M7D8OE7PSLr97HboXwk5F+JS+TLtWuzCOW97AHjmOXXA==" }, "@types/retry": { "version": "0.12.1", @@ -1220,9 +1220,9 @@ "integrity": "sha512-wiI02c+G1BVuu0jz30Nsr1/et0cpSRulKUusN8HDZXxuX4MdUzfMp2P4JUk+a49Wr1kHitRLrnnh3+UzJ6neaQ==" }, "it-glob": { - "version": "0.0.13", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.13.tgz", - "integrity": "sha512-0Hcd5BraJUPzL28NWiFbdNrcdyNxNTKKdU3sjdFiYynNTQpwlG2UKW31X7bp+XhJwux/oPzIquo5ioztVmc2RQ==", + "version": "0.0.14", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.14.tgz", + "integrity": "sha512-TKKzs9CglbsihSpcwJPXN5DBUssu4akRzPlp8QJRCoLrKoaOpyY2V1qDlxx+UMivn0i114YyTd4AawWl7eqIdw==", "requires": { "@types/minimatch": "^3.0.4", "minimatch": "^3.0.4" @@ -1760,9 +1760,9 @@ } }, "multiformats": { - "version": "9.4.6", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.4.6.tgz", - "integrity": "sha512-ngZRO82P7mPvw/3gu5NQ2QiUJGYTS0LAxvQnEAlWCJakvn7YpK2VAd9JWM5oosYUeqoVbkylH/FsqRc4fc2+ag==" + "version": "9.4.7", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.4.7.tgz", + "integrity": "sha512-fZbcdf7LnvokPAZYkv4TLXe7PAg9sQ5qLXcwrAmZOloEb2+5FtFiAY+l3/9wsu4oTJXTV3JSggFQQ2dJLS01vA==" }, "multihashes": { "version": "0.4.21", diff --git a/js-sdk/hello-world/package.json b/js-sdk/hello-world/package.json index 6daadd0..00afb2d 100644 --- a/js-sdk/hello-world/package.json +++ b/js-sdk/hello-world/package.json @@ -5,20 +5,19 @@ "main": "index.js", "scripts": { "exec": "node -r ts-node/register src/index.ts", - "compile-aqua": "aqua-cli --import . -i ./aqua/ -o ./src/_aqua", - "watch-aqua": "chokidar \"**/*.aqua\" -c \"npm run compile-aqua\"", - "tmp": "java -jar aqua-cli.jar -m node_modules --import . -i ./aqua/ -o ./src/_aqua" + "compile-aqua": "aqua --import . -i ./aqua/ -o ./src/_aqua", + "watch-aqua": "chokidar \"**/*.aqua\" -c \"npm run compile-aqua\"" }, "author": "", "license": "ISC", "devDependencies": { - "@fluencelabs/aqua-cli": "^0.2.1-219", + "@fluencelabs/aqua": "^0.3.0-222", "chokidar-cli": "^3.0.0", "ts-node": "^10.2.1", "typescript": "^4.4.2" }, "dependencies": { - "@fluencelabs/fluence": "0.10.0-new-js-sdk-api.14", + "@fluencelabs/fluence": "0.11.0", "@fluencelabs/fluence-network-environment": "1.0.10" } } diff --git a/js-sdk/hello-world/src/_aqua/hello-world.ts b/js-sdk/hello-world/src/_aqua/hello-world.ts index 8351075..092b9a8 100644 --- a/js-sdk/hello-world/src/_aqua/hello-world.ts +++ b/js-sdk/hello-world/src/_aqua/hello-world.ts @@ -1,116 +1,105 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * 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.2.0-SNAPSHOT + * Aqua version: 0.3.0-222 * */ -import { FluencePeer } from "@fluencelabs/fluence"; +import { FluencePeer } from '@fluencelabs/fluence'; import { - ResultCodes, - RequestFlow, - RequestFlowBuilder, - CallParams, -} from "@fluencelabs/fluence/dist/internal/compilerSupport/v1"; + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; + // Services -export function registerHelloWorld(service: { - hello: (str: string, callParams: CallParams<"str">) => Promise; -}): void; -export function registerHelloWorld( - serviceId: string, - service: { - hello: (str: string, callParams: CallParams<"str">) => Promise; - } -): void; -export function registerHelloWorld( - peer: FluencePeer, - service: { - hello: (str: string, callParams: CallParams<"str">) => Promise; - } -): void; -export function registerHelloWorld( - peer: FluencePeer, - serviceId: string, - service: { - hello: (str: string, callParams: CallParams<"str">) => Promise; - } -): void; -export function registerHelloWorld(...args) { - let peer: FluencePeer; - let serviceId; - let service; - if (args[0] instanceof FluencePeer) { - peer = args[0]; - } else { - peer = FluencePeer.default; - } + export interface HelloWorldDef { + hello: (str: string, callParams: CallParams<'str'>) => void; + } - if (typeof args[0] === "string") { - serviceId = args[0]; - } else if (typeof args[1] === "string") { - serviceId = args[1]; - } else { - serviceId = "hello-world"; - } - - if (!(args[0] instanceof FluencePeer) && typeof args[0] === "object") { - service = args[0]; - } else if (typeof args[1] === "object") { - service = args[1]; - } else { - service = args[2]; - } - - peer.callServiceHandler.use(async (req, resp, next) => { - if (req.serviceId !== serviceId) { - await next(); - return; + export function registerHelloWorld(service: HelloWorldDef): void; +export function registerHelloWorld(serviceId: string, service: HelloWorldDef): void; +export function registerHelloWorld(peer: FluencePeer, service: HelloWorldDef): void; +export function registerHelloWorld(peer: FluencePeer, serviceId: string, service: HelloWorldDef): void; + export function registerHelloWorld(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; } - if (req.fnName === "hello") { - const callParams = { - ...req.particleContext, - tetraplets: { - str: req.tetraplets[0], - }, - }; - resp.retCode = ResultCodes.success; - await service.hello(req.args[0], callParams); - resp.result = {}; - } - - await next(); - }); + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } + else { + serviceId = "hello-world" } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + + if (req.fnName === 'hello') { + + const callParams = { + ...req.particleContext, + tetraplets: { + str: req.tetraplets[0] + }, + }; + resp.retCode = ResultCodes.success; + service.hello(req.args[0], callParams); resp.result = {} + + } + + + next(); + }); + } + + // Functions -export async function sayHello(config?: { ttl?: number }): Promise; -export async function sayHello( - peer: FluencePeer, - config?: { ttl?: number } -): Promise; -export async function sayHello(...args) { - let peer: FluencePeer; - - let config; - if (args[0] instanceof FluencePeer) { - peer = args[0]; - config = args[1]; - } else { - peer = FluencePeer.default; - config = args[0]; - } - - let request: RequestFlow; - const promise = new Promise((resolve, reject) => { - const r = new RequestFlowBuilder() - .disableInjections() - .withRawScript( - ` + export function sayHello(config?: {ttl?: number}) : Promise; + export function sayHello(peer: FluencePeer, config?: {ttl?: number}) : Promise; + export function sayHello(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } + + let request: RequestFlow; + const promise = new Promise((resolve, reject) => { + const r = new RequestFlowBuilder() + .disableInjections() + .withRawScript( + ` (xor (seq (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) @@ -119,29 +108,32 @@ export async function sayHello(...args) { (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) ) - ` - ) - .configHandler((h) => { - h.on("getDataSrv", "-relay-", async () => { - return peer.connectionInfo.connectedRelays[0] || null; - }); + `, + ) + .configHandler((h) => { + h.on('getDataSrv', '-relay-', () => { + return peer.connectionInfo.connectedRelay ; + }); + + h.onEvent('callbackSrv', 'response', (args) => { + +}); - h.onEvent("callbackSrv", "response", async (args) => {}); - - h.onEvent("errorHandlingSrv", "error", async (args) => { - const [err] = args; - reject(err); - }); - }) - .handleScriptError(reject) - .handleTimeout(() => { - reject("Request timed out for sayHello"); - }); - if (config && config.ttl) { - r.withTTL(config.ttl); - } - request = r.build(); - }); - await peer.initiateFlow(request!); - return Promise.race([promise, Promise.resolve()]); + h.onEvent('errorHandlingSrv', 'error', (args) => { + const [err] = args; + reject(err); + }); + }) + .handleScriptError(reject) + .handleTimeout(() => { + reject('Request timed out for sayHello'); + }) + if(config && config.ttl) { + r.withTTL(config.ttl) + } + request = r.build(); + }); + peer.internals.initiateFlow(request!); + return Promise.race([promise, Promise.resolve()]); } + diff --git a/js-sdk/hello-world/src/index.ts b/js-sdk/hello-world/src/index.ts index ac72a3a..b3cb9ec 100644 --- a/js-sdk/hello-world/src/index.ts +++ b/js-sdk/hello-world/src/index.ts @@ -1,5 +1,4 @@ -import { FluencePeer, randomPeerId } from "@fluencelabs/fluence"; -import { krasnodar } from "@fluencelabs/fluence-network-environment"; +import { FluencePeer } from "@fluencelabs/fluence"; import { registerHelloWorld, sayHello } from "./_aqua/hello-world"; async function main() { diff --git a/js-sdk/node-example/aqua/demo-calculation.aqua b/js-sdk/node-example/aqua/demo-calculation.aqua new file mode 100644 index 0000000..06f5044 --- /dev/null +++ b/js-sdk/node-example/aqua/demo-calculation.aqua @@ -0,0 +1,13 @@ +import "./calc.aqua" + +const PEER ?= "12D3KooWLBkw4Tz8bRoSriy5WEpHyWfU11jEK3b5yCa7FBRDRWH3" +const RELAY ?= "12D3KooWSD5PToNiLQwKDXsu8JSysCwUt8BVUJEqCHcDe7P5h45e" + +func demoCalculation() -> f32: + on PEER via RELAY: + Calc.add(10) + Calc.multiply(5) + Calc.subtract(8) + Calc.divide(6) + res <- Calc.getResult() + <- res diff --git a/js-sdk/node-example/aqua/demoCall.aqua b/js-sdk/node-example/aqua/demoCall.aqua deleted file mode 100644 index d3e1b89..0000000 --- a/js-sdk/node-example/aqua/demoCall.aqua +++ /dev/null @@ -1,11 +0,0 @@ -const peer ?= "12D3KooWLBkw4Tz8bRoSriy5WEpHyWfU11jEK3b5yCa7FBRDRWH3" -const relay ?= "12D3KooWSD5PToNiLQwKDXsu8JSysCwUt8BVUJEqCHcDe7P5h45e" - -func demoCalculation() -> f32: - on peer via relay - Calc.add(10) - Calc.multiply(5) - Calc.subtract(8) - Calc.divide(6) - res <- Calc.getResult() - <- res \ No newline at end of file diff --git a/js-sdk/node-example/package-lock.json b/js-sdk/node-example/package-lock.json index 3023e94..dfcdad0 100644 --- a/js-sdk/node-example/package-lock.json +++ b/js-sdk/node-example/package-lock.json @@ -52,29 +52,29 @@ "@cspotcode/source-map-consumer": "0.8.0" } }, - "@fluencelabs/aqua-cli": { - "version": "0.2.1-219", - "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-cli/-/aqua-cli-0.2.1-219.tgz", - "integrity": "sha512-0Yh0cN4yyF69DQXKvk8jYpFsvVLT4IztRVkKjoc/6uqAzNLEKdldvXC2cZ5nDcz4CyAWkg9IyTCdY+7g1q8Ufg==", + "@fluencelabs/aqua": { + "version": "0.3.0-222", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.3.0-222.tgz", + "integrity": "sha512-dwBPNoE490LX9CRssNyz3nHKgpxwYvkRIhmTbjbFYXknzZWN18vx6WseD9tuzIFnlXdsJ/MoUhNZAxmT+VPhiw==", "dev": true }, "@fluencelabs/avm": { - "version": "0.14.0-async.20", - "resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.14.0-async.20.tgz", - "integrity": "sha512-VcH+d7ha0oswM61ji2oktfvy2MXYQAVSgF0l5ZoNm7Pm9lzk2/cK1WuuDZ7OEvN0WRAls8zYNkZbPScB8KKJQg==", + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.14.4.tgz", + "integrity": "sha512-XyR+1H5k0CAc+mDHOkl81viX8XeW1Yqbw793xbsfUfju5bUb/hqk+gHv3q8lAFdbrCG5P45gdOT08a5RNODZaQ==", "requires": { "base64-js": "1.5.1" } }, "@fluencelabs/fluence": { - "version": "0.10.0-new-js-sdk-api.15", - "resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.10.0-new-js-sdk-api.15.tgz", - "integrity": "sha512-CCHQ2YYAoCvezt+ptdBphp9d0P1axWsZU103xOjNysFkvk2gt4h0aX00rz+PBRpWpNTg05DNuYcCj9YYlYadpA==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.11.0.tgz", + "integrity": "sha512-HfUS8eLwfviiJhqsrHnOnRxO20TbdahPreP6AkBXQaEpWeRew6vxAd0Dn+xdzy6KCJ4W9GOKLcgtPfqquIO2Pg==", "requires": { "@chainsafe/libp2p-noise": "4.0.0", - "@fluencelabs/avm": "0.14.0-async.20", + "@fluencelabs/avm": "0.14.4", "async": "3.2.0", - "base64-js": "^1.3.1", + "base64-js": "1.5.1", "bs58": "4.0.1", "cids": "0.8.1", "it-length-prefixed": "3.0.1", @@ -323,9 +323,9 @@ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" }, "@types/node": { - "version": "16.7.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz", - "integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==" + "version": "16.7.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.13.tgz", + "integrity": "sha512-pLUPDn+YG3FYEt/pHI74HmnJOWzeR+tOIQzUx93pi9M7D8OE7PSLr97HboXwk5F+JS+TLtWuzCOW97AHjmOXXA==" }, "@types/retry": { "version": "0.12.1", diff --git a/js-sdk/node-example/package.json b/js-sdk/node-example/package.json index 0a07a04..ab0c401 100644 --- a/js-sdk/node-example/package.json +++ b/js-sdk/node-example/package.json @@ -5,20 +5,19 @@ "main": "index.js", "scripts": { "exec": "node -r ts-node/register src/index.ts", - "compile-aqua": "aqua-cli --import . -i ./aqua/ -o ./src/_aqua", - "watch-aqua": "chokidar \"**/*.aqua\" -c \"npm run compile-aqua\"", - "tmp": "java -jar ~/work/fluence/aqua-cli.jar -m node_modules --import . -i ./aqua/ -o ./src/_aqua" + "compile-aqua": "aqua --import . -i ./aqua/ -o ./src/_aqua", + "watch-aqua": "chokidar \"**/*.aqua\" -c \"npm run compile-aqua\"" }, "author": "", "license": "ISC", "devDependencies": { - "@fluencelabs/aqua-cli": "^0.2.1-219", + "@fluencelabs/aqua": "^0.3.0-222", "chokidar-cli": "^3.0.0", "ts-node": "^10.2.1", "typescript": "^4.4.2" }, "dependencies": { - "@fluencelabs/fluence": "0.10.0-new-js-sdk-api.15", + "@fluencelabs/fluence": "0.11.0", "@fluencelabs/fluence-network-environment": "1.0.10" } } diff --git a/js-sdk/node-example/src/_aqua/calc.ts b/js-sdk/node-example/src/_aqua/calc.ts index ca70883..6d5915b 100644 --- a/js-sdk/node-example/src/_aqua/calc.ts +++ b/js-sdk/node-example/src/_aqua/calc.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.2.2-SNAPSHOT + * Aqua version: 0.3.0-222 * */ import { FluencePeer } from "@fluencelabs/fluence"; @@ -17,12 +17,12 @@ import { // Services export interface CalcDef { - add: (n: number, callParams: CallParams<"n">) => Promise | void; - divide: (n: number, callParams: CallParams<"n">) => Promise | void; - getResult: (callParams: CallParams) => Promise | number; - multiply: (n: number, callParams: CallParams<"n">) => Promise | void; - reset: (callParams: CallParams) => Promise | void; - subtract: (n: number, callParams: CallParams<"n">) => Promise | void; + add: (n: number, callParams: CallParams<"n">) => void; + divide: (n: number, callParams: CallParams<"n">) => void; + getResult: (callParams: CallParams) => number; + multiply: (n: number, callParams: CallParams<"n">) => void; + reset: (callParams: CallParams) => void; + subtract: (n: number, callParams: CallParams<"n">) => void; } export function registerCalc(service: CalcDef): void; @@ -59,9 +59,9 @@ export function registerCalc(...args) { service = args[2]; } - peer.callServiceHandler.use(async (req, resp, next) => { + peer.internals.callServiceHandler.use((req, resp, next) => { if (req.serviceId !== serviceId) { - await next(); + next(); return; } @@ -73,7 +73,7 @@ export function registerCalc(...args) { }, }; resp.retCode = ResultCodes.success; - await service.add(req.args[0], callParams); + service.add(req.args[0], callParams); resp.result = {}; } @@ -85,7 +85,7 @@ export function registerCalc(...args) { }, }; resp.retCode = ResultCodes.success; - await service.divide(req.args[0], callParams); + service.divide(req.args[0], callParams); resp.result = {}; } @@ -95,7 +95,7 @@ export function registerCalc(...args) { tetraplets: {}, }; resp.retCode = ResultCodes.success; - resp.result = await service.getResult(callParams); + resp.result = service.getResult(callParams); } if (req.fnName === "multiply") { @@ -106,7 +106,7 @@ export function registerCalc(...args) { }, }; resp.retCode = ResultCodes.success; - await service.multiply(req.args[0], callParams); + service.multiply(req.args[0], callParams); resp.result = {}; } @@ -116,7 +116,7 @@ export function registerCalc(...args) { tetraplets: {}, }; resp.retCode = ResultCodes.success; - await service.reset(callParams); + service.reset(callParams); resp.result = {}; } @@ -128,93 +128,12 @@ export function registerCalc(...args) { }, }; resp.retCode = ResultCodes.success; - await service.subtract(req.args[0], callParams); + service.subtract(req.args[0], callParams); resp.result = {}; } - await next(); + next(); }); } // Functions - -export async function demoCalculation(config?: { - ttl?: number; -}): Promise; -export async function demoCalculation( - peer: FluencePeer, - config?: { ttl?: number } -): Promise; -export async function demoCalculation(...args) { - let peer: FluencePeer; - - let config; - if (args[0] instanceof FluencePeer) { - peer = args[0]; - config = args[1]; - } else { - peer = FluencePeer.default; - config = args[0]; - } - - let request: RequestFlow; - const promise = new Promise((resolve, reject) => { - const r = new RequestFlowBuilder() - .disableInjections() - .withRawScript( - ` - (xor - (seq - (seq - (seq - (seq - (seq - (seq - (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) - (call %init_peer_id% ("calc" "add") [10]) - ) - (call %init_peer_id% ("calc" "multiply") [5]) - ) - (call %init_peer_id% ("calc" "subtract") [8]) - ) - (call %init_peer_id% ("calc" "divide") [6]) - ) - (call %init_peer_id% ("calc" "getResult") [] res) - ) - (xor - (call %init_peer_id% ("callbackSrv" "response") [res]) - (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) - ) - ) - (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) -) - - ` - ) - .configHandler((h) => { - h.on("getDataSrv", "-relay-", async () => { - return peer.connectionInfo.connectedRelays[0] || null; - }); - - h.onEvent("callbackSrv", "response", async (args) => { - const [res] = args; - resolve(res); - }); - - h.onEvent("errorHandlingSrv", "error", async (args) => { - const [err] = args; - reject(err); - }); - }) - .handleScriptError(reject) - .handleTimeout(() => { - reject("Request timed out for demoCalculation"); - }); - if (config && config.ttl) { - r.withTTL(config.ttl); - } - request = r.build(); - }); - await peer.initiateFlow(request!); - return promise; -} diff --git a/js-sdk/node-example/src/_aqua/demo-calculation.ts b/js-sdk/node-example/src/_aqua/demo-calculation.ts new file mode 100644 index 0000000..e860ae4 --- /dev/null +++ b/js-sdk/node-example/src/_aqua/demo-calculation.ts @@ -0,0 +1,122 @@ +/** + * + * 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.3.0-222 + * + */ +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; + + +// Services + + +// Functions + + export function demoCalculation(config?: {ttl?: number}) : Promise; + export function demoCalculation(peer: FluencePeer, config?: {ttl?: number}) : Promise; + export function demoCalculation(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } + + let request: RequestFlow; + const promise = new Promise((resolve, reject) => { + const r = new RequestFlowBuilder() + .disableInjections() + .withRawScript( + ` + (xor + (seq + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call -relay- ("op" "noop") []) + ) + (call "12D3KooWSD5PToNiLQwKDXsu8JSysCwUt8BVUJEqCHcDe7P5h45e" ("op" "noop") []) + ) + (xor + (seq + (seq + (seq + (seq + (call "12D3KooWLBkw4Tz8bRoSriy5WEpHyWfU11jEK3b5yCa7FBRDRWH3" ("calc" "add") [10]) + (call "12D3KooWLBkw4Tz8bRoSriy5WEpHyWfU11jEK3b5yCa7FBRDRWH3" ("calc" "multiply") [5]) + ) + (call "12D3KooWLBkw4Tz8bRoSriy5WEpHyWfU11jEK3b5yCa7FBRDRWH3" ("calc" "subtract") [8]) + ) + (call "12D3KooWLBkw4Tz8bRoSriy5WEpHyWfU11jEK3b5yCa7FBRDRWH3" ("calc" "divide") [6]) + ) + (call "12D3KooWLBkw4Tz8bRoSriy5WEpHyWfU11jEK3b5yCa7FBRDRWH3" ("calc" "getResult") [] res) + ) + (seq + (seq + (seq + (call "12D3KooWSD5PToNiLQwKDXsu8JSysCwUt8BVUJEqCHcDe7P5h45e" ("op" "noop") []) + (call -relay- ("op" "noop") []) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + (call -relay- ("op" "noop") []) + ) + ) + ) + (call "12D3KooWSD5PToNiLQwKDXsu8JSysCwUt8BVUJEqCHcDe7P5h45e" ("op" "noop") []) + ) + (call -relay- ("op" "noop") []) + ) + (xor + (call %init_peer_id% ("callbackSrv" "response") [res]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) +) + + `, + ) + .configHandler((h) => { + h.on('getDataSrv', '-relay-', () => { + return peer.connectionInfo.connectedRelay ; + }); + + h.onEvent('callbackSrv', 'response', (args) => { + const [res] = args; + resolve(res); +}); + + h.onEvent('errorHandlingSrv', 'error', (args) => { + const [err] = args; + reject(err); + }); + }) + .handleScriptError(reject) + .handleTimeout(() => { + reject('Request timed out for demoCalculation'); + }) + if(config && config.ttl) { + r.withTTL(config.ttl) + } + request = r.build(); + }); + peer.internals.initiateFlow(request!); + return promise; +} + diff --git a/js-sdk/node-example/src/index.ts b/js-sdk/node-example/src/index.ts index fd076f2..80c08ba 100644 --- a/js-sdk/node-example/src/index.ts +++ b/js-sdk/node-example/src/index.ts @@ -49,10 +49,7 @@ async function main() { console.log("application started"); console.log("peer id is: ", FluencePeer.default.connectionInfo.selfPeerId); - console.log( - "relay is: ", - FluencePeer.default.connectionInfo.connectedRelays[0] - ); + console.log("relay is: ", FluencePeer.default.connectionInfo.connectedRelay); console.log("press any key to continue"); await keypress();