mirror of
https://github.com/wisplite/tether-ts.git
synced 2026-05-01 06:22:41 -05:00
do all the boring ts stuff to make this actually work
This commit is contained in:
@@ -0,0 +1 @@
|
||||
node_modules
|
||||
Vendored
+9
@@ -0,0 +1,9 @@
|
||||
export declare class TetherClient {
|
||||
private ws;
|
||||
private subscribedQueries;
|
||||
connect: (url: string) => void;
|
||||
disconnect: () => void;
|
||||
subscribe: (query: string, callback: (data: any) => void) => void;
|
||||
unsubscribe: (query: string) => void;
|
||||
sendMutation: (mutationName: string, params: any) => void;
|
||||
}
|
||||
Vendored
+49
@@ -0,0 +1,49 @@
|
||||
export class TetherClient {
|
||||
ws = null;
|
||||
subscribedQueries = new Map();
|
||||
connect = (url) => {
|
||||
this.ws = new WebSocket(url);
|
||||
this.ws.onopen = () => {
|
||||
console.log('Connected to Tether');
|
||||
};
|
||||
this.ws.onmessage = (event) => {
|
||||
const data = JSON.parse(event.data);
|
||||
if (data.type === 'query') {
|
||||
this.subscribedQueries.forEach((callback, query) => {
|
||||
if (data.query === query) {
|
||||
callback(data.data);
|
||||
}
|
||||
});
|
||||
}
|
||||
else if (data.type === 'error') {
|
||||
console.error(data.error);
|
||||
}
|
||||
};
|
||||
this.ws.onclose = () => {
|
||||
console.log('Disconnected from Tether');
|
||||
};
|
||||
};
|
||||
disconnect = () => {
|
||||
if (!this.ws) {
|
||||
throw new Error('Not connected to Tether');
|
||||
}
|
||||
this.ws.close();
|
||||
this.ws = null;
|
||||
};
|
||||
subscribe = (query, callback) => {
|
||||
this.subscribedQueries.set(query, callback);
|
||||
};
|
||||
unsubscribe = (query) => {
|
||||
this.subscribedQueries.delete(query);
|
||||
};
|
||||
sendMutation = (mutationName, params) => {
|
||||
if (!this.ws) {
|
||||
throw new Error('Not connected to Tether');
|
||||
}
|
||||
this.ws.send(JSON.stringify({
|
||||
type: 'mutation',
|
||||
name: mutationName,
|
||||
payload: params,
|
||||
}));
|
||||
};
|
||||
}
|
||||
Generated
+30
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"name": "tether-ts",
|
||||
"version": "1.0.3",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "tether-ts",
|
||||
"version": "1.0.3",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"typescript": "^6.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/typescript": {
|
||||
"version": "6.0.2",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz",
|
||||
"integrity": "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.17"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+9
-3
@@ -1,12 +1,18 @@
|
||||
{
|
||||
"name": "tether-ts",
|
||||
"version": "1.0.2",
|
||||
"version": "1.0.3",
|
||||
"description": "TypeScript client for Tether",
|
||||
"license": "ISC",
|
||||
"author": "wisplite",
|
||||
"type": "module",
|
||||
"main": "index.ts",
|
||||
"main": "dist/index.js",
|
||||
"types": "dist/index.d.ts",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"build": "tsc",
|
||||
"watch": "tsc --watch"
|
||||
},
|
||||
"devDependencies": {
|
||||
"typescript": "^6.0.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "ES2022",
|
||||
"module": "NodeNext",
|
||||
"moduleResolution": "NodeNext",
|
||||
"rootDir": "./src",
|
||||
"outDir": "./dist",
|
||||
"declaration": true,
|
||||
"strict": true,
|
||||
"esModuleInterop": true,
|
||||
"skipLibCheck": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"include": ["src/**/*"],
|
||||
}
|
||||
Reference in New Issue
Block a user