Compare commits
83 Commits
v0.0.1
...
v0.0.2-dev
Author | SHA1 | Date |
---|---|---|
semantic-release-bot | 1044ef8532 | |
Derrick Hammer | 64cef2cbf5 | |
Derrick Hammer | c29aaf0b3b | |
Derrick Hammer | 1738459cbb | |
Derrick Hammer | 5128b98f7b | |
Derrick Hammer | 2df4ab9db4 | |
Derrick Hammer | e00a3e3430 | |
Derrick Hammer | 72ad939adf | |
Derrick Hammer | 7fc87b391c | |
Derrick Hammer | 34e05c6839 | |
Derrick Hammer | ed738d15ed | |
Derrick Hammer | e8e28f7540 | |
Derrick Hammer | 8dd7f5ebf7 | |
Derrick Hammer | f9088b8f6e | |
Derrick Hammer | 8ebc41c839 | |
Derrick Hammer | 235cef400c | |
Derrick Hammer | c05becb270 | |
Derrick Hammer | b9a9a7e693 | |
Derrick Hammer | f6221c08a8 | |
Derrick Hammer | 9dc8f69e52 | |
Derrick Hammer | 5b1a269093 | |
Derrick Hammer | 3b59b03374 | |
Derrick Hammer | 576af28877 | |
Derrick Hammer | be24210720 | |
Derrick Hammer | 74ef712e9d | |
Derrick Hammer | 1f8e558d89 | |
Derrick Hammer | 3e7d5e53a1 | |
Derrick Hammer | bf68b28680 | |
Derrick Hammer | 8684fcde3c | |
Derrick Hammer | e80654de35 | |
Derrick Hammer | 80eb7151a9 | |
Derrick Hammer | f5c7daabbb | |
Derrick Hammer | c42cf65b8c | |
Derrick Hammer | ebaa1cac25 | |
Derrick Hammer | 0a6d56572b | |
Derrick Hammer | 1d61ec5e55 | |
Derrick Hammer | 71e41ae003 | |
Derrick Hammer | 09825ea3c7 | |
Derrick Hammer | b5b7c9e0fe | |
Derrick Hammer | 7dc18eb090 | |
Derrick Hammer | 26f1164815 | |
Derrick Hammer | 15a4ef2eac | |
Derrick Hammer | 1a844804ec | |
Derrick Hammer | e2f46d5bd2 | |
Derrick Hammer | 85447be885 | |
Derrick Hammer | e759d06faa | |
Derrick Hammer | acc3ea2cf1 | |
Derrick Hammer | 951a6f9554 | |
Derrick Hammer | cfceda9bf1 | |
Derrick Hammer | 62849f009b | |
Derrick Hammer | bddacc1a7a | |
Derrick Hammer | 1e3e8f35bc | |
Derrick Hammer | b3e6290a73 | |
Derrick Hammer | 498cbfbce5 | |
Derrick Hammer | d3ee633a5c | |
Derrick Hammer | 7f6bd96b33 | |
Derrick Hammer | 389e3d1ac4 | |
Derrick Hammer | 34c91c15d7 | |
Derrick Hammer | f2ed076a47 | |
Derrick Hammer | 9d04fa3933 | |
Derrick Hammer | ad2830cba6 | |
Derrick Hammer | f4cb988053 | |
Derrick Hammer | 7916f6e4d6 | |
Derrick Hammer | 7efa878f15 | |
Derrick Hammer | 1847eaaeac | |
Derrick Hammer | 5345135b02 | |
Derrick Hammer | 80fcb215b6 | |
Derrick Hammer | 91896daff1 | |
Derrick Hammer | 14f3770bf7 | |
Derrick Hammer | 663f565c8d | |
Derrick Hammer | f38c6f53cf | |
Derrick Hammer | 34d96e94f9 | |
Derrick Hammer | 91a37ac935 | |
Derrick Hammer | 8986d45e8e | |
Derrick Hammer | ee295839d0 | |
Derrick Hammer | 38a599ce55 | |
Derrick Hammer | c121879cbd | |
Derrick Hammer | 833bb751bc | |
Derrick Hammer | 07f90441d3 | |
Derrick Hammer | b2560e9b25 | |
Derrick Hammer | 22fc7e73e2 | |
Derrick Hammer | b4a7e2708f | |
Derrick Hammer | 97a4d8d170 |
|
@ -0,0 +1,13 @@
|
|||
name: Build/Publish
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
- develop-*
|
||||
|
||||
jobs:
|
||||
main:
|
||||
uses: lumeweb/github-node-deploy-workflow/.github/workflows/main.yml@master
|
||||
secrets: inherit
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"preset": [
|
||||
"@lumeweb/node-library-preset"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
## [0.0.2-develop.1](https://git.lumeweb.com/LumeWeb/kernel-rpc-client/compare/v0.0.1...v0.0.2-develop.1) (2023-07-05)
|
||||
|
||||
|
||||
### Reverts
|
||||
|
||||
* Revert "*Process the queue in reverse" ([f38c6f5](https://git.lumeweb.com/LumeWeb/kernel-rpc-client/commit/f38c6f53cfa68d3866d0614ea9490aef9f47bca7))
|
2
LICENSE
2
LICENSE
|
@ -1,6 +1,6 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2022 Lume Web
|
||||
Copyright (c) 2023 Hammer Technologies LLC
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"name": "@lumeweb/kernel-rpc-client",
|
||||
"version": "0.0.2-develop.1",
|
||||
"type": "module",
|
||||
"main": "lib/index.js",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "gitea@git.lumeweb.com:LumeWeb/kernel-rpc-client.git"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@lumeweb/node-library-preset": "^0.2.7",
|
||||
"presetter": "*"
|
||||
},
|
||||
"readme": "ERROR: No README data found!",
|
||||
"scripts": {
|
||||
"prepare": "presetter bootstrap",
|
||||
"build": "run build",
|
||||
"semantic-release": "semantic-release"
|
||||
},
|
||||
"dependencies": {
|
||||
"@lumeweb/interface-relay": "^0.0.2-develop.1",
|
||||
"@lumeweb/libkernel": "^0.1.0-develop.14",
|
||||
"@lumeweb/rpc-client": "^0.0.2-develop.4"
|
||||
},
|
||||
"files": [
|
||||
"lib"
|
||||
],
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,138 @@
|
|||
import { ErrTuple } from "@lumeweb/libkernel";
|
||||
import type {
|
||||
RPCRequest,
|
||||
RPCResponse,
|
||||
ClientRPCRequest,
|
||||
} from "@lumeweb/interface-relay";
|
||||
import { RpcQueryOptions } from "@lumeweb/rpc-client";
|
||||
import { Buffer } from "buffer";
|
||||
import { Client, factory } from "@lumeweb/libkernel/module";
|
||||
|
||||
const RPC_MODULE = "fAAKlPuoD2FgKq27nhNILSmf7nTYmI9mMmOfTujwXma-1g";
|
||||
|
||||
export class RpcNetwork extends Client {
|
||||
private _def: boolean;
|
||||
|
||||
constructor(module: string, def: boolean = true) {
|
||||
super(module);
|
||||
this._def = def;
|
||||
}
|
||||
|
||||
private _networkId: number = 0;
|
||||
|
||||
get networkId(): number {
|
||||
return this._networkId;
|
||||
}
|
||||
|
||||
get ready(): Promise<ErrTuple> {
|
||||
if (this._def) {
|
||||
this._networkId = 1;
|
||||
} else {
|
||||
Promise.resolve()
|
||||
.then(() => this.callModuleReturn(RPC_MODULE, "createNetwork"))
|
||||
.then((ret: ErrTuple) => (this._networkId = ret[0]));
|
||||
}
|
||||
|
||||
return this.callModuleReturn("ready", {
|
||||
network: this._networkId,
|
||||
});
|
||||
}
|
||||
|
||||
public simpleQuery({
|
||||
relay,
|
||||
query,
|
||||
options = {},
|
||||
}: {
|
||||
relay?: Buffer | string;
|
||||
query: ClientRPCRequest;
|
||||
options?: RpcQueryOptions;
|
||||
}): SimpleRpcQuery {
|
||||
return createSimpleRpcQuery({
|
||||
network: this,
|
||||
relay,
|
||||
query,
|
||||
options,
|
||||
}).run();
|
||||
}
|
||||
}
|
||||
|
||||
export abstract class RpcQueryBase extends Client {
|
||||
protected _promise?: Promise<any>;
|
||||
protected _network: RpcNetwork;
|
||||
protected _query: RPCRequest;
|
||||
protected _options: RpcQueryOptions;
|
||||
protected _queryType: string;
|
||||
|
||||
constructor(
|
||||
module: string,
|
||||
network: RpcNetwork,
|
||||
query: RPCRequest,
|
||||
options: RpcQueryOptions = {},
|
||||
queryType: string,
|
||||
) {
|
||||
super(module);
|
||||
this._network = network;
|
||||
this._query = query;
|
||||
this._options = options;
|
||||
this._queryType = queryType;
|
||||
}
|
||||
|
||||
get result(): Promise<RPCResponse> {
|
||||
return (this._promise as Promise<any>)
|
||||
.then((result: ErrTuple): RPCResponse => {
|
||||
return result[0];
|
||||
})
|
||||
.catch((error: Error) => {
|
||||
return { error: error.message };
|
||||
});
|
||||
}
|
||||
|
||||
public run(): this {
|
||||
this._promise = this.callModule(this._queryType, {
|
||||
query: this._query,
|
||||
options: this._options,
|
||||
network: this._network.networkId,
|
||||
});
|
||||
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
export class SimpleRpcQuery extends RpcQueryBase {
|
||||
protected _relay?: string | Buffer;
|
||||
|
||||
constructor(
|
||||
module: string,
|
||||
{
|
||||
network,
|
||||
relay,
|
||||
query,
|
||||
options,
|
||||
}: {
|
||||
network: RpcNetwork;
|
||||
relay?: string | Buffer;
|
||||
query: RPCRequest;
|
||||
options?: RpcQueryOptions;
|
||||
},
|
||||
) {
|
||||
super(module, network, query, options, "simpleQuery");
|
||||
this._relay = relay;
|
||||
}
|
||||
|
||||
public run(): this {
|
||||
this._promise = this.callModule(this._queryType, {
|
||||
relay: this._relay,
|
||||
query: this._query,
|
||||
options: this._options,
|
||||
network: this._network.networkId,
|
||||
});
|
||||
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
export const createClient = factory<RpcNetwork>(RpcNetwork, RPC_MODULE);
|
||||
const createSimpleRpcQuery = factory<SimpleRpcQuery>(
|
||||
SimpleRpcQuery,
|
||||
RPC_MODULE,
|
||||
);
|
Loading…
Reference in New Issue