aria2c
Version:
Aria2 RPC Library in Node.js
31 lines • 739 B
JavaScript
import { HTTPClient } from './http.js';
/**
* JSON-RPC
*/
export class JSONRPC extends HTTPClient {
constructor(options) {
super(Object.assign({
jsonrpc: '2.0',
method: 'post'
}, options));
}
send(payload) {
const { method, jsonrpc } = this;
if(Array.isArray(payload)){
payload = payload.map(x => {
x.jsonrpc = jsonrpc;
return x;
});
} else {
payload.jsonrpc = jsonrpc;
}
if(/^get$/i.test(method)) {
if(Array.isArray(payload))
payload = { params: payload };
const str = JSON.stringify(payload.params);
payload.params = Buffer.from(str).toString('base64');
return this.get(payload);
}
return this.post(payload);
}
}