From 3bbb714a130482de3d31a08d5045b2f6c6facfb2 Mon Sep 17 00:00:00 2001 From: GK Date: Sun, 30 Mar 2014 17:15:19 -0400 Subject: [PATCH] querystring extracted from util.js into own npm module --- lib/socket.js | 3 ++- lib/transports/polling.js | 3 ++- lib/transports/websocket.js | 3 ++- lib/util.js | 37 ------------------------------------- package.json | 3 ++- test/index.js | 1 - 6 files changed, 8 insertions(+), 42 deletions(-) diff --git a/lib/socket.js b/lib/socket.js index f8ca74c8..d2aa88e2 100644 --- a/lib/socket.js +++ b/lib/socket.js @@ -10,6 +10,7 @@ var index = require('indexof'); var parser = require('engine.io-parser'); var parseuri = require('parseuri'); var parsejson = require('parsejson'); +var parseqs = require('parseqs'); /** * Module exports. @@ -73,7 +74,7 @@ function Socket(uri, opts){ location.port : (this.secure ? 443 : 80)); this.query = opts.query || {}; - if ('string' == typeof this.query) this.query = util.qsParse(this.query); + if ('string' == typeof this.query) this.query = parseqs.qsParse(this.query); this.upgrade = false !== opts.upgrade; this.path = (opts.path || '/engine.io').replace(/\/$/, '') + '/'; this.forceJSONP = !!opts.forceJSONP; diff --git a/lib/transports/polling.js b/lib/transports/polling.js index 0294e8f2..3f7f1d6e 100644 --- a/lib/transports/polling.js +++ b/lib/transports/polling.js @@ -4,6 +4,7 @@ var Transport = require('../transport'); var util = require('../util'); +var parseqs = require('parseqs'); var parser = require('engine.io-parser'); var debug = require('debug')('engine.io-client:polling'); @@ -239,7 +240,7 @@ Polling.prototype.uri = function(){ query.b64 = 1; } - query = util.qs(query); + query = parseqs.qs(query); // avoid port if default for schema if (this.port && (('https' == schema && this.port != 443) || diff --git a/lib/transports/websocket.js b/lib/transports/websocket.js index 30bf1f2f..7c2d6069 100644 --- a/lib/transports/websocket.js +++ b/lib/transports/websocket.js @@ -5,6 +5,7 @@ var Transport = require('../transport'); var parser = require('engine.io-parser'); var util = require('../util'); +var parseqs = require('parseqs'); var debug = require('debug')('engine.io-client:websocket'); /** @@ -205,7 +206,7 @@ WS.prototype.uri = function(){ query.b64 = 1; } - query = util.qs(query); + query = parseqs.qs(query); // prepend ? to query if (query.length) { diff --git a/lib/util.js b/lib/util.js index a2310b64..f7077002 100644 --- a/lib/util.js +++ b/lib/util.js @@ -122,40 +122,3 @@ exports.ua.ios6 = exports.ua.ios && /OS 6_/.test(navigator.userAgent); */ exports.ua.chromeframe = Boolean(global.externalHost); - -/** - * Compiles a querystring - * - * @param {Object} - * @api private - */ - -exports.qs = function (obj) { - var str = ''; - - for (var i in obj) { - if (obj.hasOwnProperty(i)) { - if (str.length) str += '&'; - str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]); - } - } - - return str; -}; - -/** - * Parses a simple querystring. - * - * @param {String} qs - * @api private - */ - -exports.qsParse = function(qs){ - var qry = {}; - var pairs = qs.split('&'); - for (var i = 0, l = pairs.length; i < l; i++) { - var pair = pairs[i].split('='); - qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]); - } - return qry; -}; diff --git a/package.json b/package.json index cfb2ad21..eb02e85a 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,8 @@ "engine.io-parser": "0.3.0", "debug": "0.7.4", "parseuri": "0.0.2", - "parsejson": "0.0.1" + "parsejson": "0.0.1", + "parseqs": "0.0.1" }, "devDependencies": { "zuul": "1.5.4", diff --git a/test/index.js b/test/index.js index b6d7bdba..8bb06f88 100644 --- a/test/index.js +++ b/test/index.js @@ -23,7 +23,6 @@ var BlobBuilder = global.BlobBuilder || global.WebKitBlobBuilder || global.MSBlo var blobBuilderSupported = !!BlobBuilder && !!BlobBuilder.prototype.append && !!BlobBuilder.prototype.getBlob; require('./engine.io-client'); -require('./util'); require('./parser'); require('./socket'); require('./transport');