autolevel.js

Automatically use the right abstract-leveldown module for your configuration
git clone git://git.finwo.net/lib/autolevel.js
Log | Files | Refs | README | LICENSE

commit 9f5490b6b0fb7b47bab612e88e63a3e7cc6de283
parent c8b82fc154c381be0f40c474c1c32be53a887429
Author: finwo <finwo@pm.me>
Date:   Wed,  3 Jun 2020 09:29:39 +0200

Removed unused code

Diffstat:
Msrc/adapter.js | 7-------
Dsrc/custom/wsrpc.js | 105-------------------------------------------------------------------------------
2 files changed, 0 insertions(+), 112 deletions(-)

diff --git a/src/adapter.js b/src/adapter.js @@ -45,13 +45,6 @@ let adapters = [ name : ['pg', 'postgres', 'postgresql'], backend : 'sqldown', dependencies: ['levelup', 'sqldown', 'knex', 'pg', 'pg-query-stream'] - // }, { - // name : ['wsrpc','wssrpc','ws-rpc','wss-rpc','rpc','rpcs'], - // backend : './custom/wsrpc', - // dependencies: ['levelup', 'cws', 'multilevel'], - // options : { - // direct: true - // } } ]; diff --git a/src/custom/wsrpc.js b/src/custom/wsrpc.js @@ -1,105 +0,0 @@ -const multilevel = require('multilevel'), - through = require('through'), - WS = require('cws'), - urlParse = require('url-parse'); - -const protomap = { - 'wsrpc' : 'ws', - 'wssrpc' : 'wss', - 'ws-rpc' : 'ws', - 'wss-rpc': 'wss', - 'rpc' : 'ws', - 'rpcs' : 'wss' -}; - -module.exports = function (location, options, callback) { - - // Setup constants - const parsedLocation = urlParse(location), - proto = protomap[parsedLocation.protocol.split(':').shift().toLowerCase()], - db = multilevel.client(), - rpcStream = db.createRpcStream(); - parsedLocation.protocol = proto + ':'; - - // Detect simple auth - let auth = false; - if (parsedLocation.auth) { - if (parsedLocation.username && parsedLocation.password) { - auth = { - user: parsedLocation.username, - pass: parsedLocation.password - }; - } else { - auth = parsedLocation.auth; - } - parsedLocation.auth = ''; - parsedLocation.username = ''; - parsedLocation.password = ''; - } - - // handle rpc output - let queue = []; - rpcStream.on('data', function(chunk) { - if (ws && ws.readyState === ws.OPEN) { - while(queue.length) - ws.send(queue.shift()); - ws.send(chunk); - } else { - queue.push(chunk); - } - }); - - - // Handles connect & auth - let ws = false; - function reconnect(cb) { - - // Destroy old stream - if (ws) { - if ('function' === ws.close ) ws.close(); - if ('function' === ws.destroy ) ws.destroy(); - if ('function' === ws.terminate) ws.terminate(); - ws = false; - } - - // New stream - ws = new WS(parsedLocation.toString(), { - perMessageDeflate: false - }); - - // Handle input messages - ws.on('message', function(chunk) { - rpcStream.write(chunk); - }); - - // Handle auth & callback - ws.on('open', function() { - if (auth) return db.auth(auth,cb); - if ('function' === typeof cb) cb(); - }); - - // Handle reconnect - ws.on('close', function() { - setTimeout(reconnect,10); - }); - - // Heartbeat - ws.isAlive = true; - ws.on('pong', function() { - ws.isAlive = true; - }); - setTimeout(function heartbeat() { - if (!ws.readyState) return setTimeout(heartbeat,100); - if (!ws.isAlive) return reconnect(); - ws.isAlive = false; - ws.ping(); - setTimeout(heartbeat,10000); - },100) - } - - // Initial connect - reconnect(function(err) { - if (err) return callback(err); - callback(null, db); - }); -};