mirror of
https://github.com/fluencelabs/aqua-playground
synced 2025-03-14 20:50:50 +00:00
Update JS SDK version and migrate to the new JS API (#11)
This commit is contained in:
parent
200c33e969
commit
26c3fa7303
8
.prettierrc.js
Normal file
8
.prettierrc.js
Normal file
@ -0,0 +1,8 @@
|
||||
module.exports = {
|
||||
semi: true,
|
||||
trailingComma: 'all',
|
||||
singleQuote: true,
|
||||
printWidth: 120,
|
||||
tabWidth: 4,
|
||||
useTabs: false,
|
||||
};
|
@ -2,6 +2,8 @@ import "@fluencelabs/aqua-dht/pubsub.aqua"
|
||||
import "@fluencelabs/aqua-dht/dht.aqua"
|
||||
import "@fluencelabs/aqua-lib/builtin.aqua"
|
||||
|
||||
export getNeighbours, initTopicAndSubscribe, findSubscribers
|
||||
|
||||
func put_value(initial_peer: string, value: string) -> string:
|
||||
initTopicAndSubscribe(initial_peer, "some-const3", value, nil, nil)
|
||||
<- "OK"
|
||||
|
@ -1,4 +1,5 @@
|
||||
module FooBars declares decl_foo, decl_bar, SuperFoo, DECLARE_CONST, DECLARE_CONST2
|
||||
export SuperFoo
|
||||
|
||||
const DECLARE_CONST = "declare_const"
|
||||
const DECLARE_CONST2 = "declare_const2"
|
||||
|
@ -1,6 +1,5 @@
|
||||
module Exports declares some_string, MyExportSrv, EXPORT_CONST, some_random_func
|
||||
|
||||
-- TODO: check it in TS after it will be implemented
|
||||
export some_string as string_from_lib
|
||||
export MyExportSrv
|
||||
|
||||
|
25
aqua/examples/new-api-full.aqua
Normal file
25
aqua/examples/new-api-full.aqua
Normal file
@ -0,0 +1,25 @@
|
||||
service ServiceWithDefaultId("defaultId"):
|
||||
hello(s: string)
|
||||
|
||||
service ServiceWithOUTDefaultId:
|
||||
hello(s: string)
|
||||
|
||||
service MoreMembers:
|
||||
member1()
|
||||
member2(s1: string)
|
||||
member3(s1: string, s2: string)
|
||||
member4(s1: string, s2: string, i: i32) -> i32
|
||||
member5(s1: string, s2: string, i: i32) -> i32
|
||||
|
||||
func f1(callback: string, i32 -> ()):
|
||||
callback("hello, world", 42)
|
||||
|
||||
func f2(num: i32, callback: string, i32 -> ()):
|
||||
callback("hello, world", 42)
|
||||
|
||||
func f3(num: i32, callback: string, i32 -> ()) -> string:
|
||||
callback("hello, world", 42)
|
||||
<- "hello world"
|
||||
|
||||
func callBackZeroArgs(callback: -> ()):
|
||||
callback()
|
6
aqua/examples/new-api.aqua
Normal file
6
aqua/examples/new-api.aqua
Normal file
@ -0,0 +1,6 @@
|
||||
service HelloWorld("default"):
|
||||
sayHello(s: string)
|
||||
getNumber() -> i32
|
||||
|
||||
func callMeBack(callback: string, i32 -> ()):
|
||||
callback("hello, world", 42)
|
10392
package-lock.json
generated
10392
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
79
package.json
79
package.json
@ -1,41 +1,42 @@
|
||||
{
|
||||
"name": "aquamarine-template",
|
||||
"version": "0.3.9",
|
||||
"keywords": [
|
||||
"typescript",
|
||||
"template"
|
||||
],
|
||||
"author": "FluenceLabs (https://github.com/fluencelabs)",
|
||||
"license": "MIT",
|
||||
"main": "dist/index.js",
|
||||
"bin": {
|
||||
"fldist": "./dist/index.js"
|
||||
},
|
||||
"types": "dist/index.d.ts",
|
||||
"files": [
|
||||
"dist/"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "tsc",
|
||||
"examples": "node -r ts-node/register src/run-examples.ts",
|
||||
"pubsub": "node -r ts-node/register src/pubsub.ts",
|
||||
"exec": "npm run compile-aqua && node -r ts-node/register src/index.ts",
|
||||
"run": "node -r ts-node/register src/index.ts",
|
||||
"compile-aqua": "aqua-cli -i ./aqua/ -o ./src/compiled",
|
||||
"compile-aqua:air": "aqua-cli -i ./aqua/ -o ./compiled-air -a"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@fluencelabs/aqua-cli": "^0.2.2-221",
|
||||
"@fluencelabs/aqua-lib": "0.1.14",
|
||||
"@fluencelabs/aqua-dht": "0.1.38",
|
||||
"ts-node": "^9.1.1",
|
||||
"typescript": "^4.2.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fluencelabs/fluence": "0.10.1",
|
||||
"@fluencelabs/fluence-network-environment": "1.0.10",
|
||||
"@fluencelabs/aqua-dht-ts": "0.1.38",
|
||||
"deep-equal": "^2.0.5"
|
||||
},
|
||||
"description": "Minimal template for aquamarine project."
|
||||
"name": "aquamarine-template",
|
||||
"version": "0.3.9",
|
||||
"keywords": [
|
||||
"typescript",
|
||||
"template"
|
||||
],
|
||||
"author": "FluenceLabs (https://github.com/fluencelabs)",
|
||||
"license": "MIT",
|
||||
"main": "dist/index.js",
|
||||
"bin": {
|
||||
"fldist": "./dist/index.js"
|
||||
},
|
||||
"types": "dist/index.d.ts",
|
||||
"files": [
|
||||
"dist/"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "tsc",
|
||||
"examples": "node -r ts-node/register src/run-examples.ts",
|
||||
"pubsub": "node -r ts-node/register src/pubsub.ts",
|
||||
"exec": "npm run compile-aqua && node -r ts-node/register src/index.ts",
|
||||
"run": "node -r ts-node/register src/index.ts",
|
||||
"compile-aqua": "aqua-cli -i ./aqua/ -o ./src/compiled",
|
||||
"compile-aqua:air": "aqua-cli -i ./aqua/ -o ./compiled-air -a",
|
||||
"prettify-compiled": "prettier --write src/compiled"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@fluencelabs/aqua-cli": "0.2.0-208",
|
||||
"@fluencelabs/aqua-dht": "0.1.36",
|
||||
"@fluencelabs/aqua-lib": "0.1.14",
|
||||
"ts-node": "^9.1.1",
|
||||
"typescript": "^4.2.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fluencelabs/aqua-dht-ts": "0.1.36",
|
||||
"@fluencelabs/fluence": "0.11.0",
|
||||
"@fluencelabs/fluence-network-environment": "^1.0.10",
|
||||
"deep-equal": "^2.0.5"
|
||||
},
|
||||
"description": "Minimal template for aquamarine project."
|
||||
}
|
||||
|
710
src/compiled/dht/dht-example.ts
Normal file
710
src/compiled/dht/dht-example.ts
Normal file
@ -0,0 +1,710 @@
|
||||
/**
|
||||
*
|
||||
* 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-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
// Functions
|
||||
|
||||
export function put_value(initial_peer: string, value: string, config?: { ttl?: number }): Promise<string>;
|
||||
export function put_value(
|
||||
peer: FluencePeer,
|
||||
initial_peer: string,
|
||||
value: string,
|
||||
config?: { ttl?: number },
|
||||
): Promise<string>;
|
||||
export function put_value(...args) {
|
||||
let peer: FluencePeer;
|
||||
let initial_peer;
|
||||
let value;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
initial_peer = args[1];
|
||||
value = args[2];
|
||||
config = args[3];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
initial_peer = args[0];
|
||||
value = args[1];
|
||||
config = args[2];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "initial_peer") [] initial_peer)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "value") [] value)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(seq
|
||||
(call initial_peer ("op" "string_to_b58") ["some-const3"] k)
|
||||
(call initial_peer ("kad" "neighborhood") [k [] []] nodes)
|
||||
)
|
||||
(seq
|
||||
(call -relay- ("op" "noop") [])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(fold nodes n
|
||||
(par
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(call n ("peer" "timestamp_sec") [] t)
|
||||
(call n ("aqua-dht" "register_key") ["some-const3" t false 0])
|
||||
)
|
||||
(call n ("aqua-dht" "put_value") ["some-const3" value t [] [] 0])
|
||||
)
|
||||
(null)
|
||||
)
|
||||
(seq
|
||||
(call -relay- ("op" "noop") [])
|
||||
(next n)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") ["OK"])
|
||||
(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.on('getDataSrv', 'initial_peer', () => {
|
||||
return initial_peer;
|
||||
});
|
||||
h.on('getDataSrv', 'value', () => {
|
||||
return value;
|
||||
});
|
||||
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 put_value');
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
export function registerKeyPutValue(
|
||||
node_id: string,
|
||||
key: string,
|
||||
value: string,
|
||||
relay_id: string | null,
|
||||
service_id: string | null,
|
||||
config?: { ttl?: number },
|
||||
): Promise<string[]>;
|
||||
export function registerKeyPutValue(
|
||||
peer: FluencePeer,
|
||||
node_id: string,
|
||||
key: string,
|
||||
value: string,
|
||||
relay_id: string | null,
|
||||
service_id: string | null,
|
||||
config?: { ttl?: number },
|
||||
): Promise<string[]>;
|
||||
export function registerKeyPutValue(...args) {
|
||||
let peer: FluencePeer;
|
||||
let node_id;
|
||||
let key;
|
||||
let value;
|
||||
let relay_id;
|
||||
let service_id;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
node_id = args[1];
|
||||
key = args[2];
|
||||
value = args[3];
|
||||
relay_id = args[4];
|
||||
service_id = args[5];
|
||||
config = args[6];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
node_id = args[0];
|
||||
key = args[1];
|
||||
value = args[2];
|
||||
relay_id = args[3];
|
||||
service_id = args[4];
|
||||
config = args[5];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string[]>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "node_id") [] node_id)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "key") [] key)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "value") [] value)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "relay_id") [] relay_id)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "service_id") [] service_id)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(seq
|
||||
(call key ("op" "string_to_b58") [node_id] k)
|
||||
(call key ("kad" "neighborhood") [k [] []] nodes)
|
||||
)
|
||||
(seq
|
||||
(call -relay- ("op" "noop") [])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(fold nodes n
|
||||
(par
|
||||
(xor
|
||||
(call n ("peer" "timestamp_sec") [] t)
|
||||
(seq
|
||||
(call -relay- ("op" "noop") [])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(seq
|
||||
(call -relay- ("op" "noop") [])
|
||||
(next n)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [nodes])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4])
|
||||
)
|
||||
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'node_id', () => {
|
||||
return node_id;
|
||||
});
|
||||
h.on('getDataSrv', 'key', () => {
|
||||
return key;
|
||||
});
|
||||
h.on('getDataSrv', 'value', () => {
|
||||
return value;
|
||||
});
|
||||
h.on('getDataSrv', 'relay_id', () => {
|
||||
return relay_id === null ? [] : [relay_id];
|
||||
});
|
||||
h.on('getDataSrv', 'service_id', () => {
|
||||
return service_id === null ? [] : [service_id];
|
||||
});
|
||||
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 registerKeyPutValue');
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
export function getNeighbours(node_id: string, topic: string, config?: { ttl?: number }): Promise<string[]>;
|
||||
export function getNeighbours(
|
||||
peer: FluencePeer,
|
||||
node_id: string,
|
||||
topic: string,
|
||||
config?: { ttl?: number },
|
||||
): Promise<string[]>;
|
||||
export function getNeighbours(...args) {
|
||||
let peer: FluencePeer;
|
||||
let node_id;
|
||||
let topic;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
node_id = args[1];
|
||||
topic = args[2];
|
||||
config = args[3];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
node_id = args[0];
|
||||
topic = args[1];
|
||||
config = args[2];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string[]>((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% ("getDataSrv" "node_id") [] node_id)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "topic") [] topic)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(seq
|
||||
(call node_id ("op" "string_to_b58") [topic] k)
|
||||
(call node_id ("kad" "neighborhood") [k [] []] nodes)
|
||||
)
|
||||
(seq
|
||||
(call -relay- ("op" "noop") [])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [nodes])
|
||||
(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.on('getDataSrv', 'node_id', () => {
|
||||
return node_id;
|
||||
});
|
||||
h.on('getDataSrv', 'topic', () => {
|
||||
return topic;
|
||||
});
|
||||
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 getNeighbours');
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
export function findSubscribers(
|
||||
node_id: string,
|
||||
topic: string,
|
||||
config?: { ttl?: number },
|
||||
): Promise<
|
||||
{
|
||||
peer_id: string;
|
||||
relay_id: string[];
|
||||
service_id: string[];
|
||||
set_by: string;
|
||||
timestamp_created: number;
|
||||
value: string;
|
||||
weight: number;
|
||||
}[]
|
||||
>;
|
||||
export function findSubscribers(
|
||||
peer: FluencePeer,
|
||||
node_id: string,
|
||||
topic: string,
|
||||
config?: { ttl?: number },
|
||||
): Promise<
|
||||
{
|
||||
peer_id: string;
|
||||
relay_id: string[];
|
||||
service_id: string[];
|
||||
set_by: string;
|
||||
timestamp_created: number;
|
||||
value: string;
|
||||
weight: number;
|
||||
}[]
|
||||
>;
|
||||
export function findSubscribers(...args) {
|
||||
let peer: FluencePeer;
|
||||
let node_id;
|
||||
let topic;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
node_id = args[1];
|
||||
topic = args[2];
|
||||
config = args[3];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
node_id = args[0];
|
||||
topic = args[1];
|
||||
config = args[2];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<
|
||||
{
|
||||
peer_id: string;
|
||||
relay_id: string[];
|
||||
service_id: string[];
|
||||
set_by: string;
|
||||
timestamp_created: number;
|
||||
value: string;
|
||||
weight: number;
|
||||
}[]
|
||||
>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "node_id") [] node_id)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "topic") [] topic)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(seq
|
||||
(call node_id ("op" "string_to_b58") [topic] k)
|
||||
(call node_id ("kad" "neighborhood") [k [] []] nodes)
|
||||
)
|
||||
(seq
|
||||
(seq
|
||||
(call -relay- ("op" "noop") [])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(fold nodes n
|
||||
(par
|
||||
(seq
|
||||
(xor
|
||||
(seq
|
||||
(call n ("peer" "timestamp_sec") [] t)
|
||||
(call n ("aqua-dht" "get_values") [topic t] $res)
|
||||
)
|
||||
(null)
|
||||
)
|
||||
(call node_id ("op" "noop") [])
|
||||
)
|
||||
(seq
|
||||
(call -relay- ("op" "noop") [])
|
||||
(next n)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(xor
|
||||
(call node_id ("aqua-dht" "merge_two") [$res.$.[0].result! $res.$.[1].result!] v)
|
||||
(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") [v.$.result!])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4])
|
||||
)
|
||||
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'node_id', () => {
|
||||
return node_id;
|
||||
});
|
||||
h.on('getDataSrv', 'topic', () => {
|
||||
return topic;
|
||||
});
|
||||
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 findSubscribers');
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
export function initTopicAndSubscribe(
|
||||
node_id: string,
|
||||
topic: string,
|
||||
value: string,
|
||||
relay_id: string | null,
|
||||
service_id: string | null,
|
||||
config?: { ttl?: number },
|
||||
): Promise<void>;
|
||||
export function initTopicAndSubscribe(
|
||||
peer: FluencePeer,
|
||||
node_id: string,
|
||||
topic: string,
|
||||
value: string,
|
||||
relay_id: string | null,
|
||||
service_id: string | null,
|
||||
config?: { ttl?: number },
|
||||
): Promise<void>;
|
||||
export function initTopicAndSubscribe(...args) {
|
||||
let peer: FluencePeer;
|
||||
let node_id;
|
||||
let topic;
|
||||
let value;
|
||||
let relay_id;
|
||||
let service_id;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
node_id = args[1];
|
||||
topic = args[2];
|
||||
value = args[3];
|
||||
relay_id = args[4];
|
||||
service_id = args[5];
|
||||
config = args[6];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
node_id = args[0];
|
||||
topic = args[1];
|
||||
value = args[2];
|
||||
relay_id = args[3];
|
||||
service_id = args[4];
|
||||
config = args[5];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<void>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "node_id") [] node_id)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "topic") [] topic)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "value") [] value)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "relay_id") [] relay_id)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "service_id") [] service_id)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(seq
|
||||
(call node_id ("op" "string_to_b58") [topic] k)
|
||||
(call node_id ("kad" "neighborhood") [k [] []] nodes)
|
||||
)
|
||||
(seq
|
||||
(call -relay- ("op" "noop") [])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(fold nodes n
|
||||
(par
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(call n ("peer" "timestamp_sec") [] t)
|
||||
(call n ("aqua-dht" "register_key") [topic t false 0])
|
||||
)
|
||||
(call n ("aqua-dht" "put_value") [topic value t relay_id service_id 0])
|
||||
)
|
||||
(null)
|
||||
)
|
||||
(seq
|
||||
(call -relay- ("op" "noop") [])
|
||||
(next n)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'node_id', () => {
|
||||
return node_id;
|
||||
});
|
||||
h.on('getDataSrv', 'topic', () => {
|
||||
return topic;
|
||||
});
|
||||
h.on('getDataSrv', 'value', () => {
|
||||
return value;
|
||||
});
|
||||
h.on('getDataSrv', 'relay_id', () => {
|
||||
return relay_id === null ? [] : [relay_id];
|
||||
});
|
||||
h.on('getDataSrv', 'service_id', () => {
|
||||
return service_id === null ? [] : [service_id];
|
||||
});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
})
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for initTopicAndSubscribe');
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
peer.internals.initiateFlow(request!);
|
||||
return Promise.race([promise, Promise.resolve()]);
|
||||
}
|
@ -1,37 +1,114 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//OpHa
|
||||
//defaultId = "op"
|
||||
export interface OpHaDef {
|
||||
array: (a: string, b: string, callParams: CallParams<'a' | 'b'>) => string[];
|
||||
identity: (a: string, callParams: CallParams<'a'>) => string;
|
||||
}
|
||||
|
||||
//array: (a: string, b: string) => string[]
|
||||
//identity: (a: string) => string
|
||||
//END OpHa
|
||||
export function registerOpHa(service: OpHaDef): void;
|
||||
export function registerOpHa(serviceId: string, service: OpHaDef): void;
|
||||
export function registerOpHa(peer: FluencePeer, service: OpHaDef): void;
|
||||
export function registerOpHa(peer: FluencePeer, serviceId: string, service: OpHaDef): void;
|
||||
export function registerOpHa(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'op';
|
||||
}
|
||||
|
||||
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 === 'array') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
a: req.tetraplets[0],
|
||||
b: req.tetraplets[1],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.array(req.args[0], req.args[1], callParams);
|
||||
}
|
||||
|
||||
if (req.fnName === 'identity') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
a: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.identity(req.args[0], callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function doSmth(client: FluenceClient, arg: {value:string}, config?: {ttl?: number}): Promise<string[]> {
|
||||
export function doSmth(arg: { value: string }, config?: { ttl?: number }): Promise<string[]>;
|
||||
export function doSmth(peer: FluencePeer, arg: { value: string }, config?: { ttl?: number }): Promise<string[]>;
|
||||
export function doSmth(...args) {
|
||||
let peer: FluencePeer;
|
||||
let arg;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
arg = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
arg = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string[]>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -51,20 +128,21 @@ export async function doSmth(client: FluenceClient, arg: {value:string}, config?
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'arg', () => {
|
||||
return arg;
|
||||
});
|
||||
h.on('getDataSrv', 'arg', () => {return arg;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -72,13 +150,12 @@ export async function doSmth(client: FluenceClient, arg: {value:string}, config?
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for doSmth');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,29 +1,63 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
|
||||
// Functions
|
||||
|
||||
export async function passFunctionAsArg(client: FluenceClient, node: string, str: string, c: (arg0: string) => string, config?: {ttl?: number}): Promise<void> {
|
||||
export function passFunctionAsArg(
|
||||
node: string,
|
||||
str: string,
|
||||
c: (arg0: string, callParams: CallParams<'arg0'>) => string,
|
||||
config?: { ttl?: number },
|
||||
): Promise<void>;
|
||||
export function passFunctionAsArg(
|
||||
peer: FluencePeer,
|
||||
node: string,
|
||||
str: string,
|
||||
c: (arg0: string, callParams: CallParams<'arg0'>) => string,
|
||||
config?: { ttl?: number },
|
||||
): Promise<void>;
|
||||
export function passFunctionAsArg(...args) {
|
||||
let peer: FluencePeer;
|
||||
let node;
|
||||
let str;
|
||||
let c;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
node = args[1];
|
||||
str = args[2];
|
||||
c = args[3];
|
||||
config = args[4];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
node = args[0];
|
||||
str = args[1];
|
||||
c = args[2];
|
||||
config = args[3];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<void>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -67,18 +101,36 @@ export async function passFunctionAsArg(client: FluenceClient, node: string, str
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'node', () => {return node;});
|
||||
h.on('getDataSrv', 'str', () => {return str;});
|
||||
h.on('callbackSrv', 'c', (args) => {return c(args[0]);});
|
||||
|
||||
h.on('getDataSrv', 'node', () => {
|
||||
return node;
|
||||
});
|
||||
h.on('getDataSrv', 'str', () => {
|
||||
return str;
|
||||
});
|
||||
|
||||
h.use((req, resp, next) => {
|
||||
if (req.serviceId === 'callbackSrv' && req.fnName === 'c') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = c(req.args[0], callParams);
|
||||
}
|
||||
next();
|
||||
});
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -86,13 +138,12 @@ h.on('callbackSrv', 'c', (args) => {return c(args[0]);});
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for passFunctionAsArg');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return Promise.race([promise, Promise.resolve()]);
|
||||
}
|
||||
|
||||
|
@ -1,36 +1,111 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//CoService
|
||||
//defaultId = "coservice-id"
|
||||
export interface CoServiceDef {
|
||||
call: (callParams: CallParams<null>) => string;
|
||||
}
|
||||
|
||||
//call: () => string
|
||||
//END CoService
|
||||
export function registerCoService(service: CoServiceDef): void;
|
||||
export function registerCoService(serviceId: string, service: CoServiceDef): void;
|
||||
export function registerCoService(peer: FluencePeer, service: CoServiceDef): void;
|
||||
export function registerCoService(peer: FluencePeer, serviceId: string, service: CoServiceDef): void;
|
||||
export function registerCoService(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'coservice-id';
|
||||
}
|
||||
|
||||
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 === 'call') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.call(callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function coFunc(client: FluenceClient, node: string, c: (arg0: {external_addresses:string[]}) => void, config?: {ttl?: number}): Promise<void> {
|
||||
export function coFunc(
|
||||
node: string,
|
||||
c: (arg0: { external_addresses: string[] }, callParams: CallParams<'arg0'>) => void,
|
||||
config?: { ttl?: number },
|
||||
): Promise<void>;
|
||||
export function coFunc(
|
||||
peer: FluencePeer,
|
||||
node: string,
|
||||
c: (arg0: { external_addresses: string[] }, callParams: CallParams<'arg0'>) => void,
|
||||
config?: { ttl?: number },
|
||||
): Promise<void>;
|
||||
export function coFunc(...args) {
|
||||
let peer: FluencePeer;
|
||||
let node;
|
||||
let c;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
node = args[1];
|
||||
c = args[2];
|
||||
config = args[3];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
node = args[0];
|
||||
c = args[1];
|
||||
config = args[2];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<void>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -65,17 +140,34 @@ export async function coFunc(client: FluenceClient, node: string, c: (arg0: {ext
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'node', () => {return node;});
|
||||
h.on('callbackSrv', 'c', (args) => {c(args[0]); return {};});
|
||||
|
||||
h.on('getDataSrv', 'node', () => {
|
||||
return node;
|
||||
});
|
||||
|
||||
h.use((req, resp, next) => {
|
||||
if (req.serviceId === 'callbackSrv' && req.fnName === 'c') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
c(req.args[0], callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
next();
|
||||
});
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -83,13 +175,12 @@ h.on('callbackSrv', 'c', (args) => {c(args[0]); return {};});
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for coFunc');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return Promise.race([promise, Promise.resolve()]);
|
||||
}
|
||||
|
||||
|
@ -1,37 +1,152 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//TestS
|
||||
//defaultId = "some-id"
|
||||
export interface TestSDef {
|
||||
multiline: (a: string, b: string, c: boolean, callParams: CallParams<'a' | 'b' | 'c'>) => string;
|
||||
t: (arg0: string, callParams: CallParams<'arg0'>) => string;
|
||||
}
|
||||
|
||||
//multiline: (a: string, b: string, c: boolean) => string
|
||||
//t: (arg0: string) => string
|
||||
//END TestS
|
||||
export function registerTestS(service: TestSDef): void;
|
||||
export function registerTestS(serviceId: string, service: TestSDef): void;
|
||||
export function registerTestS(peer: FluencePeer, service: TestSDef): void;
|
||||
export function registerTestS(peer: FluencePeer, serviceId: string, service: TestSDef): void;
|
||||
export function registerTestS(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'some-id';
|
||||
}
|
||||
|
||||
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 === 'multiline') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
a: req.tetraplets[0],
|
||||
b: req.tetraplets[1],
|
||||
c: req.tetraplets[2],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.multiline(req.args[0], req.args[1], req.args[2], callParams);
|
||||
}
|
||||
|
||||
if (req.fnName === 't') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.t(req.args[0], callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function doStuff(client: FluenceClient, a: string, b: string, c: boolean, d: boolean, e: string[], g: string[], str: string, config?: {ttl?: number}): Promise<string[]> {
|
||||
export function doStuff(
|
||||
a: string,
|
||||
b: string,
|
||||
c: boolean,
|
||||
d: boolean,
|
||||
e: string[],
|
||||
g: string[],
|
||||
str: string,
|
||||
config?: { ttl?: number },
|
||||
): Promise<string[]>;
|
||||
export function doStuff(
|
||||
peer: FluencePeer,
|
||||
a: string,
|
||||
b: string,
|
||||
c: boolean,
|
||||
d: boolean,
|
||||
e: string[],
|
||||
g: string[],
|
||||
str: string,
|
||||
config?: { ttl?: number },
|
||||
): Promise<string[]>;
|
||||
export function doStuff(...args) {
|
||||
let peer: FluencePeer;
|
||||
let a;
|
||||
let b;
|
||||
let c;
|
||||
let d;
|
||||
let e;
|
||||
let g;
|
||||
let str;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
a = args[1];
|
||||
b = args[2];
|
||||
c = args[3];
|
||||
d = args[4];
|
||||
e = args[5];
|
||||
g = args[6];
|
||||
str = args[7];
|
||||
config = args[8];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
a = args[0];
|
||||
b = args[1];
|
||||
c = args[2];
|
||||
d = args[3];
|
||||
e = args[4];
|
||||
g = args[5];
|
||||
str = args[6];
|
||||
config = args[7];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string[]>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -143,26 +258,39 @@ export async function doStuff(client: FluenceClient, a: string, b: string, c: bo
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 5])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'a', () => {
|
||||
return a;
|
||||
});
|
||||
h.on('getDataSrv', 'b', () => {
|
||||
return b;
|
||||
});
|
||||
h.on('getDataSrv', 'c', () => {
|
||||
return c;
|
||||
});
|
||||
h.on('getDataSrv', 'd', () => {
|
||||
return d;
|
||||
});
|
||||
h.on('getDataSrv', 'e', () => {
|
||||
return e;
|
||||
});
|
||||
h.on('getDataSrv', 'g', () => {
|
||||
return g;
|
||||
});
|
||||
h.on('getDataSrv', 'str', () => {
|
||||
return str;
|
||||
});
|
||||
h.on('getDataSrv', 'a', () => {return a;});
|
||||
h.on('getDataSrv', 'b', () => {return b;});
|
||||
h.on('getDataSrv', 'c', () => {return c;});
|
||||
h.on('getDataSrv', 'd', () => {return d;});
|
||||
h.on('getDataSrv', 'e', () => {return e;});
|
||||
h.on('getDataSrv', 'g', () => {return g;});
|
||||
h.on('getDataSrv', 'str', () => {return str;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -170,13 +298,12 @@ h.on('getDataSrv', 'str', () => {return str;});
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for doStuff');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,45 +1,154 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//Getter
|
||||
//defaultId = "test"
|
||||
export interface GetterDef {
|
||||
createStr: (arg0: number, callParams: CallParams<'arg0'>) => string;
|
||||
}
|
||||
|
||||
//createStr: (arg0: number) => string
|
||||
//END Getter
|
||||
export function registerGetter(service: GetterDef): void;
|
||||
export function registerGetter(serviceId: string, service: GetterDef): void;
|
||||
export function registerGetter(peer: FluencePeer, service: GetterDef): void;
|
||||
export function registerGetter(peer: FluencePeer, serviceId: string, service: GetterDef): void;
|
||||
export function registerGetter(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'test';
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
//OpO
|
||||
//defaultId = "op"
|
||||
if (req.fnName === 'createStr') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.createStr(req.args[0], callParams);
|
||||
}
|
||||
|
||||
//identity: (arg0: string) => string
|
||||
//END OpO
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
export interface OpODef {
|
||||
identity: (arg0: string, callParams: CallParams<'arg0'>) => string;
|
||||
}
|
||||
|
||||
export function registerOpO(service: OpODef): void;
|
||||
export function registerOpO(serviceId: string, service: OpODef): void;
|
||||
export function registerOpO(peer: FluencePeer, service: OpODef): void;
|
||||
export function registerOpO(peer: FluencePeer, serviceId: string, service: OpODef): void;
|
||||
export function registerOpO(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'op';
|
||||
}
|
||||
|
||||
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 === 'identity') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.identity(req.args[0], callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function callConstant(client: FluenceClient, config?: {ttl?: number}): Promise<string[]> {
|
||||
export function callConstant(config?: { ttl?: number }): Promise<string[]>;
|
||||
export function callConstant(peer: FluencePeer, config?: { ttl?: number }): Promise<string[]>;
|
||||
export function callConstant(...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<string[]>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -56,20 +165,19 @@ export async function callConstant(client: FluenceClient, config?: {ttl?: number
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -77,13 +185,12 @@ export async function callConstant(client: FluenceClient, config?: {ttl?: number
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for callConstant');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,36 +1,97 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//NodeIdGetter
|
||||
//defaultId = "somesrv"
|
||||
export interface NodeIdGetterDef {
|
||||
get: (callParams: CallParams<null>) => { name: string; peerId: string };
|
||||
}
|
||||
|
||||
//get: () => {name:string;peerId:string}
|
||||
//END NodeIdGetter
|
||||
export function registerNodeIdGetter(service: NodeIdGetterDef): void;
|
||||
export function registerNodeIdGetter(serviceId: string, service: NodeIdGetterDef): void;
|
||||
export function registerNodeIdGetter(peer: FluencePeer, service: NodeIdGetterDef): void;
|
||||
export function registerNodeIdGetter(peer: FluencePeer, serviceId: string, service: NodeIdGetterDef): void;
|
||||
export function registerNodeIdGetter(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'somesrv';
|
||||
}
|
||||
|
||||
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 === 'get') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.get(callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function getAliasedData(client: FluenceClient, config?: {ttl?: number}): Promise<string> {
|
||||
export function getAliasedData(config?: { ttl?: number }): Promise<string>;
|
||||
export function getAliasedData(peer: FluencePeer, config?: { ttl?: number }): Promise<string>;
|
||||
export function getAliasedData(...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<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
@ -44,20 +105,19 @@ export async function getAliasedData(client: FluenceClient, config?: {ttl?: numb
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -65,13 +125,12 @@ export async function getAliasedData(client: FluenceClient, config?: {ttl?: numb
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for getAliasedData');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,55 +1,218 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//Peer
|
||||
//defaultId = "peer"
|
||||
export interface PeerDef {
|
||||
is_connected: (arg0: string, callParams: CallParams<'arg0'>) => boolean;
|
||||
}
|
||||
|
||||
//is_connected: (arg0: string) => boolean
|
||||
//END Peer
|
||||
export function registerPeer(service: PeerDef): void;
|
||||
export function registerPeer(serviceId: string, service: PeerDef): void;
|
||||
export function registerPeer(peer: FluencePeer, service: PeerDef): void;
|
||||
export function registerPeer(peer: FluencePeer, serviceId: string, service: PeerDef): void;
|
||||
export function registerPeer(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'peer';
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
//Op
|
||||
//defaultId = "op"
|
||||
if (req.fnName === 'is_connected') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.is_connected(req.args[0], callParams);
|
||||
}
|
||||
|
||||
//identity: () => void
|
||||
//END Op
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
export interface OpDef {
|
||||
identity: (callParams: CallParams<null>) => void;
|
||||
}
|
||||
|
||||
export function registerOp(service: OpDef): void;
|
||||
export function registerOp(serviceId: string, service: OpDef): void;
|
||||
export function registerOp(peer: FluencePeer, service: OpDef): void;
|
||||
export function registerOp(peer: FluencePeer, serviceId: string, service: OpDef): void;
|
||||
export function registerOp(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'op';
|
||||
}
|
||||
|
||||
//Test
|
||||
//defaultId = "test"
|
||||
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];
|
||||
}
|
||||
|
||||
//doSomething: () => boolean
|
||||
//getUserList: () => {name:string;peer_id:string;relay_id:string}[]
|
||||
//END Test
|
||||
peer.internals.callServiceHandler.use((req, resp, next) => {
|
||||
if (req.serviceId !== serviceId) {
|
||||
next();
|
||||
return;
|
||||
}
|
||||
|
||||
if (req.fnName === 'identity') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
service.identity(callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
export interface TestDef {
|
||||
doSomething: (callParams: CallParams<null>) => boolean;
|
||||
getUserList: (callParams: CallParams<null>) => { name: string; peer_id: string; relay_id: string }[];
|
||||
}
|
||||
|
||||
export function registerTest(service: TestDef): void;
|
||||
export function registerTest(serviceId: string, service: TestDef): void;
|
||||
export function registerTest(peer: FluencePeer, service: TestDef): void;
|
||||
export function registerTest(peer: FluencePeer, serviceId: string, service: TestDef): void;
|
||||
export function registerTest(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'test';
|
||||
}
|
||||
|
||||
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 === 'doSomething') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.doSomething(callParams);
|
||||
}
|
||||
|
||||
if (req.fnName === 'getUserList') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.getUserList(callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function betterMessage(client: FluenceClient, relay: string, config?: {ttl?: number}): Promise<void> {
|
||||
export function betterMessage(relay: string, config?: { ttl?: number }): Promise<void>;
|
||||
export function betterMessage(peer: FluencePeer, relay: string, config?: { ttl?: number }): Promise<void>;
|
||||
export function betterMessage(...args) {
|
||||
let peer: FluencePeer;
|
||||
let relay;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
relay = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
relay = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<void>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -83,16 +246,18 @@ export async function betterMessage(client: FluenceClient, relay: string, config
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'relay', () => {return relay;});
|
||||
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return relay;
|
||||
});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -100,13 +265,12 @@ export async function betterMessage(client: FluenceClient, relay: string, config
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for betterMessage');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return Promise.race([promise, Promise.resolve()]);
|
||||
}
|
||||
|
||||
|
@ -1,36 +1,102 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//Return
|
||||
//defaultId = "returnService"
|
||||
export interface ReturnDef {
|
||||
run: (arg0: { external_addresses: string[] }, callParams: CallParams<'arg0'>) => void;
|
||||
}
|
||||
|
||||
//run: (arg0: {external_addresses:string[]}) => void
|
||||
//END Return
|
||||
export function registerReturn(service: ReturnDef): void;
|
||||
export function registerReturn(serviceId: string, service: ReturnDef): void;
|
||||
export function registerReturn(peer: FluencePeer, service: ReturnDef): void;
|
||||
export function registerReturn(peer: FluencePeer, serviceId: string, service: ReturnDef): void;
|
||||
export function registerReturn(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'returnService';
|
||||
}
|
||||
|
||||
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 === 'run') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
service.run(req.args[0], callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function test(client: FluenceClient, node: string, config?: {ttl?: number}): Promise<void> {
|
||||
export function test(node: string, config?: { ttl?: number }): Promise<void>;
|
||||
export function test(peer: FluencePeer, node: string, config?: { ttl?: number }): Promise<void>;
|
||||
export function test(...args) {
|
||||
let peer: FluencePeer;
|
||||
let node;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
node = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
node = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<void>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -56,16 +122,18 @@ export async function test(client: FluenceClient, node: string, config?: {ttl?:
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'node', () => {return node;});
|
||||
|
||||
h.on('getDataSrv', 'node', () => {
|
||||
return node;
|
||||
});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -73,13 +141,12 @@ export async function test(client: FluenceClient, node: string, config?: {ttl?:
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for test');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return Promise.race([promise, Promise.resolve()]);
|
||||
}
|
||||
|
||||
|
@ -1,29 +1,46 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
|
||||
// Functions
|
||||
|
||||
export async function iterateAndPrint(client: FluenceClient, strings: string[], config?: {ttl?: number}): Promise<void> {
|
||||
export function iterateAndPrint(strings: string[], config?: { ttl?: number }): Promise<void>;
|
||||
export function iterateAndPrint(peer: FluencePeer, strings: string[], config?: { ttl?: number }): Promise<void>;
|
||||
export function iterateAndPrint(...args) {
|
||||
let peer: FluencePeer;
|
||||
let strings;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
strings = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
strings = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<void>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
@ -39,16 +56,18 @@ export async function iterateAndPrint(client: FluenceClient, strings: string[],
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'strings', () => {return strings;});
|
||||
|
||||
h.on('getDataSrv', 'strings', () => {
|
||||
return strings;
|
||||
});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -56,26 +75,51 @@ export async function iterateAndPrint(client: FluenceClient, strings: string[],
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for iterateAndPrint');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return Promise.race([promise, Promise.resolve()]);
|
||||
}
|
||||
|
||||
|
||||
export function iterateAndPrintParallel(
|
||||
nodes: string[],
|
||||
c: (arg0: { external_addresses: string[] }, callParams: CallParams<'arg0'>) => void,
|
||||
config?: { ttl?: number },
|
||||
): Promise<void>;
|
||||
export function iterateAndPrintParallel(
|
||||
peer: FluencePeer,
|
||||
nodes: string[],
|
||||
c: (arg0: { external_addresses: string[] }, callParams: CallParams<'arg0'>) => void,
|
||||
config?: { ttl?: number },
|
||||
): Promise<void>;
|
||||
export function iterateAndPrintParallel(...args) {
|
||||
let peer: FluencePeer;
|
||||
let nodes;
|
||||
let c;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
nodes = args[1];
|
||||
c = args[2];
|
||||
config = args[3];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
nodes = args[0];
|
||||
c = args[1];
|
||||
config = args[2];
|
||||
}
|
||||
|
||||
export async function iterateAndPrintParallel(client: FluenceClient, nodes: string[], c: (arg0: {external_addresses:string[]}) => void, config?: {ttl?: number}): Promise<void> {
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<void>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
@ -106,17 +150,34 @@ export async function iterateAndPrintParallel(client: FluenceClient, nodes: stri
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'nodes', () => {return nodes;});
|
||||
h.on('callbackSrv', 'c', (args) => {c(args[0]); return {};});
|
||||
|
||||
h.on('getDataSrv', 'nodes', () => {
|
||||
return nodes;
|
||||
});
|
||||
|
||||
h.use((req, resp, next) => {
|
||||
if (req.serviceId === 'callbackSrv' && req.fnName === 'c') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
c(req.args[0], callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
next();
|
||||
});
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -124,13 +185,12 @@ h.on('callbackSrv', 'c', (args) => {c(args[0]); return {};});
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for iterateAndPrintParallel');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return Promise.race([promise, Promise.resolve()]);
|
||||
}
|
||||
|
||||
|
@ -1,36 +1,102 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//Op2
|
||||
//defaultId = "op"
|
||||
export interface Op2Def {
|
||||
identity: (s: number, callParams: CallParams<'s'>) => void;
|
||||
}
|
||||
|
||||
//identity: (s: number) => void
|
||||
//END Op2
|
||||
export function registerOp2(service: Op2Def): void;
|
||||
export function registerOp2(serviceId: string, service: Op2Def): void;
|
||||
export function registerOp2(peer: FluencePeer, service: Op2Def): void;
|
||||
export function registerOp2(peer: FluencePeer, serviceId: string, service: Op2Def): void;
|
||||
export function registerOp2(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'op';
|
||||
}
|
||||
|
||||
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 === 'identity') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
s: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
service.identity(req.args[0], callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function getTwoResults(client: FluenceClient, relay: string, config?: {ttl?: number}): Promise<number[]> {
|
||||
export function getTwoResults(relay: string, config?: { ttl?: number }): Promise<number[]>;
|
||||
export function getTwoResults(peer: FluencePeer, relay: string, config?: { ttl?: number }): Promise<number[]>;
|
||||
export function getTwoResults(...args) {
|
||||
let peer: FluencePeer;
|
||||
let relay;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
relay = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
relay = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<number[]>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -85,20 +151,21 @@ export async function getTwoResults(client: FluenceClient, relay: string, config
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return relay;
|
||||
});
|
||||
h.on('getDataSrv', 'relay', () => {return relay;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -106,13 +173,12 @@ export async function getTwoResults(client: FluenceClient, relay: string, config
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for getTwoResults');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,36 +1,97 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//TestSrv
|
||||
//defaultId = "test-service-id"
|
||||
export interface TestSrvDef {
|
||||
str: (callParams: CallParams<null>) => string;
|
||||
}
|
||||
|
||||
//str: () => string
|
||||
//END TestSrv
|
||||
export function registerTestSrv(service: TestSrvDef): void;
|
||||
export function registerTestSrv(serviceId: string, service: TestSrvDef): void;
|
||||
export function registerTestSrv(peer: FluencePeer, service: TestSrvDef): void;
|
||||
export function registerTestSrv(peer: FluencePeer, serviceId: string, service: TestSrvDef): void;
|
||||
export function registerTestSrv(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'test-service-id';
|
||||
}
|
||||
|
||||
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 === 'str') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.str(callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function testFunc(client: FluenceClient, config?: {ttl?: number}): Promise<string> {
|
||||
export function testFunc(config?: { ttl?: number }): Promise<string>;
|
||||
export function testFunc(peer: FluencePeer, config?: { ttl?: number }): Promise<string>;
|
||||
export function testFunc(...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<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
@ -44,20 +105,19 @@ export async function testFunc(client: FluenceClient, config?: {ttl?: number}):
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -65,13 +125,12 @@ export async function testFunc(client: FluenceClient, config?: {ttl?: number}):
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for testFunc');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,36 +1,101 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//StringExtra
|
||||
//defaultId = "service-id"
|
||||
export interface StringExtraDef {
|
||||
addNameToHello: (arg0: string, callParams: CallParams<'arg0'>) => string;
|
||||
}
|
||||
|
||||
//addNameToHello: (arg0: string) => string
|
||||
//END StringExtra
|
||||
export function registerStringExtra(service: StringExtraDef): void;
|
||||
export function registerStringExtra(serviceId: string, service: StringExtraDef): void;
|
||||
export function registerStringExtra(peer: FluencePeer, service: StringExtraDef): void;
|
||||
export function registerStringExtra(peer: FluencePeer, serviceId: string, service: StringExtraDef): void;
|
||||
export function registerStringExtra(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'service-id';
|
||||
}
|
||||
|
||||
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 === 'addNameToHello') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.addNameToHello(req.args[0], callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function helloWorld(client: FluenceClient, name: string, config?: {ttl?: number}): Promise<string> {
|
||||
export function helloWorld(name: string, config?: { ttl?: number }): Promise<string>;
|
||||
export function helloWorld(peer: FluencePeer, name: string, config?: { ttl?: number }): Promise<string>;
|
||||
export function helloWorld(...args) {
|
||||
let peer: FluencePeer;
|
||||
let name;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
name = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
name = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -47,20 +112,21 @@ export async function helloWorld(client: FluenceClient, name: string, config?: {
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'name', () => {
|
||||
return name;
|
||||
});
|
||||
h.on('getDataSrv', 'name', () => {return name;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -68,13 +134,12 @@ export async function helloWorld(client: FluenceClient, name: string, config?: {
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for helloWorld');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,29 +1,46 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
|
||||
// Functions
|
||||
|
||||
export async function ifElseCall(client: FluenceClient, condition: boolean, config?: {ttl?: number}): Promise<void> {
|
||||
export function ifElseCall(condition: boolean, config?: { ttl?: number }): Promise<void>;
|
||||
export function ifElseCall(peer: FluencePeer, condition: boolean, config?: { ttl?: number }): Promise<void>;
|
||||
export function ifElseCall(...args) {
|
||||
let peer: FluencePeer;
|
||||
let condition;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
condition = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
condition = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<void>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
@ -42,16 +59,18 @@ export async function ifElseCall(client: FluenceClient, condition: boolean, conf
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'condition', () => {return condition;});
|
||||
|
||||
h.on('getDataSrv', 'condition', () => {
|
||||
return condition;
|
||||
});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -59,26 +78,39 @@ export async function ifElseCall(client: FluenceClient, condition: boolean, conf
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for ifElseCall');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return Promise.race([promise, Promise.resolve()]);
|
||||
}
|
||||
|
||||
|
||||
export function ifElseNumCall(condition: number, config?: { ttl?: number }): Promise<void>;
|
||||
export function ifElseNumCall(peer: FluencePeer, condition: number, config?: { ttl?: number }): Promise<void>;
|
||||
export function ifElseNumCall(...args) {
|
||||
let peer: FluencePeer;
|
||||
let condition;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
condition = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
condition = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
export async function ifElseNumCall(client: FluenceClient, condition: number, config?: {ttl?: number}): Promise<void> {
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<void>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
@ -97,16 +129,18 @@ export async function ifElseNumCall(client: FluenceClient, condition: number, co
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'condition', () => {return condition;});
|
||||
|
||||
h.on('getDataSrv', 'condition', () => {
|
||||
return condition;
|
||||
});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -114,13 +148,12 @@ export async function ifElseNumCall(client: FluenceClient, condition: number, co
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for ifElseNumCall');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return Promise.race([promise, Promise.resolve()]);
|
||||
}
|
||||
|
||||
|
72
src/compiled/examples/imports_exports/declare.ts
Normal file
72
src/compiled/examples/imports_exports/declare.ts
Normal file
@ -0,0 +1,72 @@
|
||||
/**
|
||||
*
|
||||
* 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-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
export interface SuperFooDef {
|
||||
small_foo: (callParams: CallParams<null>) => string;
|
||||
}
|
||||
|
||||
export function registerSuperFoo(service: SuperFooDef): void;
|
||||
export function registerSuperFoo(serviceId: string, service: SuperFooDef): void;
|
||||
export function registerSuperFoo(peer: FluencePeer, service: SuperFooDef): void;
|
||||
export function registerSuperFoo(peer: FluencePeer, serviceId: string, service: SuperFooDef): void;
|
||||
export function registerSuperFoo(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'super_foo';
|
||||
}
|
||||
|
||||
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 === 'small_foo') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.small_foo(callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
@ -1,36 +1,97 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//MyExportSrv
|
||||
//defaultId = "my_export_srv"
|
||||
export interface MyExportSrvDef {
|
||||
another_str: (callParams: CallParams<null>) => string;
|
||||
}
|
||||
|
||||
//another_str: () => string
|
||||
//END MyExportSrv
|
||||
export function registerMyExportSrv(service: MyExportSrvDef): void;
|
||||
export function registerMyExportSrv(serviceId: string, service: MyExportSrvDef): void;
|
||||
export function registerMyExportSrv(peer: FluencePeer, service: MyExportSrvDef): void;
|
||||
export function registerMyExportSrv(peer: FluencePeer, serviceId: string, service: MyExportSrvDef): void;
|
||||
export function registerMyExportSrv(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'my_export_srv';
|
||||
}
|
||||
|
||||
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 === 'another_str') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.another_str(callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function string_from_lib(client: FluenceClient, config?: {ttl?: number}): Promise<string> {
|
||||
export function string_from_lib(config?: { ttl?: number }): Promise<string>;
|
||||
export function string_from_lib(peer: FluencePeer, config?: { ttl?: number }): Promise<string>;
|
||||
export function string_from_lib(...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<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(xor
|
||||
@ -41,20 +102,19 @@ export async function string_from_lib(client: FluenceClient, config?: {ttl?: num
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -62,13 +122,12 @@ export async function string_from_lib(client: FluenceClient, config?: {ttl?: num
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for string_from_lib');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,25 +1,69 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//OneMore
|
||||
//defaultId = undefined
|
||||
export interface OneMoreDef {
|
||||
more_call: (callParams: CallParams<null>) => void;
|
||||
}
|
||||
|
||||
//more_call: () => void
|
||||
//END OneMore
|
||||
export function registerOneMore(serviceId: string, service: OneMoreDef): void;
|
||||
export function registerOneMore(peer: FluencePeer, serviceId: string, service: OneMoreDef): void;
|
||||
export function registerOneMore(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
}
|
||||
|
||||
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 === 'more_call') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
service.more_call(callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
|
@ -1,29 +1,44 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
|
||||
// Functions
|
||||
|
||||
export async function wrap(client: FluenceClient, config?: {ttl?: number}): Promise<string> {
|
||||
export function wrap(config?: { ttl?: number }): Promise<string>;
|
||||
export function wrap(peer: FluencePeer, config?: { ttl?: number }): Promise<string>;
|
||||
export function wrap(...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<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -40,20 +55,19 @@ export async function wrap(client: FluenceClient, config?: {ttl?: number}): Prom
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -61,26 +75,37 @@ export async function wrap(client: FluenceClient, config?: {ttl?: number}): Prom
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for wrap');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
||||
export function barfoo(config?: { ttl?: number }): Promise<string[]>;
|
||||
export function barfoo(peer: FluencePeer, config?: { ttl?: number }): Promise<string[]>;
|
||||
export function barfoo(...args) {
|
||||
let peer: FluencePeer;
|
||||
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
config = args[1];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
config = args[0];
|
||||
}
|
||||
|
||||
export async function barfoo(client: FluenceClient, config?: {ttl?: number}): Promise<string[]> {
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string[]>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -97,20 +122,19 @@ export async function barfoo(client: FluenceClient, config?: {ttl?: number}): Pr
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -118,13 +142,12 @@ export async function barfoo(client: FluenceClient, config?: {ttl?: number}): Pr
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for barfoo');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
573
src/compiled/examples/imports_exports/imports-empty.ts
Normal file
573
src/compiled/examples/imports_exports/imports-empty.ts
Normal file
@ -0,0 +1,573 @@
|
||||
/**
|
||||
*
|
||||
* 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-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
export interface NoopDef {
|
||||
array: (
|
||||
a: string,
|
||||
b: string | null,
|
||||
c: string | null,
|
||||
d: string | null,
|
||||
callParams: CallParams<'a' | 'b' | 'c' | 'd'>,
|
||||
) => string[];
|
||||
array_length: (array: string[], callParams: CallParams<'array'>) => number;
|
||||
bytes_from_b58: (b: string, callParams: CallParams<'b'>) => number[];
|
||||
bytes_to_b58: (bs: number[], callParams: CallParams<'bs'>) => string;
|
||||
concat: (
|
||||
a: string[],
|
||||
b: string[] | null,
|
||||
c: string[] | null,
|
||||
d: string[] | null,
|
||||
callParams: CallParams<'a' | 'b' | 'c' | 'd'>,
|
||||
) => string[];
|
||||
concat_strings: (a: string, b: string, callParams: CallParams<'a' | 'b'>) => string;
|
||||
identity: (s: string | null, callParams: CallParams<'s'>) => string | null;
|
||||
noop: (callParams: CallParams<null>) => void;
|
||||
sha256_string: (s: string, callParams: CallParams<'s'>) => string;
|
||||
string_from_b58: (b: string, callParams: CallParams<'b'>) => string;
|
||||
string_to_b58: (s: string, callParams: CallParams<'s'>) => string;
|
||||
}
|
||||
|
||||
export function registerNoop(service: NoopDef): void;
|
||||
export function registerNoop(serviceId: string, service: NoopDef): void;
|
||||
export function registerNoop(peer: FluencePeer, service: NoopDef): void;
|
||||
export function registerNoop(peer: FluencePeer, serviceId: string, service: NoopDef): void;
|
||||
export function registerNoop(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'op';
|
||||
}
|
||||
|
||||
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 === 'array') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
a: req.tetraplets[0],
|
||||
b: req.tetraplets[1],
|
||||
c: req.tetraplets[2],
|
||||
d: req.tetraplets[3],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.array(req.args[0], req.args[1], req.args[2], req.args[3], callParams);
|
||||
}
|
||||
|
||||
if (req.fnName === 'array_length') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
array: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.array_length(req.args[0], callParams);
|
||||
}
|
||||
|
||||
if (req.fnName === 'bytes_from_b58') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
b: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.bytes_from_b58(req.args[0], callParams);
|
||||
}
|
||||
|
||||
if (req.fnName === 'bytes_to_b58') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
bs: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.bytes_to_b58(req.args[0], callParams);
|
||||
}
|
||||
|
||||
if (req.fnName === 'concat') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
a: req.tetraplets[0],
|
||||
b: req.tetraplets[1],
|
||||
c: req.tetraplets[2],
|
||||
d: req.tetraplets[3],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.concat(req.args[0], req.args[1], req.args[2], req.args[3], callParams);
|
||||
}
|
||||
|
||||
if (req.fnName === 'concat_strings') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
a: req.tetraplets[0],
|
||||
b: req.tetraplets[1],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.concat_strings(req.args[0], req.args[1], callParams);
|
||||
}
|
||||
|
||||
if (req.fnName === 'identity') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
s: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.identity(req.args[0], callParams);
|
||||
}
|
||||
|
||||
if (req.fnName === 'noop') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
service.noop(callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
|
||||
if (req.fnName === 'sha256_string') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
s: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.sha256_string(req.args[0], callParams);
|
||||
}
|
||||
|
||||
if (req.fnName === 'string_from_b58') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
b: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.string_from_b58(req.args[0], callParams);
|
||||
}
|
||||
|
||||
if (req.fnName === 'string_to_b58') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
s: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.string_to_b58(req.args[0], callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
export interface MyExportSrvDef {
|
||||
another_str: (callParams: CallParams<null>) => string;
|
||||
}
|
||||
|
||||
export function registerMyExportSrv(service: MyExportSrvDef): void;
|
||||
export function registerMyExportSrv(serviceId: string, service: MyExportSrvDef): void;
|
||||
export function registerMyExportSrv(peer: FluencePeer, service: MyExportSrvDef): void;
|
||||
export function registerMyExportSrv(peer: FluencePeer, serviceId: string, service: MyExportSrvDef): void;
|
||||
export function registerMyExportSrv(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'my_export_srv';
|
||||
}
|
||||
|
||||
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 === 'another_str') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.another_str(callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export function some_str(config?: { ttl?: number }): Promise<string>;
|
||||
export function some_str(peer: FluencePeer, config?: { ttl?: number }): Promise<string>;
|
||||
export function some_str(...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<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") ["some_string_func"])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
)
|
||||
.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 some_str');
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
export function some_string(config?: { ttl?: number }): Promise<string>;
|
||||
export function some_string(peer: FluencePeer, config?: { ttl?: number }): Promise<string>;
|
||||
export function some_string(...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<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") ["some_string_func"])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
)
|
||||
.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 some_string');
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
export function decl_foo(config?: { ttl?: number }): Promise<string>;
|
||||
export function decl_foo(peer: FluencePeer, config?: { ttl?: number }): Promise<string>;
|
||||
export function decl_foo(...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<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("super_foo" "small_foo") [] res1)
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [res1])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
)
|
||||
.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 decl_foo');
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
export function decl_bar(config?: { ttl?: number }): Promise<string>;
|
||||
export function decl_bar(peer: FluencePeer, config?: { ttl?: number }): Promise<string>;
|
||||
export function decl_bar(...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<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") ["declare all bar"])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
)
|
||||
.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 decl_bar');
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
export function some_random_func(config?: { ttl?: number }): Promise<string>;
|
||||
export function some_random_func(peer: FluencePeer, config?: { ttl?: number }): Promise<string>;
|
||||
export function some_random_func(...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<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") ["wow, so random"])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
)
|
||||
.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 some_random_func');
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
@ -1,36 +1,100 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//StringService
|
||||
//defaultId = "string_service"
|
||||
export interface StringServiceDef {
|
||||
concat: (a: string, b: string, callParams: CallParams<'a' | 'b'>) => string;
|
||||
}
|
||||
|
||||
//concat: (a: string, b: string) => string
|
||||
//END StringService
|
||||
export function registerStringService(service: StringServiceDef): void;
|
||||
export function registerStringService(serviceId: string, service: StringServiceDef): void;
|
||||
export function registerStringService(peer: FluencePeer, service: StringServiceDef): void;
|
||||
export function registerStringService(peer: FluencePeer, serviceId: string, service: StringServiceDef): void;
|
||||
export function registerStringService(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'string_service';
|
||||
}
|
||||
|
||||
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 === 'concat') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
a: req.tetraplets[0],
|
||||
b: req.tetraplets[1],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.concat(req.args[0], req.args[1], callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function concat_foobars(client: FluenceClient, config?: {ttl?: number}): Promise<string> {
|
||||
export function concat_foobars(config?: { ttl?: number }): Promise<string>;
|
||||
export function concat_foobars(peer: FluencePeer, config?: { ttl?: number }): Promise<string>;
|
||||
export function concat_foobars(...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<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -62,20 +126,19 @@ export async function concat_foobars(client: FluenceClient, config?: {ttl?: numb
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -83,13 +146,12 @@ export async function concat_foobars(client: FluenceClient, config?: {ttl?: numb
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for concat_foobars');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,36 +1,99 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//SubService
|
||||
//defaultId = "sub_service"
|
||||
export interface SubServiceDef {
|
||||
sub: (s: string, callParams: CallParams<'s'>) => { one: string; two: number };
|
||||
}
|
||||
|
||||
//sub: (s: string) => {one:string;two:number}
|
||||
//END SubService
|
||||
export function registerSubService(service: SubServiceDef): void;
|
||||
export function registerSubService(serviceId: string, service: SubServiceDef): void;
|
||||
export function registerSubService(peer: FluencePeer, service: SubServiceDef): void;
|
||||
export function registerSubService(peer: FluencePeer, serviceId: string, service: SubServiceDef): void;
|
||||
export function registerSubService(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'sub_service';
|
||||
}
|
||||
|
||||
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 === 'sub') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
s: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.sub(req.args[0], callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function subImport(client: FluenceClient, config?: {ttl?: number}): Promise<{one:string;two:number}> {
|
||||
export function subImport(config?: { ttl?: number }): Promise<{ one: string; two: number }>;
|
||||
export function subImport(peer: FluencePeer, config?: { ttl?: number }): Promise<{ one: string; two: number }>;
|
||||
export function subImport(...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<{one:string;two:number}>((resolve, reject) => {
|
||||
const promise = new Promise<{ one: string; two: number }>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
@ -44,20 +107,19 @@ export async function subImport(client: FluenceClient, config?: {ttl?: number}):
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -65,13 +127,12 @@ export async function subImport(client: FluenceClient, config?: {ttl?: number}):
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for subImport');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,45 +1,152 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//GetStr
|
||||
//defaultId = "multiret-test"
|
||||
export interface GetStrDef {
|
||||
retStr: (arg0: string, callParams: CallParams<'arg0'>) => string;
|
||||
}
|
||||
|
||||
//retStr: (arg0: string) => string
|
||||
//END GetStr
|
||||
export function registerGetStr(service: GetStrDef): void;
|
||||
export function registerGetStr(serviceId: string, service: GetStrDef): void;
|
||||
export function registerGetStr(peer: FluencePeer, service: GetStrDef): void;
|
||||
export function registerGetStr(peer: FluencePeer, serviceId: string, service: GetStrDef): void;
|
||||
export function registerGetStr(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'multiret-test';
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
//GetNum
|
||||
//defaultId = "multiret-num"
|
||||
if (req.fnName === 'retStr') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.retStr(req.args[0], callParams);
|
||||
}
|
||||
|
||||
//retNum: () => number
|
||||
//END GetNum
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
export interface GetNumDef {
|
||||
retNum: (callParams: CallParams<null>) => number;
|
||||
}
|
||||
|
||||
export function registerGetNum(service: GetNumDef): void;
|
||||
export function registerGetNum(serviceId: string, service: GetNumDef): void;
|
||||
export function registerGetNum(peer: FluencePeer, service: GetNumDef): void;
|
||||
export function registerGetNum(peer: FluencePeer, serviceId: string, service: GetNumDef): void;
|
||||
export function registerGetNum(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'multiret-num';
|
||||
}
|
||||
|
||||
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 === 'retNum') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.retNum(callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function tupleFunc(client: FluenceClient, config?: {ttl?: number}): Promise<[string, number]> {
|
||||
export function tupleFunc(config?: { ttl?: number }): Promise<[string, number]>;
|
||||
export function tupleFunc(peer: FluencePeer, config?: { ttl?: number }): Promise<[string, number]>;
|
||||
export function tupleFunc(...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<[string, number]>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -56,21 +163,20 @@ export async function tupleFunc(client: FluenceClient, config?: {ttl?: number}):
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
let opt: any = args;
|
||||
|
||||
return resolve(opt);
|
||||
});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
let opt: any = args;
|
||||
|
||||
return resolve(opt);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -78,26 +184,51 @@ export async function tupleFunc(client: FluenceClient, config?: {ttl?: number}):
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for tupleFunc');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
||||
export function multiReturnFunc(
|
||||
somethingToReturn: number[],
|
||||
smthOption: string | null,
|
||||
config?: { ttl?: number },
|
||||
): Promise<[string[], number, string, number[], string | null, number]>;
|
||||
export function multiReturnFunc(
|
||||
peer: FluencePeer,
|
||||
somethingToReturn: number[],
|
||||
smthOption: string | null,
|
||||
config?: { ttl?: number },
|
||||
): Promise<[string[], number, string, number[], string | null, number]>;
|
||||
export function multiReturnFunc(...args) {
|
||||
let peer: FluencePeer;
|
||||
let somethingToReturn;
|
||||
let smthOption;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
somethingToReturn = args[1];
|
||||
smthOption = args[2];
|
||||
config = args[3];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
somethingToReturn = args[0];
|
||||
smthOption = args[1];
|
||||
config = args[2];
|
||||
}
|
||||
|
||||
export async function multiReturnFunc(client: FluenceClient, somethingToReturn: number[], smthOption: string | null, config?: {ttl?: number}): Promise<[string[], number, string, number[], string | null, number]> {
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<[string[], number, string, number[], string | null, number]>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -129,26 +260,32 @@ export async function multiReturnFunc(client: FluenceClient, somethingToReturn:
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'somethingToReturn', () => {
|
||||
return somethingToReturn;
|
||||
});
|
||||
h.on('getDataSrv', 'smthOption', () => {
|
||||
return smthOption === null ? [] : [smthOption];
|
||||
});
|
||||
h.on('getDataSrv', 'somethingToReturn', () => {return somethingToReturn;});
|
||||
h.on('getDataSrv', 'smthOption', () => {return smthOption === null ? [] : [smthOption];});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
let opt: any = args;
|
||||
let opt: any = args;
|
||||
|
||||
if(Array.isArray(opt[4])) {
|
||||
if (opt[4].length === 0) { opt[4] = null; }
|
||||
else {opt[4] = opt[4][0]; }
|
||||
}
|
||||
return resolve(opt);
|
||||
});
|
||||
if (Array.isArray(opt[4])) {
|
||||
if (opt[4].length === 0) {
|
||||
opt[4] = null;
|
||||
} else {
|
||||
opt[4] = opt[4][0];
|
||||
}
|
||||
}
|
||||
return resolve(opt);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -156,13 +293,12 @@ h.on('getDataSrv', 'smthOption', () => {return smthOption === null ? [] : [smthO
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for multiReturnFunc');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,36 +1,101 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//OpH
|
||||
//defaultId = "opa"
|
||||
export interface OpHDef {
|
||||
identity: (s: string, callParams: CallParams<'s'>) => string;
|
||||
}
|
||||
|
||||
//identity: (s: string) => string
|
||||
//END OpH
|
||||
export function registerOpH(service: OpHDef): void;
|
||||
export function registerOpH(serviceId: string, service: OpHDef): void;
|
||||
export function registerOpH(peer: FluencePeer, service: OpHDef): void;
|
||||
export function registerOpH(peer: FluencePeer, serviceId: string, service: OpHDef): void;
|
||||
export function registerOpH(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'opa';
|
||||
}
|
||||
|
||||
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 === 'identity') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
s: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.identity(req.args[0], callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function a(client: FluenceClient, b: string, config?: {ttl?: number}): Promise<string> {
|
||||
export function a(b: string, config?: { ttl?: number }): Promise<string>;
|
||||
export function a(peer: FluencePeer, b: string, config?: { ttl?: number }): Promise<string>;
|
||||
export function a(...args) {
|
||||
let peer: FluencePeer;
|
||||
let b;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
b = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
b = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -47,20 +112,21 @@ export async function a(client: FluenceClient, b: string, config?: {ttl?: number
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'b', () => {
|
||||
return b;
|
||||
});
|
||||
h.on('getDataSrv', 'b', () => {return b;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -68,26 +134,39 @@ export async function a(client: FluenceClient, b: string, config?: {ttl?: number
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for a');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
||||
export function d(e: string, config?: { ttl?: number }): Promise<string>;
|
||||
export function d(peer: FluencePeer, e: string, config?: { ttl?: number }): Promise<string>;
|
||||
export function d(...args) {
|
||||
let peer: FluencePeer;
|
||||
let e;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
e = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
e = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
export async function d(client: FluenceClient, e: string, config?: {ttl?: number}): Promise<string> {
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -104,20 +183,21 @@ export async function d(client: FluenceClient, e: string, config?: {ttl?: number
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'e', () => {
|
||||
return e;
|
||||
});
|
||||
h.on('getDataSrv', 'e', () => {return e;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -125,13 +205,12 @@ export async function d(client: FluenceClient, e: string, config?: {ttl?: number
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for d');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
600
src/compiled/examples/new-api-full.ts
Normal file
600
src/compiled/examples/new-api-full.ts
Normal file
@ -0,0 +1,600 @@
|
||||
/**
|
||||
*
|
||||
* 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-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
export interface ServiceWithDefaultIdDef {
|
||||
hello: (s: string, callParams: CallParams<'s'>) => void;
|
||||
}
|
||||
|
||||
export function registerServiceWithDefaultId(service: ServiceWithDefaultIdDef): void;
|
||||
export function registerServiceWithDefaultId(serviceId: string, service: ServiceWithDefaultIdDef): void;
|
||||
export function registerServiceWithDefaultId(peer: FluencePeer, service: ServiceWithDefaultIdDef): void;
|
||||
export function registerServiceWithDefaultId(
|
||||
peer: FluencePeer,
|
||||
serviceId: string,
|
||||
service: ServiceWithDefaultIdDef,
|
||||
): void;
|
||||
export function registerServiceWithDefaultId(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'defaultId';
|
||||
}
|
||||
|
||||
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: {
|
||||
s: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
service.hello(req.args[0], callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
export interface ServiceWithOUTDefaultIdDef {
|
||||
hello: (s: string, callParams: CallParams<'s'>) => void;
|
||||
}
|
||||
|
||||
export function registerServiceWithOUTDefaultId(serviceId: string, service: ServiceWithOUTDefaultIdDef): void;
|
||||
export function registerServiceWithOUTDefaultId(
|
||||
peer: FluencePeer,
|
||||
serviceId: string,
|
||||
service: ServiceWithOUTDefaultIdDef,
|
||||
): void;
|
||||
export function registerServiceWithOUTDefaultId(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
}
|
||||
|
||||
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: {
|
||||
s: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
service.hello(req.args[0], callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
export interface MoreMembersDef {
|
||||
member1: (callParams: CallParams<null>) => void;
|
||||
member2: (s1: string, callParams: CallParams<'s1'>) => void;
|
||||
member3: (s1: string, s2: string, callParams: CallParams<'s1' | 's2'>) => void;
|
||||
member4: (s1: string, s2: string, i: number, callParams: CallParams<'s1' | 's2' | 'i'>) => number;
|
||||
member5: (s1: string, s2: string, i: number, callParams: CallParams<'s1' | 's2' | 'i'>) => number;
|
||||
}
|
||||
|
||||
export function registerMoreMembers(serviceId: string, service: MoreMembersDef): void;
|
||||
export function registerMoreMembers(peer: FluencePeer, serviceId: string, service: MoreMembersDef): void;
|
||||
export function registerMoreMembers(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
}
|
||||
|
||||
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 === 'member1') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
service.member1(callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
|
||||
if (req.fnName === 'member2') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
s1: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
service.member2(req.args[0], callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
|
||||
if (req.fnName === 'member3') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
s1: req.tetraplets[0],
|
||||
s2: req.tetraplets[1],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
service.member3(req.args[0], req.args[1], callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
|
||||
if (req.fnName === 'member4') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
s1: req.tetraplets[0],
|
||||
s2: req.tetraplets[1],
|
||||
i: req.tetraplets[2],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.member4(req.args[0], req.args[1], req.args[2], callParams);
|
||||
}
|
||||
|
||||
if (req.fnName === 'member5') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
s1: req.tetraplets[0],
|
||||
s2: req.tetraplets[1],
|
||||
i: req.tetraplets[2],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.member5(req.args[0], req.args[1], req.args[2], callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export function f1(
|
||||
callback: (arg0: string, arg1: number, callParams: CallParams<'arg0' | 'arg1'>) => void,
|
||||
config?: { ttl?: number },
|
||||
): Promise<void>;
|
||||
export function f1(
|
||||
peer: FluencePeer,
|
||||
callback: (arg0: string, arg1: number, callParams: CallParams<'arg0' | 'arg1'>) => void,
|
||||
config?: { ttl?: number },
|
||||
): Promise<void>;
|
||||
export function f1(...args) {
|
||||
let peer: FluencePeer;
|
||||
let callback;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
callback = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
callback = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<void>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "callback") ["hello, world" 42])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
|
||||
h.use((req, resp, next) => {
|
||||
if (req.serviceId === 'callbackSrv' && req.fnName === 'callback') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
arg1: req.tetraplets[1],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
callback(req.args[0], req.args[1], callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
next();
|
||||
});
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
})
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for f1');
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
peer.internals.initiateFlow(request!);
|
||||
return Promise.race([promise, Promise.resolve()]);
|
||||
}
|
||||
|
||||
export function f2(
|
||||
num: number,
|
||||
callback: (arg0: string, arg1: number, callParams: CallParams<'arg0' | 'arg1'>) => void,
|
||||
config?: { ttl?: number },
|
||||
): Promise<void>;
|
||||
export function f2(
|
||||
peer: FluencePeer,
|
||||
num: number,
|
||||
callback: (arg0: string, arg1: number, callParams: CallParams<'arg0' | 'arg1'>) => void,
|
||||
config?: { ttl?: number },
|
||||
): Promise<void>;
|
||||
export function f2(...args) {
|
||||
let peer: FluencePeer;
|
||||
let num;
|
||||
let callback;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
num = args[1];
|
||||
callback = args[2];
|
||||
config = args[3];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
num = args[0];
|
||||
callback = args[1];
|
||||
config = args[2];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<void>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "num") [] num)
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "callback") ["hello, world" 42])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'num', () => {
|
||||
return num;
|
||||
});
|
||||
|
||||
h.use((req, resp, next) => {
|
||||
if (req.serviceId === 'callbackSrv' && req.fnName === 'callback') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
arg1: req.tetraplets[1],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
callback(req.args[0], req.args[1], callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
next();
|
||||
});
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
})
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for f2');
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
peer.internals.initiateFlow(request!);
|
||||
return Promise.race([promise, Promise.resolve()]);
|
||||
}
|
||||
|
||||
export function f3(
|
||||
num: number,
|
||||
callback: (arg0: string, arg1: number, callParams: CallParams<'arg0' | 'arg1'>) => void,
|
||||
config?: { ttl?: number },
|
||||
): Promise<string>;
|
||||
export function f3(
|
||||
peer: FluencePeer,
|
||||
num: number,
|
||||
callback: (arg0: string, arg1: number, callParams: CallParams<'arg0' | 'arg1'>) => void,
|
||||
config?: { ttl?: number },
|
||||
): Promise<string>;
|
||||
export function f3(...args) {
|
||||
let peer: FluencePeer;
|
||||
let num;
|
||||
let callback;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
num = args[1];
|
||||
callback = args[2];
|
||||
config = args[3];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
num = args[0];
|
||||
callback = args[1];
|
||||
config = args[2];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "num") [] num)
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "callback") ["hello, world" 42])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") ["hello world"])
|
||||
(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.on('getDataSrv', 'num', () => {
|
||||
return num;
|
||||
});
|
||||
|
||||
h.use((req, resp, next) => {
|
||||
if (req.serviceId === 'callbackSrv' && req.fnName === 'callback') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
arg1: req.tetraplets[1],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
callback(req.args[0], req.args[1], callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
next();
|
||||
});
|
||||
|
||||
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 f3');
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
export function callBackZeroArgs(
|
||||
callback: (callParams: CallParams<null>) => void,
|
||||
config?: { ttl?: number },
|
||||
): Promise<void>;
|
||||
export function callBackZeroArgs(
|
||||
peer: FluencePeer,
|
||||
callback: (callParams: CallParams<null>) => void,
|
||||
config?: { ttl?: number },
|
||||
): Promise<void>;
|
||||
export function callBackZeroArgs(...args) {
|
||||
let peer: FluencePeer;
|
||||
let callback;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
callback = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
callback = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<void>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "callback") [])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
|
||||
h.use((req, resp, next) => {
|
||||
if (req.serviceId === 'callbackSrv' && req.fnName === 'callback') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
callback(callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
next();
|
||||
});
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
})
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for callBackZeroArgs');
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
peer.internals.initiateFlow(request!);
|
||||
return Promise.race([promise, Promise.resolve()]);
|
||||
}
|
168
src/compiled/examples/new-api.ts
Normal file
168
src/compiled/examples/new-api.ts
Normal file
@ -0,0 +1,168 @@
|
||||
/**
|
||||
*
|
||||
* 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-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
export interface HelloWorldDef {
|
||||
getNumber: (callParams: CallParams<null>) => number;
|
||||
sayHello: (s: string, callParams: CallParams<'s'>) => void;
|
||||
}
|
||||
|
||||
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 (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'default';
|
||||
}
|
||||
|
||||
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 === 'getNumber') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.getNumber(callParams);
|
||||
}
|
||||
|
||||
if (req.fnName === 'sayHello') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
s: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
service.sayHello(req.args[0], callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export function callMeBack(
|
||||
callback: (arg0: string, arg1: number, callParams: CallParams<'arg0' | 'arg1'>) => void,
|
||||
config?: { ttl?: number },
|
||||
): Promise<void>;
|
||||
export function callMeBack(
|
||||
peer: FluencePeer,
|
||||
callback: (arg0: string, arg1: number, callParams: CallParams<'arg0' | 'arg1'>) => void,
|
||||
config?: { ttl?: number },
|
||||
): Promise<void>;
|
||||
export function callMeBack(...args) {
|
||||
let peer: FluencePeer;
|
||||
let callback;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
callback = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
callback = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<void>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "callback") ["hello, world" 42])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
|
||||
h.use((req, resp, next) => {
|
||||
if (req.serviceId === 'callbackSrv' && req.fnName === 'callback') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
arg1: req.tetraplets[1],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
callback(req.args[0], req.args[1], callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
next();
|
||||
});
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
})
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for callMeBack');
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
peer.internals.initiateFlow(request!);
|
||||
return Promise.race([promise, Promise.resolve()]);
|
||||
}
|
@ -1,29 +1,50 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
|
||||
// Functions
|
||||
|
||||
export async function getPeerExternalAddresses(client: FluenceClient, otherNodePeerId: string, config?: {ttl?: number}): Promise<string[]> {
|
||||
export function getPeerExternalAddresses(otherNodePeerId: string, config?: { ttl?: number }): Promise<string[]>;
|
||||
export function getPeerExternalAddresses(
|
||||
peer: FluencePeer,
|
||||
otherNodePeerId: string,
|
||||
config?: { ttl?: number },
|
||||
): Promise<string[]>;
|
||||
export function getPeerExternalAddresses(...args) {
|
||||
let peer: FluencePeer;
|
||||
let otherNodePeerId;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
otherNodePeerId = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
otherNodePeerId = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string[]>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -52,20 +73,21 @@ export async function getPeerExternalAddresses(client: FluenceClient, otherNodeP
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'otherNodePeerId', () => {
|
||||
return otherNodePeerId;
|
||||
});
|
||||
h.on('getDataSrv', 'otherNodePeerId', () => {return otherNodePeerId;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -73,26 +95,47 @@ export async function getPeerExternalAddresses(client: FluenceClient, otherNodeP
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for getPeerExternalAddresses');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
||||
export function getDistantAddresses(target: string, viaNode: string, config?: { ttl?: number }): Promise<string[]>;
|
||||
export function getDistantAddresses(
|
||||
peer: FluencePeer,
|
||||
target: string,
|
||||
viaNode: string,
|
||||
config?: { ttl?: number },
|
||||
): Promise<string[]>;
|
||||
export function getDistantAddresses(...args) {
|
||||
let peer: FluencePeer;
|
||||
let target;
|
||||
let viaNode;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
target = args[1];
|
||||
viaNode = args[2];
|
||||
config = args[3];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
target = args[0];
|
||||
viaNode = args[1];
|
||||
config = args[2];
|
||||
}
|
||||
|
||||
export async function getDistantAddresses(client: FluenceClient, target: string, viaNode: string, config?: {ttl?: number}): Promise<string[]> {
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string[]>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -136,21 +179,24 @@ export async function getDistantAddresses(client: FluenceClient, target: string,
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'target', () => {
|
||||
return target;
|
||||
});
|
||||
h.on('getDataSrv', 'viaNode', () => {
|
||||
return viaNode;
|
||||
});
|
||||
h.on('getDataSrv', 'target', () => {return target;});
|
||||
h.on('getDataSrv', 'viaNode', () => {return viaNode;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -158,13 +204,12 @@ h.on('getDataSrv', 'viaNode', () => {return viaNode;});
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for getDistantAddresses');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,38 +1,123 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//SomeS
|
||||
//defaultId = "test2"
|
||||
export interface SomeSDef {
|
||||
getStr: (arg0: string | null, callParams: CallParams<'arg0'>) => string | null;
|
||||
getStr1: (callParams: CallParams<null>) => string | null;
|
||||
getStr2: (arg0: string, callParams: CallParams<'arg0'>) => string;
|
||||
}
|
||||
|
||||
//getStr: (arg0: string | null) => string | null
|
||||
//getStr1: () => string | null
|
||||
//getStr2: (arg0: string) => string
|
||||
//END SomeS
|
||||
export function registerSomeS(service: SomeSDef): void;
|
||||
export function registerSomeS(serviceId: string, service: SomeSDef): void;
|
||||
export function registerSomeS(peer: FluencePeer, service: SomeSDef): void;
|
||||
export function registerSomeS(peer: FluencePeer, serviceId: string, service: SomeSDef): void;
|
||||
export function registerSomeS(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'test2';
|
||||
}
|
||||
|
||||
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 === 'getStr') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.getStr(req.args[0], callParams);
|
||||
}
|
||||
|
||||
if (req.fnName === 'getStr1') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.getStr1(callParams);
|
||||
}
|
||||
|
||||
if (req.fnName === 'getStr2') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.getStr2(req.args[0], callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function useOptional(client: FluenceClient, opt: string | null, config?: {ttl?: number}): Promise<string> {
|
||||
export function useOptional(opt: string | null, config?: { ttl?: number }): Promise<string>;
|
||||
export function useOptional(peer: FluencePeer, opt: string | null, config?: { ttl?: number }): Promise<string>;
|
||||
export function useOptional(...args) {
|
||||
let peer: FluencePeer;
|
||||
let opt;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
opt = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
opt = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -57,20 +142,21 @@ export async function useOptional(client: FluenceClient, opt: string | null, con
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'opt', () => {
|
||||
return opt === null ? [] : [opt];
|
||||
});
|
||||
h.on('getDataSrv', 'opt', () => {return opt === null ? [] : [opt];});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -78,26 +164,37 @@ export async function useOptional(client: FluenceClient, opt: string | null, con
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for useOptional');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
||||
export function returnOptional(config?: { ttl?: number }): Promise<string | null>;
|
||||
export function returnOptional(peer: FluencePeer, config?: { ttl?: number }): Promise<string | null>;
|
||||
export function returnOptional(...args) {
|
||||
let peer: FluencePeer;
|
||||
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
config = args[1];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
config = args[0];
|
||||
}
|
||||
|
||||
export async function returnOptional(client: FluenceClient, config?: {ttl?: number}): Promise<string | null> {
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string | null>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
@ -111,24 +208,25 @@ export async function returnOptional(client: FluenceClient, config?: {ttl?: numb
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
let [opt] = args;
|
||||
if (Array.isArray(opt)) {
|
||||
if (opt.length === 0) { resolve(null); }
|
||||
opt = opt[0];
|
||||
}
|
||||
return resolve(opt);
|
||||
});
|
||||
let [opt] = args;
|
||||
if (Array.isArray(opt)) {
|
||||
if (opt.length === 0) {
|
||||
resolve(null);
|
||||
}
|
||||
opt = opt[0];
|
||||
}
|
||||
return resolve(opt);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -136,26 +234,37 @@ export async function returnOptional(client: FluenceClient, config?: {ttl?: numb
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for returnOptional');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
||||
export function returnNone(config?: { ttl?: number }): Promise<string | null>;
|
||||
export function returnNone(peer: FluencePeer, config?: { ttl?: number }): Promise<string | null>;
|
||||
export function returnNone(...args) {
|
||||
let peer: FluencePeer;
|
||||
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
config = args[1];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
config = args[0];
|
||||
}
|
||||
|
||||
export async function returnNone(client: FluenceClient, config?: {ttl?: number}): Promise<string | null> {
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string | null>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
@ -169,24 +278,25 @@ export async function returnNone(client: FluenceClient, config?: {ttl?: number})
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
let [opt] = args;
|
||||
if (Array.isArray(opt)) {
|
||||
if (opt.length === 0) { resolve(null); }
|
||||
opt = opt[0];
|
||||
}
|
||||
return resolve(opt);
|
||||
});
|
||||
let [opt] = args;
|
||||
if (Array.isArray(opt)) {
|
||||
if (opt.length === 0) {
|
||||
resolve(null);
|
||||
}
|
||||
opt = opt[0];
|
||||
}
|
||||
return resolve(opt);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -194,13 +304,12 @@ export async function returnNone(client: FluenceClient, config?: {ttl?: number})
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for returnNone');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,36 +1,111 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//ParService
|
||||
//defaultId = "parservice-id"
|
||||
export interface ParServiceDef {
|
||||
call: (callParams: CallParams<null>) => string;
|
||||
}
|
||||
|
||||
//call: () => string
|
||||
//END ParService
|
||||
export function registerParService(service: ParServiceDef): void;
|
||||
export function registerParService(serviceId: string, service: ParServiceDef): void;
|
||||
export function registerParService(peer: FluencePeer, service: ParServiceDef): void;
|
||||
export function registerParService(peer: FluencePeer, serviceId: string, service: ParServiceDef): void;
|
||||
export function registerParService(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'parservice-id';
|
||||
}
|
||||
|
||||
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 === 'call') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.call(callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function parFunc(client: FluenceClient, node: string, c: (arg0: {external_addresses:string[]}) => void, config?: {ttl?: number}): Promise<void> {
|
||||
export function parFunc(
|
||||
node: string,
|
||||
c: (arg0: { external_addresses: string[] }, callParams: CallParams<'arg0'>) => void,
|
||||
config?: { ttl?: number },
|
||||
): Promise<void>;
|
||||
export function parFunc(
|
||||
peer: FluencePeer,
|
||||
node: string,
|
||||
c: (arg0: { external_addresses: string[] }, callParams: CallParams<'arg0'>) => void,
|
||||
config?: { ttl?: number },
|
||||
): Promise<void>;
|
||||
export function parFunc(...args) {
|
||||
let peer: FluencePeer;
|
||||
let node;
|
||||
let c;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
node = args[1];
|
||||
c = args[2];
|
||||
config = args[3];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
node = args[0];
|
||||
c = args[1];
|
||||
config = args[2];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<void>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
@ -62,17 +137,34 @@ export async function parFunc(client: FluenceClient, node: string, c: (arg0: {ex
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'node', () => {return node;});
|
||||
h.on('callbackSrv', 'c', (args) => {c(args[0]); return {};});
|
||||
|
||||
h.on('getDataSrv', 'node', () => {
|
||||
return node;
|
||||
});
|
||||
|
||||
h.use((req, resp, next) => {
|
||||
if (req.serviceId === 'callbackSrv' && req.fnName === 'c') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
c(req.args[0], callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
next();
|
||||
});
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -80,13 +172,12 @@ h.on('callbackSrv', 'c', (args) => {c(args[0]); return {};});
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for parFunc');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return Promise.race([promise, Promise.resolve()]);
|
||||
}
|
||||
|
||||
|
@ -1,36 +1,125 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//AquaDHT
|
||||
//defaultId = "test-dht"
|
||||
export interface AquaDHTDef {
|
||||
put_host_value: (
|
||||
key: string,
|
||||
value: string,
|
||||
service_id: string[],
|
||||
callParams: CallParams<'key' | 'value' | 'service_id'>,
|
||||
) => string;
|
||||
}
|
||||
|
||||
//put_host_value: (key: string, value: string, service_id: string[]) => string
|
||||
//END AquaDHT
|
||||
export function registerAquaDHT(service: AquaDHTDef): void;
|
||||
export function registerAquaDHT(serviceId: string, service: AquaDHTDef): void;
|
||||
export function registerAquaDHT(peer: FluencePeer, service: AquaDHTDef): void;
|
||||
export function registerAquaDHT(peer: FluencePeer, serviceId: string, service: AquaDHTDef): void;
|
||||
export function registerAquaDHT(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'test-dht';
|
||||
}
|
||||
|
||||
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 === 'put_host_value') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
key: req.tetraplets[0],
|
||||
value: req.tetraplets[1],
|
||||
service_id: req.tetraplets[2],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.put_host_value(req.args[0], req.args[1], req.args[2], callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function putHostValue(client: FluenceClient, key: string, value: string, service_id: string | null, config?: {ttl?: number}): Promise<string> {
|
||||
export function putHostValue(
|
||||
key: string,
|
||||
value: string,
|
||||
service_id: string | null,
|
||||
config?: { ttl?: number },
|
||||
): Promise<string>;
|
||||
export function putHostValue(
|
||||
peer: FluencePeer,
|
||||
key: string,
|
||||
value: string,
|
||||
service_id: string | null,
|
||||
config?: { ttl?: number },
|
||||
): Promise<string>;
|
||||
export function putHostValue(...args) {
|
||||
let peer: FluencePeer;
|
||||
let key;
|
||||
let value;
|
||||
let service_id;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
key = args[1];
|
||||
value = args[2];
|
||||
service_id = args[3];
|
||||
config = args[4];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
key = args[0];
|
||||
value = args[1];
|
||||
service_id = args[2];
|
||||
config = args[3];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -53,22 +142,27 @@ export async function putHostValue(client: FluenceClient, key: string, value: st
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'key', () => {
|
||||
return key;
|
||||
});
|
||||
h.on('getDataSrv', 'value', () => {
|
||||
return value;
|
||||
});
|
||||
h.on('getDataSrv', 'service_id', () => {
|
||||
return service_id === null ? [] : [service_id];
|
||||
});
|
||||
h.on('getDataSrv', 'key', () => {return key;});
|
||||
h.on('getDataSrv', 'value', () => {return value;});
|
||||
h.on('getDataSrv', 'service_id', () => {return service_id === null ? [] : [service_id];});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -76,26 +170,39 @@ h.on('getDataSrv', 'service_id', () => {return service_id === null ? [] : [servi
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for putHostValue');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
||||
export function create_client_util(service_id: string, config?: { ttl?: number }): Promise<string>;
|
||||
export function create_client_util(peer: FluencePeer, service_id: string, config?: { ttl?: number }): Promise<string>;
|
||||
export function create_client_util(...args) {
|
||||
let peer: FluencePeer;
|
||||
let service_id;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
service_id = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
service_id = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
export async function create_client_util(client: FluenceClient, service_id: string, config?: {ttl?: number}): Promise<string> {
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -112,20 +219,21 @@ export async function create_client_util(client: FluenceClient, service_id: stri
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'service_id', () => {
|
||||
return service_id;
|
||||
});
|
||||
h.on('getDataSrv', 'service_id', () => {return service_id;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -133,13 +241,12 @@ export async function create_client_util(client: FluenceClient, service_id: stri
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for create_client_util');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,36 +1,102 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//Println
|
||||
//defaultId = "println-service-id"
|
||||
export interface PrintlnDef {
|
||||
print: (arg0: string, callParams: CallParams<'arg0'>) => void;
|
||||
}
|
||||
|
||||
//print: (arg0: string) => void
|
||||
//END Println
|
||||
export function registerPrintln(service: PrintlnDef): void;
|
||||
export function registerPrintln(serviceId: string, service: PrintlnDef): void;
|
||||
export function registerPrintln(peer: FluencePeer, service: PrintlnDef): void;
|
||||
export function registerPrintln(peer: FluencePeer, serviceId: string, service: PrintlnDef): void;
|
||||
export function registerPrintln(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'println-service-id';
|
||||
}
|
||||
|
||||
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 === 'print') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
service.print(req.args[0], callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function print(client: FluenceClient, str: string, config?: {ttl?: number}): Promise<void> {
|
||||
export function print(str: string, config?: { ttl?: number }): Promise<void>;
|
||||
export function print(peer: FluencePeer, str: string, config?: { ttl?: number }): Promise<void>;
|
||||
export function print(...args) {
|
||||
let peer: FluencePeer;
|
||||
let str;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
str = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
str = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<void>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
@ -41,16 +107,18 @@ export async function print(client: FluenceClient, str: string, config?: {ttl?:
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'str', () => {return str;});
|
||||
|
||||
h.on('getDataSrv', 'str', () => {
|
||||
return str;
|
||||
});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -58,13 +126,12 @@ export async function print(client: FluenceClient, str: string, config?: {ttl?:
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for print');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return Promise.race([promise, Promise.resolve()]);
|
||||
}
|
||||
|
||||
|
@ -1,36 +1,97 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//OpA
|
||||
//defaultId = "pop"
|
||||
export interface OpADef {
|
||||
get_str: (callParams: CallParams<null>) => string;
|
||||
}
|
||||
|
||||
//get_str: () => string
|
||||
//END OpA
|
||||
export function registerOpA(service: OpADef): void;
|
||||
export function registerOpA(serviceId: string, service: OpADef): void;
|
||||
export function registerOpA(peer: FluencePeer, service: OpADef): void;
|
||||
export function registerOpA(peer: FluencePeer, serviceId: string, service: OpADef): void;
|
||||
export function registerOpA(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'pop';
|
||||
}
|
||||
|
||||
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 === 'get_str') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.get_str(callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function get_results(client: FluenceClient, config?: {ttl?: number}): Promise<string[]> {
|
||||
export function get_results(config?: { ttl?: number }): Promise<string[]>;
|
||||
export function get_results(peer: FluencePeer, config?: { ttl?: number }): Promise<string[]>;
|
||||
export function get_results(...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<string[]>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -50,20 +111,19 @@ export async function get_results(client: FluenceClient, config?: {ttl?: number}
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -71,13 +131,12 @@ export async function get_results(client: FluenceClient, config?: {ttl?: number}
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for get_results');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,29 +1,44 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
|
||||
// Functions
|
||||
|
||||
export async function returnLiteral(client: FluenceClient, config?: {ttl?: number}): Promise<string> {
|
||||
export function returnLiteral(config?: { ttl?: number }): Promise<string>;
|
||||
export function returnLiteral(peer: FluencePeer, config?: { ttl?: number }): Promise<string>;
|
||||
export function returnLiteral(...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<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(xor
|
||||
@ -34,20 +49,19 @@ export async function returnLiteral(client: FluenceClient, config?: {ttl?: numbe
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
|
||||
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -55,13 +69,12 @@ export async function returnLiteral(client: FluenceClient, config?: {ttl?: numbe
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for returnLiteral');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,36 +1,101 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//Stringer
|
||||
//defaultId = "stringer-id"
|
||||
export interface StringerDef {
|
||||
returnString: (arg0: string, callParams: CallParams<'arg0'>) => string;
|
||||
}
|
||||
|
||||
//returnString: (arg0: string) => string
|
||||
//END Stringer
|
||||
export function registerStringer(service: StringerDef): void;
|
||||
export function registerStringer(serviceId: string, service: StringerDef): void;
|
||||
export function registerStringer(peer: FluencePeer, service: StringerDef): void;
|
||||
export function registerStringer(peer: FluencePeer, serviceId: string, service: StringerDef): void;
|
||||
export function registerStringer(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'stringer-id';
|
||||
}
|
||||
|
||||
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 === 'returnString') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.returnString(req.args[0], callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function checkStreams(client: FluenceClient, ch: string[], config?: {ttl?: number}): Promise<string[]> {
|
||||
export function checkStreams(ch: string[], config?: { ttl?: number }): Promise<string[]>;
|
||||
export function checkStreams(peer: FluencePeer, ch: string[], config?: { ttl?: number }): Promise<string[]>;
|
||||
export function checkStreams(...args) {
|
||||
let peer: FluencePeer;
|
||||
let ch;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
ch = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
ch = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string[]>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -58,20 +123,21 @@ export async function checkStreams(client: FluenceClient, ch: string[], config?:
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'ch', () => {
|
||||
return ch;
|
||||
});
|
||||
h.on('getDataSrv', 'ch', () => {return ch;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -79,13 +145,12 @@ export async function checkStreams(client: FluenceClient, ch: string[], config?:
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for checkStreams');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,36 +1,109 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//TestService
|
||||
//defaultId = "test-service"
|
||||
export interface TestServiceDef {
|
||||
get_records: (key: string, callParams: CallParams<'key'>) => string[];
|
||||
}
|
||||
|
||||
//get_records: (key: string) => string[]
|
||||
//END TestService
|
||||
export function registerTestService(service: TestServiceDef): void;
|
||||
export function registerTestService(serviceId: string, service: TestServiceDef): void;
|
||||
export function registerTestService(peer: FluencePeer, service: TestServiceDef): void;
|
||||
export function registerTestService(peer: FluencePeer, serviceId: string, service: TestServiceDef): void;
|
||||
export function registerTestService(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'test-service';
|
||||
}
|
||||
|
||||
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 === 'get_records') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
key: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.get_records(req.args[0], callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function append_records(client: FluenceClient, peer: string, srum: string[][], config?: {ttl?: number}): Promise<void> {
|
||||
export function append_records(peer_: string, srum: string[][], config?: { ttl?: number }): Promise<void>;
|
||||
export function append_records(
|
||||
peer: FluencePeer,
|
||||
peer_: string,
|
||||
srum: string[][],
|
||||
config?: { ttl?: number },
|
||||
): Promise<void>;
|
||||
export function append_records(...args) {
|
||||
let peer: FluencePeer;
|
||||
let peer_;
|
||||
let srum;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
peer_ = args[1];
|
||||
srum = args[2];
|
||||
config = args[3];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
peer_ = args[0];
|
||||
srum = args[1];
|
||||
config = args[2];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<void>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -52,17 +125,21 @@ export async function append_records(client: FluenceClient, peer: string, srum:
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'peer', () => {return peer;});
|
||||
h.on('getDataSrv', 'srum', () => {return srum;});
|
||||
|
||||
h.on('getDataSrv', 'peer', () => {
|
||||
return peer_;
|
||||
});
|
||||
h.on('getDataSrv', 'srum', () => {
|
||||
return srum;
|
||||
});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -70,26 +147,39 @@ h.on('getDataSrv', 'srum', () => {return srum;});
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for append_records');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return Promise.race([promise, Promise.resolve()]);
|
||||
}
|
||||
|
||||
|
||||
export function retrieve_records(peer_: string, config?: { ttl?: number }): Promise<string[][]>;
|
||||
export function retrieve_records(peer: FluencePeer, peer_: string, config?: { ttl?: number }): Promise<string[][]>;
|
||||
export function retrieve_records(...args) {
|
||||
let peer: FluencePeer;
|
||||
let peer_;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
peer_ = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
peer_ = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
export async function retrieve_records(client: FluenceClient, peer: string, config?: {ttl?: number}): Promise<string[][]> {
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string[][]>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -106,20 +196,21 @@ export async function retrieve_records(client: FluenceClient, peer: string, conf
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'peer', () => {
|
||||
return peer_;
|
||||
});
|
||||
h.on('getDataSrv', 'peer', () => {return peer;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -127,13 +218,12 @@ export async function retrieve_records(client: FluenceClient, peer: string, conf
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for retrieve_records');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,36 +1,101 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//DTGetter
|
||||
//defaultId = "get-dt"
|
||||
export interface DTGetterDef {
|
||||
get_dt: (s: string, callParams: CallParams<'s'>) => { field: string };
|
||||
}
|
||||
|
||||
//get_dt: (s: string) => {field:string}
|
||||
//END DTGetter
|
||||
export function registerDTGetter(service: DTGetterDef): void;
|
||||
export function registerDTGetter(serviceId: string, service: DTGetterDef): void;
|
||||
export function registerDTGetter(peer: FluencePeer, service: DTGetterDef): void;
|
||||
export function registerDTGetter(peer: FluencePeer, serviceId: string, service: DTGetterDef): void;
|
||||
export function registerDTGetter(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'get-dt';
|
||||
}
|
||||
|
||||
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 === 'get_dt') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
s: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.get_dt(req.args[0], callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function use_name1(client: FluenceClient, name: string, config?: {ttl?: number}): Promise<string> {
|
||||
export function use_name1(name: string, config?: { ttl?: number }): Promise<string>;
|
||||
export function use_name1(peer: FluencePeer, name: string, config?: { ttl?: number }): Promise<string>;
|
||||
export function use_name1(...args) {
|
||||
let peer: FluencePeer;
|
||||
let name;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
name = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
name = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -47,20 +112,21 @@ export async function use_name1(client: FluenceClient, name: string, config?: {t
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'name', () => {
|
||||
return name;
|
||||
});
|
||||
h.on('getDataSrv', 'name', () => {return name;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -68,26 +134,39 @@ export async function use_name1(client: FluenceClient, name: string, config?: {t
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for use_name1');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
||||
export function use_name2(name: string, config?: { ttl?: number }): Promise<string[]>;
|
||||
export function use_name2(peer: FluencePeer, name: string, config?: { ttl?: number }): Promise<string[]>;
|
||||
export function use_name2(...args) {
|
||||
let peer: FluencePeer;
|
||||
let name;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
name = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
name = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
export async function use_name2(client: FluenceClient, name: string, config?: {ttl?: number}): Promise<string[]> {
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string[]>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -119,20 +198,21 @@ export async function use_name2(client: FluenceClient, name: string, config?: {t
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'name', () => {
|
||||
return name;
|
||||
});
|
||||
h.on('getDataSrv', 'name', () => {return name;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -140,13 +220,12 @@ export async function use_name2(client: FluenceClient, name: string, config?: {t
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for use_name2');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,36 +1,110 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//ConcatSubs
|
||||
//defaultId = "concat_subs"
|
||||
export interface ConcatSubsDef {
|
||||
get_some: (
|
||||
s: string,
|
||||
sr: { one: string; two: number },
|
||||
callParams: CallParams<'s' | 'sr'>,
|
||||
) => { one: string; two: number };
|
||||
}
|
||||
|
||||
//get_some: (s: string, sr: {one:string;two:number}) => {one:string;two:number}
|
||||
//END ConcatSubs
|
||||
export function registerConcatSubs(service: ConcatSubsDef): void;
|
||||
export function registerConcatSubs(serviceId: string, service: ConcatSubsDef): void;
|
||||
export function registerConcatSubs(peer: FluencePeer, service: ConcatSubsDef): void;
|
||||
export function registerConcatSubs(peer: FluencePeer, serviceId: string, service: ConcatSubsDef): void;
|
||||
export function registerConcatSubs(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'concat_subs';
|
||||
}
|
||||
|
||||
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 === 'get_some') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
s: req.tetraplets[0],
|
||||
sr: req.tetraplets[1],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.get_some(req.args[0], req.args[1], callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function subImportUsage(client: FluenceClient, s: string, config?: {ttl?: number}): Promise<{one:string;two:number}> {
|
||||
export function subImportUsage(s: string, config?: { ttl?: number }): Promise<{ one: string; two: number }>;
|
||||
export function subImportUsage(
|
||||
peer: FluencePeer,
|
||||
s: string,
|
||||
config?: { ttl?: number },
|
||||
): Promise<{ one: string; two: number }>;
|
||||
export function subImportUsage(...args) {
|
||||
let peer: FluencePeer;
|
||||
let s;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
s = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
s = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<{one:string;two:number}>((resolve, reject) => {
|
||||
const promise = new Promise<{ one: string; two: number }>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -53,20 +127,21 @@ export async function subImportUsage(client: FluenceClient, s: string, config?:
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 's', () => {
|
||||
return s;
|
||||
});
|
||||
h.on('getDataSrv', 's', () => {return s;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -74,13 +149,12 @@ export async function subImportUsage(client: FluenceClient, s: string, config?:
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for subImportUsage');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,45 +1,179 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//Testo
|
||||
//defaultId = "testo"
|
||||
export interface TestoDef {
|
||||
getString: (arg0: string, callParams: CallParams<'arg0'>) => string;
|
||||
}
|
||||
|
||||
//getString: (arg0: string) => string
|
||||
//END Testo
|
||||
export function registerTesto(service: TestoDef): void;
|
||||
export function registerTesto(serviceId: string, service: TestoDef): void;
|
||||
export function registerTesto(peer: FluencePeer, service: TestoDef): void;
|
||||
export function registerTesto(peer: FluencePeer, serviceId: string, service: TestoDef): void;
|
||||
export function registerTesto(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'testo';
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
//LocalPrint
|
||||
//defaultId = "lp"
|
||||
if (req.fnName === 'getString') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.getString(req.args[0], callParams);
|
||||
}
|
||||
|
||||
//print: (arg0: string) => void
|
||||
//END LocalPrint
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
export interface LocalPrintDef {
|
||||
print: (arg0: string, callParams: CallParams<'arg0'>) => void;
|
||||
}
|
||||
|
||||
export function registerLocalPrint(service: LocalPrintDef): void;
|
||||
export function registerLocalPrint(serviceId: string, service: LocalPrintDef): void;
|
||||
export function registerLocalPrint(peer: FluencePeer, service: LocalPrintDef): void;
|
||||
export function registerLocalPrint(peer: FluencePeer, serviceId: string, service: LocalPrintDef): void;
|
||||
export function registerLocalPrint(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'lp';
|
||||
}
|
||||
|
||||
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 === 'print') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
arg0: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
service.print(req.args[0], callParams);
|
||||
resp.result = {};
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function topologyTest(client: FluenceClient, me: string, myRelay: string, friend: string, friendRelay: string, config?: {ttl?: number}): Promise<string> {
|
||||
export function topologyTest(
|
||||
me: string,
|
||||
myRelay: string,
|
||||
friend: string,
|
||||
friendRelay: string,
|
||||
config?: { ttl?: number },
|
||||
): Promise<string>;
|
||||
export function topologyTest(
|
||||
peer: FluencePeer,
|
||||
me: string,
|
||||
myRelay: string,
|
||||
friend: string,
|
||||
friendRelay: string,
|
||||
config?: { ttl?: number },
|
||||
): Promise<string>;
|
||||
export function topologyTest(...args) {
|
||||
let peer: FluencePeer;
|
||||
let me;
|
||||
let myRelay;
|
||||
let friend;
|
||||
let friendRelay;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
me = args[1];
|
||||
myRelay = args[2];
|
||||
friend = args[3];
|
||||
friendRelay = args[4];
|
||||
config = args[5];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
me = args[0];
|
||||
myRelay = args[1];
|
||||
friend = args[2];
|
||||
friendRelay = args[3];
|
||||
config = args[4];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -95,23 +229,30 @@ export async function topologyTest(client: FluenceClient, me: string, myRelay: s
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'me', () => {
|
||||
return me;
|
||||
});
|
||||
h.on('getDataSrv', 'myRelay', () => {
|
||||
return myRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'friend', () => {
|
||||
return friend;
|
||||
});
|
||||
h.on('getDataSrv', 'friendRelay', () => {
|
||||
return friendRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'me', () => {return me;});
|
||||
h.on('getDataSrv', 'myRelay', () => {return myRelay;});
|
||||
h.on('getDataSrv', 'friend', () => {return friend;});
|
||||
h.on('getDataSrv', 'friendRelay', () => {return friendRelay;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -119,13 +260,12 @@ h.on('getDataSrv', 'friendRelay', () => {return friendRelay;});
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for topologyTest');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,45 +1,154 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//Unexisted
|
||||
//defaultId = "unex"
|
||||
export interface UnexistedDef {
|
||||
getStr: (callParams: CallParams<null>) => string;
|
||||
}
|
||||
|
||||
//getStr: () => string
|
||||
//END Unexisted
|
||||
export function registerUnexisted(service: UnexistedDef): void;
|
||||
export function registerUnexisted(serviceId: string, service: UnexistedDef): void;
|
||||
export function registerUnexisted(peer: FluencePeer, service: UnexistedDef): void;
|
||||
export function registerUnexisted(peer: FluencePeer, serviceId: string, service: UnexistedDef): void;
|
||||
export function registerUnexisted(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'unex';
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
//OpA
|
||||
//defaultId = "op"
|
||||
if (req.fnName === 'getStr') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.getStr(callParams);
|
||||
}
|
||||
|
||||
//identity: (s: string) => string
|
||||
//END OpA
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
export interface OpADef {
|
||||
identity: (s: string, callParams: CallParams<'s'>) => string;
|
||||
}
|
||||
|
||||
export function registerOpA(service: OpADef): void;
|
||||
export function registerOpA(serviceId: string, service: OpADef): void;
|
||||
export function registerOpA(peer: FluencePeer, service: OpADef): void;
|
||||
export function registerOpA(peer: FluencePeer, serviceId: string, service: OpADef): void;
|
||||
export function registerOpA(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'op';
|
||||
}
|
||||
|
||||
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 === 'identity') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
s: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.identity(req.args[0], callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function tryCatchTest(client: FluenceClient, node_id: string, config?: {ttl?: number}): Promise<string[]> {
|
||||
export function tryCatchTest(node_id: string, config?: { ttl?: number }): Promise<string[]>;
|
||||
export function tryCatchTest(peer: FluencePeer, node_id: string, config?: { ttl?: number }): Promise<string[]>;
|
||||
export function tryCatchTest(...args) {
|
||||
let peer: FluencePeer;
|
||||
let node_id;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
node_id = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
node_id = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string[]>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -77,20 +186,21 @@ export async function tryCatchTest(client: FluenceClient, node_id: string, confi
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'node_id', () => {
|
||||
return node_id;
|
||||
});
|
||||
h.on('getDataSrv', 'node_id', () => {return node_id;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -98,13 +208,12 @@ export async function tryCatchTest(client: FluenceClient, node_id: string, confi
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for tryCatchTest');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,45 +1,154 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//Unexisted
|
||||
//defaultId = "unex"
|
||||
export interface UnexistedDef {
|
||||
getStr: (callParams: CallParams<null>) => string;
|
||||
}
|
||||
|
||||
//getStr: () => string
|
||||
//END Unexisted
|
||||
export function registerUnexisted(service: UnexistedDef): void;
|
||||
export function registerUnexisted(serviceId: string, service: UnexistedDef): void;
|
||||
export function registerUnexisted(peer: FluencePeer, service: UnexistedDef): void;
|
||||
export function registerUnexisted(peer: FluencePeer, serviceId: string, service: UnexistedDef): void;
|
||||
export function registerUnexisted(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'unex';
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
//OpE
|
||||
//defaultId = "op"
|
||||
if (req.fnName === 'getStr') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.getStr(callParams);
|
||||
}
|
||||
|
||||
//identity: (s: string) => string
|
||||
//END OpE
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
export interface OpEDef {
|
||||
identity: (s: string, callParams: CallParams<'s'>) => string;
|
||||
}
|
||||
|
||||
export function registerOpE(service: OpEDef): void;
|
||||
export function registerOpE(serviceId: string, service: OpEDef): void;
|
||||
export function registerOpE(peer: FluencePeer, service: OpEDef): void;
|
||||
export function registerOpE(peer: FluencePeer, serviceId: string, service: OpEDef): void;
|
||||
export function registerOpE(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'op';
|
||||
}
|
||||
|
||||
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 === 'identity') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
s: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.identity(req.args[0], callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function tryOtherwiseTest(client: FluenceClient, node_id: string, config?: {ttl?: number}): Promise<string> {
|
||||
export function tryOtherwiseTest(node_id: string, config?: { ttl?: number }): Promise<string>;
|
||||
export function tryOtherwiseTest(peer: FluencePeer, node_id: string, config?: { ttl?: number }): Promise<string>;
|
||||
export function tryOtherwiseTest(...args) {
|
||||
let peer: FluencePeer;
|
||||
let node_id;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
node_id = args[1];
|
||||
config = args[2];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
node_id = args[0];
|
||||
config = args[1];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<string>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -71,20 +180,21 @@ export async function tryOtherwiseTest(client: FluenceClient, node_id: string, c
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'node_id', () => {
|
||||
return node_id;
|
||||
});
|
||||
h.on('getDataSrv', 'node_id', () => {return node_id;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -92,13 +202,12 @@ export async function tryOtherwiseTest(client: FluenceClient, node_id: string, c
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for tryOtherwiseTest');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,36 +1,113 @@
|
||||
/**
|
||||
*
|
||||
* 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.3.0-SNAPSHOT
|
||||
*
|
||||
*/
|
||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
ResultCodes,
|
||||
RequestFlow,
|
||||
RequestFlowBuilder,
|
||||
CallParams,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||
|
||||
// Services
|
||||
|
||||
//CustomId
|
||||
//defaultId = "cid"
|
||||
export interface CustomIdDef {
|
||||
id: (s: string, callParams: CallParams<'s'>) => string;
|
||||
}
|
||||
|
||||
//id: (s: string) => string
|
||||
//END CustomId
|
||||
export function registerCustomId(service: CustomIdDef): void;
|
||||
export function registerCustomId(serviceId: string, service: CustomIdDef): void;
|
||||
export function registerCustomId(peer: FluencePeer, service: CustomIdDef): void;
|
||||
export function registerCustomId(peer: FluencePeer, serviceId: string, service: CustomIdDef): void;
|
||||
export function registerCustomId(...args) {
|
||||
let peer: FluencePeer;
|
||||
let serviceId;
|
||||
let service;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
}
|
||||
|
||||
if (typeof args[0] === 'string') {
|
||||
serviceId = args[0];
|
||||
} else if (typeof args[1] === 'string') {
|
||||
serviceId = args[1];
|
||||
} else {
|
||||
serviceId = 'cid';
|
||||
}
|
||||
|
||||
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 === 'id') {
|
||||
const callParams = {
|
||||
...req.particleContext,
|
||||
tetraplets: {
|
||||
s: req.tetraplets[0],
|
||||
},
|
||||
};
|
||||
resp.retCode = ResultCodes.success;
|
||||
resp.result = service.id(req.args[0], callParams);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
export async function viaArr(client: FluenceClient, node_id: string, viaAr: string[], config?: {ttl?: number}): Promise<{external_addresses:string[]}> {
|
||||
export function viaArr(
|
||||
node_id: string,
|
||||
viaAr: string[],
|
||||
config?: { ttl?: number },
|
||||
): Promise<{ external_addresses: string[] }>;
|
||||
export function viaArr(
|
||||
peer: FluencePeer,
|
||||
node_id: string,
|
||||
viaAr: string[],
|
||||
config?: { ttl?: number },
|
||||
): Promise<{ external_addresses: string[] }>;
|
||||
export function viaArr(...args) {
|
||||
let peer: FluencePeer;
|
||||
let node_id;
|
||||
let viaAr;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
node_id = args[1];
|
||||
viaAr = args[2];
|
||||
config = args[3];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
node_id = args[0];
|
||||
viaAr = args[1];
|
||||
config = args[2];
|
||||
}
|
||||
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<{external_addresses:string[]}>((resolve, reject) => {
|
||||
const promise = new Promise<{ external_addresses: string[] }>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -89,21 +166,24 @@ export async function viaArr(client: FluenceClient, node_id: string, viaAr: stri
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'node_id', () => {
|
||||
return node_id;
|
||||
});
|
||||
h.on('getDataSrv', 'viaAr', () => {
|
||||
return viaAr;
|
||||
});
|
||||
h.on('getDataSrv', 'node_id', () => {return node_id;});
|
||||
h.on('getDataSrv', 'viaAr', () => {return viaAr;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -111,26 +191,51 @@ h.on('getDataSrv', 'viaAr', () => {return viaAr;});
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for viaArr');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
||||
export function viaStream(
|
||||
node_id: string,
|
||||
viaStr: string[],
|
||||
config?: { ttl?: number },
|
||||
): Promise<{ external_addresses: string[] }>;
|
||||
export function viaStream(
|
||||
peer: FluencePeer,
|
||||
node_id: string,
|
||||
viaStr: string[],
|
||||
config?: { ttl?: number },
|
||||
): Promise<{ external_addresses: string[] }>;
|
||||
export function viaStream(...args) {
|
||||
let peer: FluencePeer;
|
||||
let node_id;
|
||||
let viaStr;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
node_id = args[1];
|
||||
viaStr = args[2];
|
||||
config = args[3];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
node_id = args[0];
|
||||
viaStr = args[1];
|
||||
config = args[2];
|
||||
}
|
||||
|
||||
export async function viaStream(client: FluenceClient, node_id: string, viaStr: string[], config?: {ttl?: number}): Promise<{external_addresses:string[]}> {
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<{external_addresses:string[]}>((resolve, reject) => {
|
||||
const promise = new Promise<{ external_addresses: string[] }>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -197,21 +302,24 @@ export async function viaStream(client: FluenceClient, node_id: string, viaStr:
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'node_id', () => {
|
||||
return node_id;
|
||||
});
|
||||
h.on('getDataSrv', 'viaStr', () => {
|
||||
return viaStr;
|
||||
});
|
||||
h.on('getDataSrv', 'node_id', () => {return node_id;});
|
||||
h.on('getDataSrv', 'viaStr', () => {return viaStr;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -219,26 +327,56 @@ h.on('getDataSrv', 'viaStr', () => {return viaStr;});
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for viaStream');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
||||
export function viaOpt(
|
||||
relay: string,
|
||||
node_id: string,
|
||||
viaOpt: string | null,
|
||||
config?: { ttl?: number },
|
||||
): Promise<{ external_addresses: string[] }>;
|
||||
export function viaOpt(
|
||||
peer: FluencePeer,
|
||||
relay: string,
|
||||
node_id: string,
|
||||
viaOpt: string | null,
|
||||
config?: { ttl?: number },
|
||||
): Promise<{ external_addresses: string[] }>;
|
||||
export function viaOpt(...args) {
|
||||
let peer: FluencePeer;
|
||||
let relay;
|
||||
let node_id;
|
||||
let viaOpt;
|
||||
let config;
|
||||
if (args[0] instanceof FluencePeer) {
|
||||
peer = args[0];
|
||||
relay = args[1];
|
||||
node_id = args[2];
|
||||
viaOpt = args[3];
|
||||
config = args[4];
|
||||
} else {
|
||||
peer = FluencePeer.default;
|
||||
relay = args[0];
|
||||
node_id = args[1];
|
||||
viaOpt = args[2];
|
||||
config = args[3];
|
||||
}
|
||||
|
||||
export async function viaOpt(client: FluenceClient, relay: string, node_id: string, viaOpt: string | null, config?: {ttl?: number}): Promise<{external_addresses:string[]}> {
|
||||
let request: RequestFlow;
|
||||
const promise = new Promise<{external_addresses:string[]}>((resolve, reject) => {
|
||||
const promise = new Promise<{ external_addresses: string[] }>((resolve, reject) => {
|
||||
const r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -300,22 +438,27 @@ export async function viaOpt(client: FluenceClient, relay: string, node_id: stri
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
|
||||
`,
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId!;
|
||||
return peer.connectionInfo.connectedRelay;
|
||||
});
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return relay;
|
||||
});
|
||||
h.on('getDataSrv', 'node_id', () => {
|
||||
return node_id;
|
||||
});
|
||||
h.on('getDataSrv', 'viaOpt', () => {
|
||||
return viaOpt === null ? [] : [viaOpt];
|
||||
});
|
||||
h.on('getDataSrv', 'relay', () => {return relay;});
|
||||
h.on('getDataSrv', 'node_id', () => {return node_id;});
|
||||
h.on('getDataSrv', 'viaOpt', () => {return viaOpt === null ? [] : [viaOpt];});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
@ -323,13 +466,12 @@ h.on('getDataSrv', 'viaOpt', () => {return viaOpt === null ? [] : [viaOpt];});
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for viaOpt');
|
||||
})
|
||||
if(config && config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
});
|
||||
if (config && config.ttl) {
|
||||
r.withTTL(config.ttl);
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request!);
|
||||
peer.internals.initiateFlow(request!);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
import {FluenceClient} from "@fluencelabs/fluence";
|
||||
import {passFunctionAsArg} from "../compiled/examples/callArrow";
|
||||
import {doSmth} from "../compiled/examples/assignment";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { doSmth } from '../compiled/examples/assignment';
|
||||
|
||||
export async function assignmentCall(client: FluenceClient): Promise<string[]> {
|
||||
return await doSmth(client, {value: "abc"}, {ttl: 6000})
|
||||
export async function assignmentCall(): Promise<string[]> {
|
||||
return await doSmth({ value: 'abc' }, { ttl: 6000 });
|
||||
}
|
||||
|
@ -1,12 +1,13 @@
|
||||
import {FluenceClient} from "@fluencelabs/fluence";
|
||||
import {passFunctionAsArg} from "../compiled/examples/callArrow";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { passFunctionAsArg } from '../compiled/examples/callArrow';
|
||||
|
||||
export async function callArrowCall(client: FluenceClient): Promise<string> {
|
||||
return new Promise<string>((resolve, reject) => {
|
||||
passFunctionAsArg(client, client.relayPeerId!, "callArrow call", (a: string) => {
|
||||
let result = "Hello, " + a + "!";
|
||||
resolve(result)
|
||||
return result;
|
||||
export async function callArrowCall(): Promise<string> {
|
||||
const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay;
|
||||
return new Promise<string>((resolve, reject) => {
|
||||
passFunctionAsArg(relayPeerId, 'callArrow call', (a: string) => {
|
||||
let result = 'Hello, ' + a + '!';
|
||||
resolve(result);
|
||||
return result;
|
||||
});
|
||||
});
|
||||
})
|
||||
}
|
||||
|
@ -1,15 +1,19 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {parFunc} from "../compiled/examples/par";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { parFunc } from '../compiled/examples/par';
|
||||
import { registerCoService } from '../compiled/examples/co';
|
||||
|
||||
export async function coCall(client: FluenceClient): Promise<string[]> {
|
||||
export async function coCall(): Promise<string[]> {
|
||||
const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay;
|
||||
|
||||
registerServiceFunction(client, "coservice-id", "call", (args: any[], _) => {
|
||||
return "hello"
|
||||
})
|
||||
registerCoService({
|
||||
call: () => {
|
||||
return 'hello';
|
||||
},
|
||||
});
|
||||
|
||||
return new Promise<string[]>((resolve, reject) => {
|
||||
parFunc(client, client.relayPeerId!, (c) => {
|
||||
resolve(c.external_addresses)
|
||||
})
|
||||
})
|
||||
parFunc(relayPeerId, (c) => {
|
||||
resolve(c.external_addresses);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -1,16 +1,18 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {doStuff} from "../compiled/examples/complex";
|
||||
import {testNet} from "@fluencelabs/fluence-network-environment";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { doStuff, registerTestS } from '../compiled/examples/complex';
|
||||
|
||||
export async function complexCall(client: FluenceClient) {
|
||||
export async function complexCall() {
|
||||
const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay;
|
||||
const selfPeerId = FluencePeer.default.connectionInfo.selfPeerId;
|
||||
|
||||
registerServiceFunction(client, "some-id", "t", (args: any[], _) => {
|
||||
return args[0]
|
||||
})
|
||||
registerTestS({
|
||||
t: (arg0) => {
|
||||
return arg0;
|
||||
},
|
||||
multiline: (a, b, c) => {
|
||||
return b;
|
||||
},
|
||||
});
|
||||
|
||||
registerServiceFunction(client, "some-id", "multiline", (args: any[], _) => {
|
||||
return args[1]
|
||||
})
|
||||
|
||||
return await doStuff(client, client.relayPeerId!, client.selfPeerId, true, true, ["1", "2"], ["3", "4"], "some str")
|
||||
return await doStuff(relayPeerId, selfPeerId, true, true, ['1', '2'], ['3', '4'], 'some str');
|
||||
}
|
||||
|
@ -1,11 +1,12 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {callConstant} from "../compiled/examples/constants";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { callConstant, registerGetter } from '../compiled/examples/constants';
|
||||
|
||||
export async function constantsCall(client: FluenceClient): Promise<string[]> {
|
||||
registerServiceFunction(client, "test", "createStr", (args: any[], _) => {
|
||||
return "" + args[0]
|
||||
})
|
||||
export async function constantsCall(): Promise<string[]> {
|
||||
registerGetter({
|
||||
createStr: (arg0) => {
|
||||
return '' + arg0;
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
return await callConstant(client);
|
||||
}
|
||||
return await callConstant();
|
||||
}
|
||||
|
@ -1,13 +1,15 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {getAliasedData} from "../compiled/examples/dataAlias";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { getAliasedData, registerNodeIdGetter } from '../compiled/examples/dataAlias';
|
||||
|
||||
export async function dataAliasCall(client: FluenceClient) {
|
||||
registerServiceFunction(client, "somesrv", "get", (args: any[], _) => {
|
||||
return {
|
||||
peerId: "peer id str",
|
||||
name: "name str"
|
||||
}
|
||||
})
|
||||
export async function dataAliasCall() {
|
||||
registerNodeIdGetter({
|
||||
get: () => {
|
||||
return {
|
||||
peerId: 'peer id str',
|
||||
name: 'name str',
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
return await getAliasedData(client)
|
||||
return await getAliasedData();
|
||||
}
|
||||
|
@ -1,18 +1,23 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {concat_foobars} from "../compiled/examples/imports_exports/imports";
|
||||
import { concat_foobars, registerStringService } from '../compiled/examples/imports_exports/imports';
|
||||
import { registerMyExportSrv } from '../compiled/examples/imports_exports/exports';
|
||||
import { registerSuperFoo } from '../compiled/examples/imports_exports/declare';
|
||||
|
||||
export async function declareCall(client: FluenceClient) {
|
||||
registerServiceFunction(client, "super_foo", "small_foo", (args: any[], _) => {
|
||||
return "small_foo"
|
||||
})
|
||||
export async function declareCall() {
|
||||
registerSuperFoo({
|
||||
small_foo: () => {
|
||||
return 'small_foo';
|
||||
},
|
||||
});
|
||||
|
||||
registerServiceFunction(client, "string_service", "concat", (args: any[], _) => {
|
||||
return args[0] + args[1]
|
||||
})
|
||||
|
||||
registerServiceFunction(client, "my_export_srv", "another_str", (args: any[], _) => {
|
||||
return "str_from_my_export_srv"
|
||||
})
|
||||
|
||||
return await concat_foobars(client)
|
||||
registerStringService({
|
||||
concat: (a, b) => {
|
||||
return a + b;
|
||||
},
|
||||
});
|
||||
registerMyExportSrv({
|
||||
another_str: () => {
|
||||
return 'str_from_my_export_srv';
|
||||
},
|
||||
});
|
||||
return await concat_foobars();
|
||||
}
|
||||
|
@ -1,13 +1,15 @@
|
||||
import {FluenceClient} from "@fluencelabs/fluence";
|
||||
import {iterateAndPrint, iterateAndPrintParallel} from "../compiled/examples/fold";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { iterateAndPrint, iterateAndPrintParallel } from '../compiled/examples/fold';
|
||||
|
||||
export async function foldCall(client: FluenceClient) {
|
||||
await iterateAndPrint(client, [client.relayPeerId!])
|
||||
export async function foldCall() {
|
||||
const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay;
|
||||
|
||||
return new Promise<string[]>((resolve, reject) => {
|
||||
iterateAndPrintParallel(client, [client.relayPeerId!], (c) => {
|
||||
console.log("iterateAndPrintParallel. external addresses: " + c.external_addresses)
|
||||
resolve(c.external_addresses)
|
||||
})
|
||||
})
|
||||
}
|
||||
await iterateAndPrint([relayPeerId]);
|
||||
|
||||
return new Promise<string[]>((resolve, reject) => {
|
||||
iterateAndPrintParallel([relayPeerId], (c) => {
|
||||
console.log('iterateAndPrintParallel. external addresses: ' + c.external_addresses);
|
||||
resolve(c.external_addresses);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
import {FluenceClient} from "@fluencelabs/fluence";
|
||||
import {getTwoResults} from "../compiled/examples/foldJoin";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { getTwoResults } from '../compiled/examples/foldJoin';
|
||||
|
||||
export async function foldJoinCall(client: FluenceClient): Promise<number[]> {
|
||||
return await getTwoResults(client, client.relayPeerId!, {ttl: 10000})
|
||||
export async function foldJoinCall(): Promise<number[]> {
|
||||
const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay;
|
||||
return await getTwoResults(relayPeerId);
|
||||
}
|
||||
|
@ -1,10 +1,11 @@
|
||||
import {testFunc} from "../compiled/examples/func";
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import { testFunc, registerTestSrv } from '../compiled/examples/func';
|
||||
|
||||
export async function funcCall(client: FluenceClient) {
|
||||
registerServiceFunction(client, "test-service-id", "str", (args: any[], _) => {
|
||||
return `some str`
|
||||
})
|
||||
export async function funcCall() {
|
||||
registerTestSrv({
|
||||
str: () => {
|
||||
return `some str`;
|
||||
},
|
||||
});
|
||||
|
||||
return await testFunc(client);
|
||||
return await testFunc();
|
||||
}
|
||||
|
@ -1,11 +1,13 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {helloWorld} from "../compiled/examples/helloWorld";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { helloWorld, registerStringExtra } from '../compiled/examples/helloWorld';
|
||||
|
||||
export async function helloWorldCall(client: FluenceClient) {
|
||||
export async function helloWorldCall() {
|
||||
// helloWorld.aqua
|
||||
registerServiceFunction(client, "service-id", "addNameToHello", (args: any[], _) => {
|
||||
return `Hello, ${args[0]}!`
|
||||
})
|
||||
registerStringExtra({
|
||||
addNameToHello: (args0) => {
|
||||
return `Hello, ${args0}!`;
|
||||
},
|
||||
});
|
||||
|
||||
return await helloWorld(client, "NAME");
|
||||
return await helloWorld('NAME');
|
||||
}
|
||||
|
@ -1,10 +1,10 @@
|
||||
import {FluenceClient} from "@fluencelabs/fluence";
|
||||
import {ifElseCall, ifElseNumCall} from "../compiled/examples/if";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { ifElseCall, ifElseNumCall } from '../compiled/examples/if';
|
||||
|
||||
export async function ifCall(client: FluenceClient) {
|
||||
await ifElseCall(client, false)
|
||||
await ifElseCall(client, true)
|
||||
export async function ifCall() {
|
||||
await ifElseCall(false);
|
||||
await ifElseCall(true);
|
||||
|
||||
await ifElseNumCall(client, 1)
|
||||
await ifElseNumCall(client, 5)
|
||||
await ifElseNumCall(1);
|
||||
await ifElseNumCall(5);
|
||||
}
|
||||
|
@ -1,18 +1,21 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {barfoo, wrap} from "../compiled/examples/imports_exports/import2";
|
||||
import { registerOneMore } from '../compiled/examples/imports_exports/gen/OneMore';
|
||||
import { barfoo, wrap } from '../compiled/examples/imports_exports/import2';
|
||||
|
||||
export async function import2Call(client: FluenceClient) {
|
||||
export async function import2Call() {
|
||||
registerOneMore('hello', {
|
||||
more_call: () => {
|
||||
return {};
|
||||
},
|
||||
});
|
||||
|
||||
registerServiceFunction(client, "hello", "more_call", (args: any[], _) => {
|
||||
return {}
|
||||
})
|
||||
registerOneMore('ohmygod', {
|
||||
more_call: () => {
|
||||
return {};
|
||||
},
|
||||
});
|
||||
|
||||
registerServiceFunction(client, "ohmygod", "more_call", (args: any[], _) => {
|
||||
return {}
|
||||
})
|
||||
let first = await wrap();
|
||||
let second = await barfoo();
|
||||
|
||||
let first = await wrap(client)
|
||||
let second = await barfoo(client)
|
||||
|
||||
return { first, second }
|
||||
return { first, second };
|
||||
}
|
||||
|
@ -1,14 +1,18 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {multiReturnFunc} from "../compiled/examples/multiReturn";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { multiReturnFunc, registerGetStr, registerGetNum } from '../compiled/examples/multiReturn';
|
||||
|
||||
export async function multiReturnCall(client: FluenceClient): Promise<[string[], number, string, number[], string | null, number]> {
|
||||
registerServiceFunction(client, "multiret-test", "retStr", (args: any[], _) => {
|
||||
return args[0]
|
||||
})
|
||||
export async function multiReturnCall(): Promise<[string[], number, string, number[], string | null, number]> {
|
||||
registerGetStr({
|
||||
retStr: (args0) => {
|
||||
return args0;
|
||||
},
|
||||
});
|
||||
|
||||
registerServiceFunction(client, "multiret-num", "retNum", (args: any[], _) => {
|
||||
return 10
|
||||
})
|
||||
registerGetNum({
|
||||
retNum: () => {
|
||||
return 10;
|
||||
},
|
||||
});
|
||||
|
||||
return await multiReturnFunc(client, [1, 2], null)
|
||||
}
|
||||
return await multiReturnFunc([1, 2], null);
|
||||
}
|
||||
|
@ -1,10 +1,12 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {d} from "../compiled/examples/nestedFuncs";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { d, registerOpH } from '../compiled/examples/nestedFuncs';
|
||||
|
||||
export async function nestedFuncsCall(client: FluenceClient): Promise<string> {
|
||||
registerServiceFunction(client, "opa", "identity", (args: any[], _) => {
|
||||
return args[0]
|
||||
})
|
||||
export async function nestedFuncsCall(): Promise<string> {
|
||||
registerOpH({
|
||||
identity: (args0) => {
|
||||
return args0;
|
||||
},
|
||||
});
|
||||
|
||||
return await d(client, "some-str")
|
||||
return await d('some-str');
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
import {FluenceClient} from "@fluencelabs/fluence";
|
||||
import {getPeerExternalAddresses} from "../compiled/examples/on";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { getPeerExternalAddresses } from '../compiled/examples/on';
|
||||
|
||||
export async function onCall(client: FluenceClient): Promise<string[]> {
|
||||
return await getPeerExternalAddresses(client, client.relayPeerId!)
|
||||
export async function onCall(): Promise<string[]> {
|
||||
const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay;
|
||||
return await getPeerExternalAddresses(relayPeerId);
|
||||
}
|
||||
|
@ -1,20 +1,23 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {parFunc} from "../compiled/examples/par";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { parFunc, registerParService } from '../compiled/examples/par';
|
||||
|
||||
export async function parCall(client: FluenceClient) {
|
||||
export async function parCall() {
|
||||
const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay;
|
||||
|
||||
let promise = new Promise<string>((resolve, reject) => {
|
||||
registerServiceFunction(client, "parservice-id", "call", (args: any[], _) => {
|
||||
console.log("hello from parservice-id")
|
||||
let result = "hello"
|
||||
resolve(result)
|
||||
return result
|
||||
})
|
||||
})
|
||||
registerParService({
|
||||
call: () => {
|
||||
console.log('hello from parservice-id');
|
||||
let result = 'hello';
|
||||
resolve(result);
|
||||
return result;
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
await parFunc(client, client.relayPeerId!, (c) => {
|
||||
console.log("parFunc. external addresses par: " + c.external_addresses)
|
||||
})
|
||||
await parFunc(relayPeerId, (c) => {
|
||||
console.log('parFunc. external addresses par: ' + c.external_addresses);
|
||||
});
|
||||
|
||||
return promise
|
||||
return promise;
|
||||
}
|
||||
|
@ -1,10 +1,12 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {create_client_util} from "../compiled/examples/passArgs";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { create_client_util, registerAquaDHT } from '../compiled/examples/passArgs';
|
||||
|
||||
export async function passArgsCall(client: FluenceClient) {
|
||||
registerServiceFunction(client, "test-dht", "put_host_value", (args: any[], _) => {
|
||||
return args[0] + args[1]
|
||||
})
|
||||
export async function passArgsCall() {
|
||||
registerAquaDHT({
|
||||
put_host_value: (args0, args1) => {
|
||||
return args0 + args1;
|
||||
},
|
||||
});
|
||||
|
||||
return await create_client_util(client, "sid")
|
||||
}
|
||||
return await create_client_util('sid');
|
||||
}
|
||||
|
@ -1,10 +1,12 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {get_results} from "../compiled/examples/pushToStream";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { get_results, registerOpA } from '../compiled/examples/pushToStream';
|
||||
|
||||
export async function pushToStreamCall(client: FluenceClient) {
|
||||
registerServiceFunction(client, "pop", "get_str", (args: any[], _) => {
|
||||
return "get_string"
|
||||
})
|
||||
export async function pushToStreamCall() {
|
||||
registerOpA({
|
||||
get_str: () => {
|
||||
return 'get_string';
|
||||
},
|
||||
});
|
||||
|
||||
return await get_results(client)
|
||||
}
|
||||
return await get_results();
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
import {FluenceClient} from "@fluencelabs/fluence";
|
||||
import {returnLiteral} from "../compiled/examples/returnLiteral";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { returnLiteral } from '../compiled/examples/returnLiteral';
|
||||
|
||||
export async function literalCall(client: FluenceClient) {
|
||||
return returnLiteral(client)
|
||||
}
|
||||
export async function literalCall() {
|
||||
return returnLiteral();
|
||||
}
|
||||
|
@ -1,10 +1,12 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {retrieve_records} from "../compiled/examples/streamArgs";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { retrieve_records, registerTestService } from '../compiled/examples/streamArgs';
|
||||
|
||||
export async function streamArgsCall(client: FluenceClient) {
|
||||
registerServiceFunction(client, "test-service", "get_records", (args: any[], _) => {
|
||||
return [args[0], args[0]]
|
||||
})
|
||||
export async function streamArgsCall() {
|
||||
registerTestService({
|
||||
get_records: (key) => {
|
||||
return [key, key];
|
||||
},
|
||||
});
|
||||
|
||||
return await retrieve_records(client, "peer_id")
|
||||
}
|
||||
return await retrieve_records('peer_id');
|
||||
}
|
||||
|
@ -1,10 +1,12 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {checkStreams} from "../compiled/examples/stream";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { checkStreams, registerStringer } from '../compiled/examples/stream';
|
||||
|
||||
export async function streamCall(client: FluenceClient) {
|
||||
registerServiceFunction(client, "stringer-id", "returnString", (args: any[], _) => {
|
||||
return args[0] + " updated"
|
||||
})
|
||||
export async function streamCall() {
|
||||
registerStringer({
|
||||
returnString: (args0) => {
|
||||
return args0 + ' updated';
|
||||
},
|
||||
});
|
||||
|
||||
return checkStreams(client, ["third", "fourth"])
|
||||
}
|
||||
return checkStreams(['third', 'fourth']);
|
||||
}
|
||||
|
@ -1,12 +1,14 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {use_name2} from "../compiled/examples/streamResults";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { use_name2, registerDTGetter } from '../compiled/examples/streamResults';
|
||||
|
||||
export async function streamResultsCall(client: FluenceClient) {
|
||||
registerServiceFunction(client, "get-dt", "get_dt", (args: any[], _) => {
|
||||
return {
|
||||
field: args[0]
|
||||
}
|
||||
})
|
||||
export async function streamResultsCall() {
|
||||
registerDTGetter({
|
||||
get_dt: (args0) => {
|
||||
return {
|
||||
field: args0,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
return await use_name2(client, "new_name")
|
||||
}
|
||||
return await use_name2('new_name');
|
||||
}
|
||||
|
@ -1,21 +1,24 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {subImportUsage} from "../compiled/examples/subImportUsage";
|
||||
import { registerSubService } from '../compiled/examples/imports_exports/subImport';
|
||||
import { registerConcatSubs, subImportUsage } from '../compiled/examples/subImportUsage';
|
||||
|
||||
export async function subImportCall(client: FluenceClient) {
|
||||
export async function subImportCall() {
|
||||
// helloWorld.aqua
|
||||
registerServiceFunction(client, "sub_service", "sub", (args: any[], _) => {
|
||||
return {
|
||||
one: args[0],
|
||||
two: 42
|
||||
}
|
||||
})
|
||||
registerSubService({
|
||||
sub: (s) => {
|
||||
return {
|
||||
one: s,
|
||||
two: 42,
|
||||
};
|
||||
},
|
||||
});
|
||||
registerConcatSubs({
|
||||
get_some: (s, sr) => {
|
||||
return {
|
||||
one: s,
|
||||
two: sr.two,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
registerServiceFunction(client, "concat_subs", "get_some", (args: any[], _) => {
|
||||
return {
|
||||
one: args[0],
|
||||
two: args[1].two
|
||||
}
|
||||
})
|
||||
|
||||
return await subImportUsage(client, "random_string");
|
||||
return await subImportUsage('random_string');
|
||||
}
|
||||
|
@ -1,17 +1,27 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {topologyTest} from "../compiled/examples/topology";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { topologyTest, registerTesto, registerLocalPrint } from '../compiled/examples/topology';
|
||||
|
||||
export async function topologyCall(client: FluenceClient, client2: FluenceClient): Promise<string> {
|
||||
export async function topologyCall(peer2: FluencePeer): Promise<string> {
|
||||
const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay;
|
||||
const selfPeerId = FluencePeer.default.connectionInfo.selfPeerId;
|
||||
|
||||
registerServiceFunction(client2, "testo", "getString", (args: any[], _) => {
|
||||
console.log("hello from client2: " + args[0])
|
||||
return "hello from client2: " + args[0]
|
||||
})
|
||||
const relayPeerId2 = peer2.connectionInfo.connectedRelay;
|
||||
const selfPeerId2 = peer2.connectionInfo.selfPeerId;
|
||||
|
||||
registerServiceFunction(client, "lp", "print", (args: any[], _) => {
|
||||
console.log("print on client1: " + args[0])
|
||||
return {}
|
||||
})
|
||||
registerTesto(peer2, {
|
||||
getString: (args0) => {
|
||||
console.log('hello from client2: ' + args0);
|
||||
return 'hello from client2: ' + args0;
|
||||
},
|
||||
});
|
||||
|
||||
return await topologyTest(client, client.selfPeerId, client.relayPeerId!, client2.selfPeerId, client2.relayPeerId!, {ttl: 10000})
|
||||
registerLocalPrint({
|
||||
print: (args0) => {
|
||||
console.log('print on client1: ' + args0);
|
||||
},
|
||||
});
|
||||
|
||||
return await topologyTest(selfPeerId, relayPeerId, selfPeerId2, relayPeerId2, {
|
||||
ttl: 10000,
|
||||
});
|
||||
}
|
||||
|
@ -1,8 +1,7 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {topologyTest} from "../compiled/examples/topology";
|
||||
import {tryCatchTest} from "../compiled/examples/tryCatch";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { tryCatchTest } from '../compiled/examples/tryCatch';
|
||||
|
||||
export async function tryCatchCall(client: FluenceClient): Promise<string[]> {
|
||||
|
||||
return await tryCatchTest(client, client.relayPeerId!)
|
||||
}
|
||||
export async function tryCatchCall(): Promise<string[]> {
|
||||
const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay;
|
||||
return await tryCatchTest(relayPeerId);
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {tryOtherwiseTest} from "../compiled/examples/tryOtherwise";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { tryOtherwiseTest } from '../compiled/examples/tryOtherwise';
|
||||
|
||||
export async function tryOtherwiseCall(client: FluenceClient): Promise<string> {
|
||||
|
||||
return await tryOtherwiseTest(client, client.relayPeerId!)
|
||||
}
|
||||
export async function tryOtherwiseCall(): Promise<string> {
|
||||
const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay;
|
||||
return await tryOtherwiseTest(relayPeerId);
|
||||
}
|
||||
|
@ -1,27 +1,28 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {returnNone, returnOptional, useOptional} from "../compiled/examples/option";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { returnNone, returnOptional, useOptional, registerSomeS } from '../compiled/examples/option';
|
||||
|
||||
export async function useOptionalCall(client: FluenceClient): Promise<string> {
|
||||
registerServiceFunction(client, "test2", "getStr", (args: any[], _) => {
|
||||
return args[0]
|
||||
})
|
||||
|
||||
registerServiceFunction(client, "test2", "getStr2", (args: any[], _) => {
|
||||
return args[0]
|
||||
})
|
||||
|
||||
return await useOptional(client, "hello")
|
||||
export function registerHandlers(): void {
|
||||
registerSomeS({
|
||||
getStr: (arg0) => {
|
||||
return arg0;
|
||||
},
|
||||
getStr1: () => {
|
||||
return 'optional';
|
||||
},
|
||||
getStr2: (arg0) => {
|
||||
return arg0;
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export async function returnOptionalCall(client: FluenceClient): Promise<string | null> {
|
||||
registerServiceFunction(client, "test2", "getStr1", (args: any[], _) => {
|
||||
return ["optional"]
|
||||
})
|
||||
|
||||
return await returnOptional(client)
|
||||
export async function useOptionalCall(): Promise<string> {
|
||||
return await useOptional('hello');
|
||||
}
|
||||
|
||||
export async function returnNull(client: FluenceClient): Promise<string | null> {
|
||||
|
||||
return await returnNone(client)
|
||||
export async function returnOptionalCall(): Promise<string | null> {
|
||||
return await returnOptional();
|
||||
}
|
||||
|
||||
export async function returnNull(): Promise<string | null> {
|
||||
return await returnNone();
|
||||
}
|
||||
|
@ -1,17 +1,20 @@
|
||||
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {krasnodar, stage} from "@fluencelabs/fluence-network-environment";
|
||||
import {viaArr, viaOpt, viaStream} from "../compiled/examples/via";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { krasnodar } from '@fluencelabs/fluence-network-environment';
|
||||
import { viaArr, viaOpt, viaStream, registerCustomId } from '../compiled/examples/via';
|
||||
|
||||
export async function viaCall(client: FluenceClient): Promise<string[][]> {
|
||||
export async function viaCall(): Promise<string[][]> {
|
||||
const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay;
|
||||
|
||||
registerServiceFunction(client, "cid", "id", (args: any[], _) => {
|
||||
return args[0]
|
||||
})
|
||||
registerCustomId({
|
||||
id: (args0) => {
|
||||
return args0;
|
||||
},
|
||||
});
|
||||
|
||||
let res = await viaArr(client, stage[3].peerId, [stage[2].peerId, stage[1].peerId])
|
||||
let res2 = await viaOpt(client, client.relayPeerId!, stage[3].peerId, stage[2].peerId)
|
||||
let res3 = await viaOpt(client, client.relayPeerId!, stage[3].peerId, stage[2].peerId || null)
|
||||
let res4 = await viaStream(client, stage[3].peerId, [stage[2].peerId, stage[1].peerId])
|
||||
let res = await viaArr(krasnodar[3].peerId, [krasnodar[2].peerId, krasnodar[1].peerId]);
|
||||
let res2 = await viaOpt(relayPeerId, krasnodar[3].peerId, krasnodar[2].peerId);
|
||||
let res3 = await viaOpt(relayPeerId, krasnodar[3].peerId, krasnodar[2].peerId || null);
|
||||
let res4 = await viaStream(krasnodar[3].peerId, [krasnodar[2].peerId, krasnodar[1].peerId]);
|
||||
|
||||
return [res.external_addresses, res2.external_addresses, res3.external_addresses, res4.external_addresses]
|
||||
return [res.external_addresses, res2.external_addresses, res3.external_addresses, res4.external_addresses];
|
||||
}
|
||||
|
28
src/index.ts
28
src/index.ts
@ -1,30 +1,32 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
import {createClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {krasnodar} from "@fluencelabs/fluence-network-environment";
|
||||
import {helloWorld} from "./compiled/examples/helloWorld";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { krasnodar } from '@fluencelabs/fluence-network-environment';
|
||||
import { helloWorld, registerStringExtra } from './compiled/examples/helloWorld';
|
||||
|
||||
const main = async () => {
|
||||
// each compiled aqua function require a connected client
|
||||
const client = await createClient(krasnodar[0]);
|
||||
await FluencePeer.default.init({ connectTo: krasnodar[0] });
|
||||
|
||||
// example to how register a local service
|
||||
// it could be used in aqua code as follows
|
||||
// service StringExtra("service-id"):
|
||||
// addNameToHello: string -> string
|
||||
// see more in helloWorld.aqua
|
||||
registerServiceFunction(client, "service-id", "addNameToHello", (args: any[], _) => {
|
||||
return `Hello, ${args[0]}!`
|
||||
})
|
||||
registerStringExtra({
|
||||
addNameToHello: (arg0) => {
|
||||
return `Hello, ${arg0}!`;
|
||||
},
|
||||
});
|
||||
|
||||
// call an aqua function thet presented in ../aqua/helloWorld.aqua
|
||||
const result = await helloWorld(client, "NAME");
|
||||
console.log(result)
|
||||
const result = await helloWorld('NAME');
|
||||
console.log(result);
|
||||
|
||||
process.exit(0)
|
||||
process.exit(0);
|
||||
};
|
||||
|
||||
main().catch((err) => {
|
||||
console.log(err)
|
||||
process.exit(1)
|
||||
})
|
||||
console.log(err);
|
||||
process.exit(1);
|
||||
});
|
||||
|
@ -1,24 +1,25 @@
|
||||
import {findSubscribers, getNeighbours, initTopicAndSubscribe} from "@fluencelabs/aqua-dht-ts";
|
||||
import {createClient} from "@fluencelabs/fluence";
|
||||
import {krasnodar} from "@fluencelabs/fluence-network-environment";
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { krasnodar } from '@fluencelabs/fluence-network-environment';
|
||||
import { getNeighbours, initTopicAndSubscribe, findSubscribers } from './compiled/dht/dht-example';
|
||||
|
||||
const main = async () => {
|
||||
const client = await createClient(krasnodar[0]);
|
||||
const peer = krasnodar[0].peerId
|
||||
const nodes = await getNeighbours(client, peer, "random")
|
||||
console.log(nodes)
|
||||
await FluencePeer.default.init({ connectTo: krasnodar[0] });
|
||||
const relayPeerId = krasnodar[0].peerId;
|
||||
|
||||
const topic = "random"
|
||||
await initTopicAndSubscribe(client, peer, topic, "random value", null, null)
|
||||
const nodes = await getNeighbours(relayPeerId, 'random');
|
||||
console.log(nodes);
|
||||
|
||||
const result = await findSubscribers(client, peer, topic)
|
||||
const topic = 'random';
|
||||
await initTopicAndSubscribe(relayPeerId, topic, 'random value', null, null);
|
||||
|
||||
console.log(result)
|
||||
const result = await findSubscribers(relayPeerId, topic);
|
||||
|
||||
process.exit(0)
|
||||
}
|
||||
console.log(result);
|
||||
|
||||
process.exit(0);
|
||||
};
|
||||
|
||||
main().catch((err) => {
|
||||
console.log(err)
|
||||
process.exit(1)
|
||||
})
|
||||
console.log(err);
|
||||
process.exit(1);
|
||||
});
|
||||
|
@ -1,239 +1,233 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
import {createClient, registerServiceFunction, setLogLevel} from "@fluencelabs/fluence";
|
||||
import {krasnodar, testNet, stage} from "@fluencelabs/fluence-network-environment";
|
||||
import {callArrowCall} from "./examples/callArrowCall";
|
||||
import {dataAliasCall} from "./examples/dataAliasCall";
|
||||
import {onCall} from "./examples/onCall";
|
||||
import {funcCall} from "./examples/funcCall";
|
||||
import {helloWorldCall} from "./examples/helloWorldCall";
|
||||
import {foldCall} from "./examples/foldCall";
|
||||
import {ifCall} from "./examples/if";
|
||||
import {parCall} from "./examples/parCall";
|
||||
import {complexCall} from "./examples/complex";
|
||||
import {constantsCall} from "./examples/constantsCall";
|
||||
import {streamCall} from "./examples/streamCall";
|
||||
import {topologyCall} from "./examples/topologyCall";
|
||||
import {foldJoinCall} from "./examples/foldJoinCall";
|
||||
import {returnNull, returnOptionalCall, useOptionalCall} from "./examples/useOptionalCall";
|
||||
import {viaCall} from "./examples/viaCall";
|
||||
import {nestedFuncsCall} from "./examples/nestedFuncsCall";
|
||||
import {assignmentCall} from "./examples/assignment";
|
||||
import {tryCatchCall} from "./examples/tryCatchCall";
|
||||
import {tryOtherwiseCall} from "./examples/tryOtherwiseCall";
|
||||
import {coCall} from "./examples/coCall";
|
||||
import {passArgsCall} from "./examples/passArgsCall";
|
||||
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";
|
||||
import {declareCall} from "./examples/declareCall";
|
||||
import {subImportCall} from "./examples/subImportUsageCall";
|
||||
import {import2Call} from "./examples/import2Call";
|
||||
let deepEqual = require('deep-equal')
|
||||
import { FluencePeer } from '@fluencelabs/fluence';
|
||||
import { krasnodar, testNet } from '@fluencelabs/fluence-network-environment';
|
||||
import { registerPrintln } from './compiled/examples/println';
|
||||
import { callArrowCall } from './examples/callArrowCall';
|
||||
import { dataAliasCall } from './examples/dataAliasCall';
|
||||
import { onCall } from './examples/onCall';
|
||||
import { funcCall } from './examples/funcCall';
|
||||
import { helloWorldCall } from './examples/helloWorldCall';
|
||||
import { foldCall } from './examples/foldCall';
|
||||
import { ifCall } from './examples/if';
|
||||
import { parCall } from './examples/parCall';
|
||||
import { complexCall } from './examples/complex';
|
||||
import { constantsCall } from './examples/constantsCall';
|
||||
import { streamCall } from './examples/streamCall';
|
||||
import { topologyCall } from './examples/topologyCall';
|
||||
import { foldJoinCall } from './examples/foldJoinCall';
|
||||
import { registerHandlers, returnNull, returnOptionalCall, useOptionalCall } from './examples/useOptionalCall';
|
||||
import { viaCall } from './examples/viaCall';
|
||||
import { nestedFuncsCall } from './examples/nestedFuncsCall';
|
||||
import { assignmentCall } from './examples/assignment';
|
||||
import { tryCatchCall } from './examples/tryCatchCall';
|
||||
import { tryOtherwiseCall } from './examples/tryOtherwiseCall';
|
||||
import { coCall } from './examples/coCall';
|
||||
import { passArgsCall } from './examples/passArgsCall';
|
||||
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';
|
||||
import { declareCall } from './examples/declareCall';
|
||||
let deepEqual = require('deep-equal');
|
||||
|
||||
function checkCall(name: string, actual: any, expected: any, callBackOnError: () => void) {
|
||||
if (!deepEqual(expected, actual)) {
|
||||
console.error(`${name} call has the wrong result`)
|
||||
console.error("actual: ")
|
||||
console.dir(actual)
|
||||
console.error("expected: ")
|
||||
console.dir(expected)
|
||||
callBackOnError()
|
||||
}
|
||||
console.log('-- checking ' + name + ' --');
|
||||
if (!deepEqual(expected, actual)) {
|
||||
console.error(`${name} call has the wrong result`);
|
||||
console.error('actual: ');
|
||||
console.dir(actual);
|
||||
console.error('expected: ');
|
||||
console.dir(expected);
|
||||
callBackOnError();
|
||||
}
|
||||
}
|
||||
|
||||
function checkCallBy(name: string, actual: any, by: (res: any) => boolean, callBackOnError: () => void) {
|
||||
if (!by(actual)) {
|
||||
console.error(`${name} call has the wrong result`)
|
||||
console.error("actual: " + actual)
|
||||
callBackOnError()
|
||||
}
|
||||
console.log('-- checking ' + name + ' --');
|
||||
if (!by(actual)) {
|
||||
console.error(`${name} call has the wrong result`);
|
||||
console.error('actual: ' + actual);
|
||||
callBackOnError();
|
||||
}
|
||||
}
|
||||
|
||||
const main = async () => {
|
||||
// setLogLevel("trace")
|
||||
const client = await createClient(stage[0]);
|
||||
const client2 = await createClient(stage[1]);
|
||||
// setLogLevel("trace")
|
||||
|
||||
// this could be called from `println.aqua`
|
||||
registerServiceFunction(client, "println-service-id", "print", (args: any[], _) => {
|
||||
console.log("println: " + args[0])
|
||||
return {}
|
||||
})
|
||||
await FluencePeer.default.init({ connectTo: krasnodar[0] });
|
||||
const selfPeerId = FluencePeer.default.connectionInfo.selfPeerId;
|
||||
|
||||
// these is only list of calls. Take a look into functions to see what's going on
|
||||
const peer2 = new FluencePeer();
|
||||
await peer2.init({ connectTo: krasnodar[1] });
|
||||
|
||||
// these calls return void, so they could be executed at any time,
|
||||
// because promise waits only a fact that particle was sent
|
||||
// this could be called from `println.aqua`
|
||||
registerPrintln({
|
||||
print: (arg0) => {
|
||||
console.log('println: ' + arg0);
|
||||
},
|
||||
});
|
||||
|
||||
// callArrow.aqua
|
||||
let callArrowResult = await callArrowCall(client)
|
||||
// these is only list of calls. Take a look into functions to see what's going on
|
||||
|
||||
// fold.aqua
|
||||
let foldCallResult = await foldCall(client)
|
||||
// these calls return void, so they could be executed at any time,
|
||||
// because promise waits only a fact that particle was sent
|
||||
|
||||
//if.aqua
|
||||
await ifCall(client)
|
||||
let success = true;
|
||||
let cb: () => void = () => {
|
||||
success = false;
|
||||
};
|
||||
|
||||
// par.aqua
|
||||
let parCallResult = await parCall(client)
|
||||
// callArrow.aqua
|
||||
let callArrowResult = await callArrowCall();
|
||||
checkCall('callArrow', callArrowResult, 'Hello, callArrow call!', cb);
|
||||
|
||||
// these calls waiting for a result, so it will be called sequentially
|
||||
// helloWorld.aqua
|
||||
let helloWorldResult = await helloWorldCall(client)
|
||||
// fold.aqua
|
||||
let foldCallResult = await foldCall();
|
||||
checkCall('foldCall', foldCallResult, ['/ip4/164.90.171.139/tcp/7770', '/ip4/164.90.171.139/tcp/9990/ws'], cb);
|
||||
|
||||
// func.aqua
|
||||
let funcCallResult = await funcCall(client)
|
||||
//if.aqua
|
||||
await ifCall();
|
||||
|
||||
// on.aqua
|
||||
let onCallResult = await onCall(client)
|
||||
// par.aqua
|
||||
let parCallResult = await parCall();
|
||||
checkCall('parArrow', parCallResult, 'hello', cb);
|
||||
|
||||
// dataAlias.aqua
|
||||
let dataAliasResult = await dataAliasCall(client)
|
||||
// these calls waiting for a result, so it will be called sequentially
|
||||
// helloWorld.aqua
|
||||
let helloWorldResult = await helloWorldCall();
|
||||
checkCall('helloWorldCall', helloWorldResult, 'Hello, NAME!', cb);
|
||||
|
||||
// complex.aqua
|
||||
let complexCallResult = await complexCall(client)
|
||||
// func.aqua
|
||||
let funcCallResult = await funcCall();
|
||||
checkCall('funcCall', funcCallResult, 'some str', cb);
|
||||
|
||||
// constants.aqua
|
||||
let constantCallResult = await constantsCall(client)
|
||||
// on.aqua
|
||||
let onCallResult = await onCall();
|
||||
checkCall('onCall', onCallResult, ['/ip4/164.90.171.139/tcp/7770', '/ip4/164.90.171.139/tcp/9990/ws'], cb);
|
||||
|
||||
// stream.aqua
|
||||
let streamResult = await streamCall(client)
|
||||
// dataAlias.aqua
|
||||
let dataAliasResult = await dataAliasCall();
|
||||
checkCall('dataAliasCall', dataAliasResult, 'peer id str', cb);
|
||||
|
||||
// topology.aqua
|
||||
let topologyResult = await topologyCall(client, client2)
|
||||
// complex.aqua
|
||||
let complexCallResult = await complexCall();
|
||||
checkCall(
|
||||
'complexCall',
|
||||
complexCallResult,
|
||||
['some str', '3', '1', '4', '1', '1', '3', '2', '4', '2', '2', selfPeerId],
|
||||
cb,
|
||||
);
|
||||
|
||||
// foldJoin.aqua
|
||||
let foldJoinResult = await foldJoinCall(client)
|
||||
// constants.aqua
|
||||
let constantCallResult = await constantsCall();
|
||||
checkCall('constantCall', constantCallResult, ['1', 'ab'], cb);
|
||||
|
||||
// option.aqua
|
||||
let optionResult = await useOptionalCall(client)
|
||||
let optionalResult = await returnOptionalCall(client)
|
||||
let noneResult = await returnNull(client)
|
||||
// stream.aqua
|
||||
let streamResult = await streamCall();
|
||||
checkCall('streamCall', streamResult, ['first updated', 'second updated', 'third updated', 'fourth updated'], cb);
|
||||
|
||||
// via.aqua
|
||||
let viaResult = await viaCall(client)
|
||||
// topology.aqua
|
||||
let topologyResult = await topologyCall(peer2);
|
||||
checkCall('topologyCall', topologyResult, 'finish', cb);
|
||||
|
||||
// nestedFuncs.aqua
|
||||
let nestedFuncsResult = await nestedFuncsCall(client)
|
||||
// foldJoin.aqua
|
||||
let foldJoinResult = await foldJoinCall();
|
||||
checkCallBy('foldJoinCall', foldJoinResult, (res) => res.length == 3, cb);
|
||||
|
||||
// assignment.aqua
|
||||
let assignmentResult = await assignmentCall(client)
|
||||
// option.aqua
|
||||
registerHandlers();
|
||||
let optionResult = await useOptionalCall();
|
||||
let optionalResult = await returnOptionalCall();
|
||||
let noneResult = await returnNull();
|
||||
checkCall('useOptional', optionResult, 'hello', cb);
|
||||
checkCall('returnOptional', optionalResult, 'optional', cb);
|
||||
checkCall('returnNone', noneResult, null, cb);
|
||||
|
||||
// tryOtherwise.aqua
|
||||
let tryOtherwiseResult = await tryOtherwiseCall(client)
|
||||
// via.aqua
|
||||
let viaResult = await viaCall();
|
||||
checkCallBy('via', viaResult, (res) => res.every((val, i, arr) => deepEqual(val, arr[0])), cb);
|
||||
|
||||
// tryCatch.aqua
|
||||
let tryCatchResult = await tryCatchCall(client)
|
||||
// nestedFuncs.aqua
|
||||
let nestedFuncsResult = await nestedFuncsCall();
|
||||
checkCall('nestedFuncsCall', nestedFuncsResult, 'some-str', cb);
|
||||
|
||||
// coCall.aqua
|
||||
let coCallResult = await coCall(client)
|
||||
// assignment.aqua
|
||||
let assignmentResult = await assignmentCall();
|
||||
checkCall('assignmentCall', assignmentResult, ['abc', 'hello'], cb);
|
||||
|
||||
// passArgsCall.aqua
|
||||
let passArgsResult = await passArgsCall(client)
|
||||
// tryOtherwise.aqua
|
||||
let tryOtherwiseResult = await tryOtherwiseCall();
|
||||
checkCall('tryOtherwiseCall', tryOtherwiseResult, 'error', cb);
|
||||
|
||||
// streamArgs.aqua
|
||||
let streamArgsResult = await streamArgsCall(client)
|
||||
// tryCatch.aqua
|
||||
let tryCatchResult = await tryCatchCall();
|
||||
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,
|
||||
);
|
||||
|
||||
// streamResults.aqua
|
||||
let streamResultsResult = await streamResultsCall(client)
|
||||
// coCall.aqua
|
||||
let coCallResult = await coCall();
|
||||
checkCall('coCall', coCallResult, ['/ip4/164.90.171.139/tcp/7770', '/ip4/164.90.171.139/tcp/9990/ws'], cb);
|
||||
|
||||
// pushToStream.aqua
|
||||
let pushToStreamResult = await pushToStreamCall(client)
|
||||
// passArgsCall.aqua
|
||||
let passArgsResult = await passArgsCall();
|
||||
checkCall('passArgsCall', passArgsResult, 'client-utilsid', cb);
|
||||
|
||||
// literalCall.aqua
|
||||
let literalCallResult = await literalCall(client)
|
||||
// streamArgs.aqua
|
||||
let streamArgsResult = await streamArgsCall();
|
||||
checkCall('streamArgsCall', streamArgsResult, [['peer_id', 'peer_id']], cb);
|
||||
|
||||
// multiReturn.aqua
|
||||
let multiReturnResult = await multiReturnCall(client)
|
||||
// streamResults.aqua
|
||||
let streamResultsResult = await streamResultsCall();
|
||||
checkCall('streamResultsCall', streamResultsResult, ['new_name', 'new_name', 'new_name'], cb);
|
||||
|
||||
// declare.aqua
|
||||
let declareResult = await declareCall(client)
|
||||
// pushToStream.aqua
|
||||
let pushToStreamResult = await pushToStreamCall();
|
||||
checkCall('pushToStreamCall', pushToStreamResult, ['hello', 'get_string'], cb);
|
||||
|
||||
// subImport.aqua and subImportUsage.aqua
|
||||
let subImportResult = await subImportCall(client)
|
||||
// literalCall.aqua
|
||||
let literalCallResult = await literalCall();
|
||||
checkCall('literalCall', literalCallResult, 'some literal', cb);
|
||||
|
||||
// import2.aqua, export2.aqua, OneMore.aqua
|
||||
let import2Result = await import2Call(client)
|
||||
// multiReturn.aqua
|
||||
let multiReturnResult = await multiReturnCall();
|
||||
checkCall(
|
||||
'multiReturnResult',
|
||||
multiReturnResult,
|
||||
[['some-str', 'random-str', 'some-str'], 5, 'some-str', [1, 2], null, 10],
|
||||
cb,
|
||||
);
|
||||
|
||||
await client.disconnect();
|
||||
// declare.aqua
|
||||
let declareResult = await declareCall();
|
||||
checkCall(
|
||||
'declareResult',
|
||||
declareResult,
|
||||
'small_foodeclare all barsmall_fooexport_constdeclare_constdeclare_const2',
|
||||
cb,
|
||||
);
|
||||
|
||||
let success = true;
|
||||
let cb: () => void = () => {
|
||||
success = false;
|
||||
}
|
||||
|
||||
checkCall("callArrow", callArrowResult, "Hello, callArrow call!", cb)
|
||||
|
||||
checkCall("foldCall", foldCallResult, ['/ip4/134.209.186.43/tcp/7001', '/ip4/134.209.186.43/tcp/9001/ws'], cb)
|
||||
|
||||
checkCall("onCall", onCallResult, ['/ip4/134.209.186.43/tcp/7001', '/ip4/134.209.186.43/tcp/9001/ws'], cb)
|
||||
|
||||
checkCall("parArrow", parCallResult, "hello", cb)
|
||||
|
||||
checkCall("helloWorldCall", helloWorldResult, "Hello, NAME!", cb)
|
||||
|
||||
checkCall("funcCall", funcCallResult, "some str", cb)
|
||||
|
||||
checkCall("dataAliasCall", dataAliasResult, "peer id str", cb)
|
||||
|
||||
checkCall("complexCall", complexCallResult, ["some str", "3", "1", "4", "1", "1", "3", "2", "4", "2", "2", client.selfPeerId], cb)
|
||||
|
||||
checkCall("constantCall", constantCallResult, ['1', 'ab'], cb)
|
||||
|
||||
checkCall("streamCall", streamResult, ["first updated", "second updated", "third updated", "fourth updated"], cb)
|
||||
|
||||
checkCall("topologyCall", topologyResult, "finish", cb)
|
||||
|
||||
checkCallBy("foldJoinCall", foldJoinResult, (res) => res.length == 3, cb)
|
||||
|
||||
checkCall("useOptional", optionResult, "hello", cb)
|
||||
checkCall("returnOptional", optionalResult, "optional", cb)
|
||||
checkCall("returnNone", noneResult, null, cb)
|
||||
|
||||
checkCallBy("via", viaResult, (res) => res.every( (val, i, arr) => deepEqual(val, arr[0]) ), cb)
|
||||
|
||||
checkCall("nestedFuncsCall", nestedFuncsResult, "some-str", cb)
|
||||
|
||||
checkCall("assignmentCall", assignmentResult, ["abc", "hello"], cb)
|
||||
|
||||
checkCall("tryOtherwiseCall", tryOtherwiseResult, "error", cb)
|
||||
|
||||
checkCall("coCall", coCallResult, [ '/ip4/134.209.186.43/tcp/7001', '/ip4/134.209.186.43/tcp/9001/ws' ], cb)
|
||||
|
||||
checkCall("passArgsCall", passArgsResult, "client-utilsid", cb)
|
||||
|
||||
checkCall("streamArgsCall", streamArgsResult, [["peer_id", "peer_id"]], cb)
|
||||
|
||||
checkCall("streamResultsCall", streamResultsResult, ["new_name", "new_name", "new_name"], cb)
|
||||
|
||||
checkCall("pushToStreamCall", pushToStreamResult, ["hello", "get_string"], cb)
|
||||
|
||||
checkCall("literalCall", literalCallResult, "some literal", cb)
|
||||
|
||||
checkCall("multiReturnResult", multiReturnResult, [ [ 'some-str', 'random-str', 'some-str' ], 5, 'some-str', [ 1, 2 ], null, 10], cb)
|
||||
|
||||
checkCall("declareResult", declareResult, 'small_foodeclare all barsmall_fooexport_constdeclare_constdeclare_const2', cb)
|
||||
|
||||
checkCall("subImportResult", subImportResult, { one: "random_string", two: 42 }, cb)
|
||||
|
||||
checkCall("import2Result", import2Result, { first: 'I am MyFooBar foo', second: [ 'I am MyFooBar foo', ' I am MyFooBar bar' ] }, cb)
|
||||
|
||||
checkCallBy("tryCatchCall", tryCatchResult, (res) => {
|
||||
return (res[0] as string).includes("Error: Service with id 'unex' not found") && res[1] === '/ip4/134.209.186.43/tcp/7001'
|
||||
}, cb)
|
||||
|
||||
if (success) {
|
||||
process.exit(0)
|
||||
} else {
|
||||
process.exit(1)
|
||||
}
|
||||
await FluencePeer.default.uninit();
|
||||
await peer2.uninit();
|
||||
|
||||
if (success) {
|
||||
process.exit(0);
|
||||
} else {
|
||||
process.exit(1);
|
||||
}
|
||||
};
|
||||
|
||||
main().catch((err) => {
|
||||
console.log(err)
|
||||
process.exit(1)
|
||||
})
|
||||
console.log(err);
|
||||
process.exit(1);
|
||||
});
|
||||
|
@ -13,7 +13,8 @@
|
||||
"moduleResolution": "node",
|
||||
"strict": true,
|
||||
"esModuleInterop": true,
|
||||
"noImplicitAny": false
|
||||
"noImplicitAny": false,
|
||||
"strictNullChecks": false
|
||||
},
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
|
Loading…
x
Reference in New Issue
Block a user