config: add querystring parsing.
This commit is contained in:
parent
69fa80d353
commit
a143c78369
@ -105,7 +105,7 @@ more bitcoin magic).</small>
|
||||
var newaddr = document.getElementById('newaddr');
|
||||
var items = [];
|
||||
var scrollback = 0;
|
||||
var logger, node;
|
||||
var logger, node, options;
|
||||
|
||||
body.onmouseup = function() {
|
||||
floating.style.display = 'none';
|
||||
@ -257,32 +257,17 @@ more bitcoin magic).</small>
|
||||
});
|
||||
}
|
||||
|
||||
var query = (function() {
|
||||
var query = {};
|
||||
var search = (window.location.search + '').substring(1);
|
||||
var s = search.split('&');
|
||||
var i, parts;
|
||||
|
||||
for (i = 0; i < s.length; i++) {
|
||||
parts = s[i].split('=');
|
||||
if (parts[0])
|
||||
query[parts[0]] = parts[1];
|
||||
}
|
||||
|
||||
return query;
|
||||
})();
|
||||
|
||||
bcoin.set({
|
||||
network: query.network || 'segnet4',
|
||||
useWorkers: true
|
||||
options = bcoin.config({
|
||||
query: true,
|
||||
network: 'segnet4',
|
||||
useWorkers: true,
|
||||
coinCache: true,
|
||||
logger: logger
|
||||
});
|
||||
|
||||
node = new bcoin.fullnode({
|
||||
prune: query.prune === 'true' || query.prune === '1',
|
||||
logger: logger,
|
||||
db: query.db || 'leveldb',
|
||||
coinCache: true
|
||||
});
|
||||
bcoin.set(options);
|
||||
|
||||
node = new bcoin.fullnode(options);
|
||||
|
||||
node.on('error', function(err) {
|
||||
;
|
||||
|
||||
@ -194,6 +194,10 @@ Peer.prototype._init = function init() {
|
||||
case 'ECONNRESET':
|
||||
self.ignore();
|
||||
break;
|
||||
default:
|
||||
if (!self.connected)
|
||||
self.ignore();
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@ -44,10 +44,8 @@ config.alias = {
|
||||
*/
|
||||
|
||||
config.parse = function parse(options) {
|
||||
var env = {};
|
||||
var arg = {};
|
||||
var data = {};
|
||||
var conf, prefix, filename, dirname;
|
||||
var arg, conf, prefix, filename, dirname;
|
||||
|
||||
if (!options)
|
||||
options = {};
|
||||
@ -55,8 +53,8 @@ config.parse = function parse(options) {
|
||||
merge(data, options);
|
||||
|
||||
if (options.env) {
|
||||
env = config.parseEnv();
|
||||
merge(data, env);
|
||||
arg = config.parseEnv();
|
||||
merge(data, arg);
|
||||
}
|
||||
|
||||
if (options.arg) {
|
||||
@ -64,7 +62,12 @@ config.parse = function parse(options) {
|
||||
merge(data, arg);
|
||||
}
|
||||
|
||||
if (data.config) {
|
||||
if (options.query) {
|
||||
arg = config.parseQuery();
|
||||
merge(data, arg);
|
||||
}
|
||||
|
||||
if (data.config && !utils.isBrowser) {
|
||||
prefix = config.getPrefix(data);
|
||||
filename = data.config;
|
||||
|
||||
@ -272,7 +275,7 @@ config.parseConfig = function parseConfig(text, prefix, dirname) {
|
||||
|
||||
if (eq === -1) {
|
||||
key = line.trim();
|
||||
value = null;
|
||||
value = '';
|
||||
} else {
|
||||
key = line.substring(0, eq).trim();
|
||||
value = line.substring(eq + 1).trim();
|
||||
@ -330,15 +333,15 @@ config.parseArg = function parseArg(argv) {
|
||||
|
||||
key = key.replace(/\-/g, '');
|
||||
|
||||
alias = config.alias.arg[key];
|
||||
if (alias)
|
||||
key = alias;
|
||||
if (key.length === 0)
|
||||
continue;
|
||||
|
||||
if (value.length === 0)
|
||||
continue;
|
||||
|
||||
if (key.length === 0)
|
||||
continue;
|
||||
alias = config.alias.arg[key];
|
||||
if (alias)
|
||||
key = alias;
|
||||
|
||||
data[key] = value;
|
||||
|
||||
@ -404,16 +407,71 @@ config.parseEnv = function parseEnv(env) {
|
||||
key = key.substring(6);
|
||||
key = key.replace(/_/g, '').toLowerCase();
|
||||
|
||||
alias = config.alias.env[key];
|
||||
if (alias)
|
||||
key = alias;
|
||||
|
||||
if (key.length === 0)
|
||||
continue;
|
||||
|
||||
if (value.length === 0)
|
||||
continue;
|
||||
|
||||
alias = config.alias.env[key];
|
||||
if (alias)
|
||||
key = alias;
|
||||
|
||||
data[key] = value;
|
||||
}
|
||||
|
||||
return config.parseData(data);
|
||||
};
|
||||
|
||||
/**
|
||||
* Parse querystring variables.
|
||||
* @param {String} query
|
||||
* @returns {Object}
|
||||
*/
|
||||
|
||||
config.parseQuery = function parseQuery(query) {
|
||||
var data = {};
|
||||
var i, parts, index, pair, key, value, alias;
|
||||
|
||||
if (!utils.isBrowser)
|
||||
return data;
|
||||
|
||||
if (query == null) {
|
||||
query = utils.global.location.search;
|
||||
if (typeof query !== 'string')
|
||||
return data;
|
||||
query = query.substring(1);
|
||||
}
|
||||
|
||||
parts = query.split('&');
|
||||
|
||||
for (i = 0; i < parts.length; i++) {
|
||||
pair = parts[i];
|
||||
index = pair.indexOf('=');
|
||||
|
||||
if (index === -1) {
|
||||
key = pair;
|
||||
value = '';
|
||||
} else {
|
||||
key = pair.substring(0, index);
|
||||
value = pair.substring(index + 1);
|
||||
}
|
||||
|
||||
key = unescape(key);
|
||||
key = key.replace(/\-/g, '').toLowerCase();
|
||||
|
||||
if (key.length === 0)
|
||||
continue;
|
||||
|
||||
value = unescape(value);
|
||||
|
||||
if (value.length === 0)
|
||||
continue;
|
||||
|
||||
alias = config.alias.env[key];
|
||||
if (alias)
|
||||
key = alias;
|
||||
|
||||
data[key] = value;
|
||||
}
|
||||
|
||||
@ -646,6 +704,14 @@ function merge(a, b) {
|
||||
return a;
|
||||
}
|
||||
|
||||
function unescape(str) {
|
||||
try {
|
||||
str = decodeURIComponent(str).replace(/\+/g, ' ');
|
||||
} finally {
|
||||
return str.replace(/\0/g, '');
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Expose
|
||||
*/
|
||||
|
||||
@ -160,8 +160,10 @@ function parsePairs(str) {
|
||||
if (key.length === 0)
|
||||
continue;
|
||||
|
||||
if (value.length > 0)
|
||||
value = unescape(value);
|
||||
value = unescape(value);
|
||||
|
||||
if (value.length === 0)
|
||||
continue;
|
||||
|
||||
data[key] = value;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user