{"_id":"@0xbeejs/requester","_rev":"1-4784644836e9e0d1db21cc46f64d2656","name":"@0xbeejs/requester","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"@0xbeejs/requester","version":"0.0.1","license":"MIT","_id":"@0xbeejs/requester@0.0.1","maintainers":[{"name":"189","email":"shangwenwang20@gmail.com"}],"dist":{"shasum":"d83d1b90907afe0bd8c466428653bc7110e0f229","tarball":"https://registry.npmjs.org/@0xbeejs/requester/-/requester-0.0.1.tgz","fileCount":6,"integrity":"sha512-Z7rOedRNmLgBdJDMJeuXnO7ZX95l0z9caZLoGxT+9xWhxkFrch66+G3am4RreeUEAF1oaFV/3ygGxFo0WnE+Vg==","signatures":[{"sig":"MEQCIGbAXzkKxBH2i+feW+Lt5ZkS3xZKVzH1KbdtBr0xUdX9AiAh5b0VWUURiPYcn0GtkjdeGwGYugGGsHeyMy0FYFHZUQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":169500},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"dd32ddd65c87da27d5534d491287b0bbe356e120","scripts":{"dev":"tsup --watch","lint":"eslint \"src/**/*.ts*\"","ping":"nodemon","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"_npmUser":{"name":"189","email":"shangwenwang20@gmail.com"},"_npmVersion":"10.8.2","description":"Promise based websocket client","directories":{},"sideEffects":false,"_nodeVersion":"20.18.1","dependencies":{"qs":"^6.11.2","websocket":"^1.0.34","node-fetch":"^3.3.2","cross-fetch":"^4.0.0","eventemitter3":"^5.0.0","@0xbeejs/errors":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^5.10.1","eslint":"^8.15.0","nodemon":"^2.0.19","ts-node":"^10.9.1","@types/qs":"^6.9.7","tsc-alias":"^1.7.0","typescript":"^4.5.3","tsconfig-paths":"^4.0.0","@types/websocket":"^1.0.5","@0xbeejs/tsconfig":"*","@0xbeejs/eslint-config":"*"},"_npmOperationalInternal":{"tmp":"tmp/requester_0.0.1_1734423942141_0.6269143983897074","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@0xbeejs/requester","description":"Promise based websocket client","version":"0.0.2","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","sideEffects":false,"license":"MIT","scripts":{"build":"tsup","dev":"tsup --watch","ping":"nodemon","lint":"eslint \"src/**/*.ts*\"","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist"},"devDependencies":{"eslint":"^8.15.0","@0xbeejs/eslint-config":"*","nodemon":"^2.0.19","ts-node":"^10.9.1","tsc-alias":"^1.7.0","tsconfig-paths":"^4.0.0","tsup":"^5.10.1","typescript":"^4.5.3","@0xbeejs/tsconfig":"*","@types/qs":"^6.9.7","@types/websocket":"^1.0.5"},"publishConfig":{"access":"public"},"dependencies":{"cross-fetch":"^4.0.0","eventemitter3":"^5.0.0","node-fetch":"^3.3.2","@0xbeejs/errors":"*","qs":"^6.11.2","websocket":"^1.0.34"},"_id":"@0xbeejs/requester@0.0.2","gitHead":"61ca75c58c938171b541f6b12fc4b4248d671722","_nodeVersion":"20.18.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-bxhtuLJk1Lq5cbwac5USHmV7OI5kpPAqmLEWASddThvzhPX8i7vbm3kmeE3F+GN8c8Y0iObFiUeCVYUC2d/CIQ==","shasum":"9965714b72c3efeb39e5e307ac3157859a67dba1","tarball":"https://registry.npmjs.org/@0xbeejs/requester/-/requester-0.0.2.tgz","fileCount":6,"unpackedSize":169497,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDXh0YcsrS4QmB0cXC8TsVS8/krpgizNYuIPF51DxShSwIhAL1NK8zY2bYGUzyanTFKAxIneAlvya2GUPSLQ5IktxxO"}]},"_npmUser":{"name":"189","email":"shangwenwang20@gmail.com"},"directories":{},"maintainers":[{"name":"189","email":"shangwenwang20@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/requester_0.0.2_1734428388056_0.9749833254364879"},"_hasShrinkwrap":false}},"time":{"created":"2024-12-17T08:25:42.081Z","modified":"2024-12-17T09:39:48.391Z","0.0.1":"2024-12-17T08:25:42.327Z","0.0.2":"2024-12-17T09:39:48.236Z"},"license":"MIT","description":"Promise based websocket client","maintainers":[{"name":"189","email":"shangwenwang20@gmail.com"}],"readme":"To communicate with a WebSocket service like an RPC call, avoiding the need to manually match requests and responses in callbacks\n\n## Install\n\n```\n$ npm install @0xbeejs/requester\n$ yarn add @0xbeejs/requester\n```\n\n## Usage\n\n```\nimport Requester from \"@0xbeejs/requester\"\n\nconst requeter = new Requester(\"ws://<YOUR_ENDPOINT>\")\n\ninterface ReconnectState {\n  reconnectAttempts: number;\n  requestQueue: number;\n  responseQueue: number;\n}\n\nconst pid = process.pid;\nconst requester = new Requester(`<endpoint>`, {\n    reconnect: {\n      auto: true,\n      delay: 1000,\n      onTimeout: true,\n    },\n  },\n);\n\nrequester.currentProvider.on('connect', () => {\n  console.log('Connection Established');\n});\n\nrequester.currentProvider.on('close', () => {\n  console.log('Connection Closed');\n});\n\nrequester.currentProvider.on('reconnect', (data: ReconnectState) => {\n  console.log(`Connection reconnect`);\n});\n\n\nasync function start() {\n    // Asynchronously send message through Websocket and asynchronously retrieve the result\n    // The library internally establishes the correspondence between requests and responses\n    const data = await requester.send({req: \"tx.detail\", arg: {txId: \"<TX_ID>\"}})\n    return data\n}\n\nstart()\n```\n","readmeFilename":"README.md"}