config: querystring parsing.
This commit is contained in:
parent
0d5811719c
commit
fa167d9a8c
@ -10,6 +10,7 @@ var Network = require('../protocol/network');
|
|||||||
var util = require('../utils/util');
|
var util = require('../utils/util');
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
|
var global = util.global;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @exports config
|
* @exports config
|
||||||
@ -69,6 +70,12 @@ config.parse = function parse(options) {
|
|||||||
merge(data, arg);
|
merge(data, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (options.hash) {
|
||||||
|
arg = config.parseHash();
|
||||||
|
merge(raw, arg.data);
|
||||||
|
merge(data, arg);
|
||||||
|
}
|
||||||
|
|
||||||
if (data.config && !util.isBrowser) {
|
if (data.config && !util.isBrowser) {
|
||||||
prefix = config.getPrefix(data);
|
prefix = config.getPrefix(data);
|
||||||
filename = data.config;
|
filename = data.config;
|
||||||
@ -434,24 +441,56 @@ config.parseEnv = function parseEnv(env) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parse querystring variables.
|
* Parse uri querystring variables.
|
||||||
* @param {String} query
|
* @param {String} query
|
||||||
* @returns {Object}
|
* @returns {Object}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
config.parseQuery = function parseQuery(query) {
|
config.parseQuery = function parseQuery(query) {
|
||||||
|
if (query == null) {
|
||||||
|
if (!util.isBrowser || !global.location)
|
||||||
|
return {};
|
||||||
|
|
||||||
|
query = global.location.search || '';
|
||||||
|
}
|
||||||
|
|
||||||
|
return config.parseForm(query);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse uri hash variables.
|
||||||
|
* @param {String} hash
|
||||||
|
* @returns {Object}
|
||||||
|
*/
|
||||||
|
|
||||||
|
config.parseHash = function parseHash(hash) {
|
||||||
|
if (hash == null) {
|
||||||
|
if (!util.isBrowser || !global.location)
|
||||||
|
return {};
|
||||||
|
|
||||||
|
hash = global.location.hash || '';
|
||||||
|
}
|
||||||
|
|
||||||
|
return config.parseForm(hash);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse form-urlencoded variables.
|
||||||
|
* @param {String} query
|
||||||
|
* @returns {Object}
|
||||||
|
*/
|
||||||
|
|
||||||
|
config.parseForm = function parseForm(query) {
|
||||||
var data = {};
|
var data = {};
|
||||||
var i, parts, index, pair, key, value, alias;
|
var i, parts, index, pair, key, value, alias;
|
||||||
|
|
||||||
if (!util.isBrowser)
|
assert(typeof query === 'string');
|
||||||
|
|
||||||
|
if (query.length === 0)
|
||||||
return data;
|
return data;
|
||||||
|
|
||||||
if (query == null) {
|
if (query[0] === '?' || query[0] === '#')
|
||||||
query = util.global.location.search;
|
|
||||||
if (typeof query !== 'string')
|
|
||||||
return data;
|
|
||||||
query = query.substring(1);
|
query = query.substring(1);
|
||||||
}
|
|
||||||
|
|
||||||
parts = query.split('&');
|
parts = query.split('&');
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user