Skip to content

Commit

Permalink
Update API Definition.
Browse files Browse the repository at this point in the history
  • Loading branch information
LucaCode committed Apr 20, 2023
1 parent 568d53a commit ea2f740
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 24 deletions.
4 changes: 2 additions & 2 deletions src/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ import App from './app';
import reportWebVitals from './reportWebVitals';
import {ClientContext} from "./lib/hooks/useClient";
import {Client} from "zation-client";
import {APIDefinition} from "./lib/definitions/apiDefinition";
import {PanelAPIDefinition} from "./lib/definitions/apiDefinition";
import {DEV, SERVER_PATH} from "./lib/utils/constants";
import {ConnectorContext} from "./lib/hooks/useConnector";
import Connector from "./lib/core/connector";

ReactDOM.render(
<React.StrictMode>
<ClientContext.Provider value={new Client<APIDefinition>(!DEV ? {
<ClientContext.Provider value={new Client<PanelAPIDefinition>(!DEV ? {
hostname: window.location.hostname,
port: parseInt(window.location.port),
path: SERVER_PATH,
Expand Down
6 changes: 3 additions & 3 deletions src/lib/core/connector.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Copyright(c) Ing. Luca Gian Scaringella

import ClusterSummary from "../definitions/clusterSummary";
import {Channel, Client} from "zation-client";
import {APIDefinition, PanelChannelPublishes} from "../definitions/apiDefinition";
import {PanelAPIDefinition, PanelChannelPublishes} from "../definitions/apiDefinition";
import EventEmitter from "emitix";
import {Writable} from "../utils/typeUtils";
import LogMessage from "../definitions/logMessage";
Expand Down Expand Up @@ -90,7 +90,7 @@ export default class Connector extends EventEmitter.Protected<{
readonly logs: LogMessage[] = [];
public maxLogMessagesCount: number = 40;

private client?: Client<APIDefinition>;
private client?: Client<PanelAPIDefinition>;
private panelCh: Channel<void,PanelChannelPublishes> | null = null;

private latencyChecker: LatencyChecker = new LatencyChecker();
Expand All @@ -111,7 +111,7 @@ export default class Connector extends EventEmitter.Protected<{
}
}

async connect(client: Client<APIDefinition>) {
async connect(client: Client<PanelAPIDefinition>) {
this.client = client;
this.latencyChecker.client = client;
const ch = client.channel('#panel') as Channel<void,PanelChannelPublishes>;
Expand Down
4 changes: 2 additions & 2 deletions src/lib/core/heartbeatTicker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Copyright(c) Ing. Luca Gian Scaringella
*/

import {Client} from "zation-client";
import {APIDefinition} from "../definitions/apiDefinition";
import {PanelAPIDefinition} from "../definitions/apiDefinition";

export default class HeartbeatTicker {

Expand All @@ -14,7 +14,7 @@ export default class HeartbeatTicker {

private interval: NodeJS.Timer | null = null;

start(client: Client<APIDefinition>,intervalMs = 4000) {
start(client: Client<PanelAPIDefinition>, intervalMs = 4000) {
HeartbeatTicker.instance.stop();
this.interval = setInterval(async () => {
try {
Expand Down
18 changes: 4 additions & 14 deletions src/lib/definitions/apiDefinition.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ GitHub: LucaCode
Copyright(c) Ing. Luca Gian Scaringella
*/

import {CustomAPIDefinition} from "zation-client";
import {APIDefinition, ChannelDef, ControllerDef, ReceiverDef} from "zation-client";
import {DynamicServerInformation, ServerInformation} from "./serverInformation";
import LogMessage from "./logMessage";

Expand All @@ -14,17 +14,7 @@ export interface PanelChannelPublishes {
log: LogMessage
}

export type APIDefinition = CustomAPIDefinition<{
controllers: {
"#panel/auth": [{username: any,password: any},void]
}
receivers: {
'#panel': boolean | undefined
},
channels: {
'#panel': {
publishes: PanelChannelPublishes,
member: void
}
}
export type PanelAPIDefinition = APIDefinition<{
'#panel/auth': ControllerDef<{username: any,password: any},void>,
'#panel': ReceiverDef<boolean | undefined> & ChannelDef<PanelChannelPublishes,void>
}>;
6 changes: 3 additions & 3 deletions src/lib/hooks/useClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ Copyright(c) Ing. Luca Gian Scaringella

import React from "react";
import {Client} from "zation-client";
import {APIDefinition} from "../definitions/apiDefinition";
import {PanelAPIDefinition} from "../definitions/apiDefinition";

export const ClientContext = React.createContext<Client<APIDefinition> | null>(null);
export const ClientContext = React.createContext<Client<PanelAPIDefinition> | null>(null);

export default function useClient(): Client<APIDefinition> {
export default function useClient(): Client<PanelAPIDefinition> {
const client = React.useContext(ClientContext);
if(!client) throw new Error("Client context is not available");
return client;
Expand Down

0 comments on commit ea2f740

Please sign in to comment.