mirror of
https://github.com/idanoo/GoScrobble
synced 2025-07-04 07:02:18 +00:00
0.2.0 - Mid migration
This commit is contained in:
parent
139e6a915e
commit
7e38fdbd7d
42393 changed files with 5358157 additions and 62 deletions
99
web/node_modules/sockjs-client/lib/transport/sender/jsonp.js
generated
vendored
Normal file
99
web/node_modules/sockjs-client/lib/transport/sender/jsonp.js
generated
vendored
Normal file
|
@ -0,0 +1,99 @@
|
|||
'use strict';
|
||||
|
||||
var random = require('../../utils/random')
|
||||
, urlUtils = require('../../utils/url')
|
||||
;
|
||||
|
||||
var debug = function() {};
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
debug = require('debug')('sockjs-client:sender:jsonp');
|
||||
}
|
||||
|
||||
var form, area;
|
||||
|
||||
function createIframe(id) {
|
||||
debug('createIframe', id);
|
||||
try {
|
||||
// ie6 dynamic iframes with target="" support (thanks Chris Lambacher)
|
||||
return global.document.createElement('<iframe name="' + id + '">');
|
||||
} catch (x) {
|
||||
var iframe = global.document.createElement('iframe');
|
||||
iframe.name = id;
|
||||
return iframe;
|
||||
}
|
||||
}
|
||||
|
||||
function createForm() {
|
||||
debug('createForm');
|
||||
form = global.document.createElement('form');
|
||||
form.style.display = 'none';
|
||||
form.style.position = 'absolute';
|
||||
form.method = 'POST';
|
||||
form.enctype = 'application/x-www-form-urlencoded';
|
||||
form.acceptCharset = 'UTF-8';
|
||||
|
||||
area = global.document.createElement('textarea');
|
||||
area.name = 'd';
|
||||
form.appendChild(area);
|
||||
|
||||
global.document.body.appendChild(form);
|
||||
}
|
||||
|
||||
module.exports = function(url, payload, callback) {
|
||||
debug(url, payload);
|
||||
if (!form) {
|
||||
createForm();
|
||||
}
|
||||
var id = 'a' + random.string(8);
|
||||
form.target = id;
|
||||
form.action = urlUtils.addQuery(urlUtils.addPath(url, '/jsonp_send'), 'i=' + id);
|
||||
|
||||
var iframe = createIframe(id);
|
||||
iframe.id = id;
|
||||
iframe.style.display = 'none';
|
||||
form.appendChild(iframe);
|
||||
|
||||
try {
|
||||
area.value = payload;
|
||||
} catch (e) {
|
||||
// seriously broken browsers get here
|
||||
}
|
||||
form.submit();
|
||||
|
||||
var completed = function(err) {
|
||||
debug('completed', id, err);
|
||||
if (!iframe.onerror) {
|
||||
return;
|
||||
}
|
||||
iframe.onreadystatechange = iframe.onerror = iframe.onload = null;
|
||||
// Opera mini doesn't like if we GC iframe
|
||||
// immediately, thus this timeout.
|
||||
setTimeout(function() {
|
||||
debug('cleaning up', id);
|
||||
iframe.parentNode.removeChild(iframe);
|
||||
iframe = null;
|
||||
}, 500);
|
||||
area.value = '';
|
||||
// It is not possible to detect if the iframe succeeded or
|
||||
// failed to submit our form.
|
||||
callback(err);
|
||||
};
|
||||
iframe.onerror = function() {
|
||||
debug('onerror', id);
|
||||
completed();
|
||||
};
|
||||
iframe.onload = function() {
|
||||
debug('onload', id);
|
||||
completed();
|
||||
};
|
||||
iframe.onreadystatechange = function(e) {
|
||||
debug('onreadystatechange', id, iframe.readyState, e);
|
||||
if (iframe.readyState === 'complete') {
|
||||
completed();
|
||||
}
|
||||
};
|
||||
return function() {
|
||||
debug('aborted', id);
|
||||
completed(new Error('Aborted'));
|
||||
};
|
||||
};
|
103
web/node_modules/sockjs-client/lib/transport/sender/xdr.js
generated
vendored
Normal file
103
web/node_modules/sockjs-client/lib/transport/sender/xdr.js
generated
vendored
Normal file
|
@ -0,0 +1,103 @@
|
|||
'use strict';
|
||||
|
||||
var EventEmitter = require('events').EventEmitter
|
||||
, inherits = require('inherits')
|
||||
, eventUtils = require('../../utils/event')
|
||||
, browser = require('../../utils/browser')
|
||||
, urlUtils = require('../../utils/url')
|
||||
;
|
||||
|
||||
var debug = function() {};
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
debug = require('debug')('sockjs-client:sender:xdr');
|
||||
}
|
||||
|
||||
// References:
|
||||
// http://ajaxian.com/archives/100-line-ajax-wrapper
|
||||
// http://msdn.microsoft.com/en-us/library/cc288060(v=VS.85).aspx
|
||||
|
||||
function XDRObject(method, url, payload) {
|
||||
debug(method, url);
|
||||
var self = this;
|
||||
EventEmitter.call(this);
|
||||
|
||||
setTimeout(function() {
|
||||
self._start(method, url, payload);
|
||||
}, 0);
|
||||
}
|
||||
|
||||
inherits(XDRObject, EventEmitter);
|
||||
|
||||
XDRObject.prototype._start = function(method, url, payload) {
|
||||
debug('_start');
|
||||
var self = this;
|
||||
var xdr = new global.XDomainRequest();
|
||||
// IE caches even POSTs
|
||||
url = urlUtils.addQuery(url, 't=' + (+new Date()));
|
||||
|
||||
xdr.onerror = function() {
|
||||
debug('onerror');
|
||||
self._error();
|
||||
};
|
||||
xdr.ontimeout = function() {
|
||||
debug('ontimeout');
|
||||
self._error();
|
||||
};
|
||||
xdr.onprogress = function() {
|
||||
debug('progress', xdr.responseText);
|
||||
self.emit('chunk', 200, xdr.responseText);
|
||||
};
|
||||
xdr.onload = function() {
|
||||
debug('load');
|
||||
self.emit('finish', 200, xdr.responseText);
|
||||
self._cleanup(false);
|
||||
};
|
||||
this.xdr = xdr;
|
||||
this.unloadRef = eventUtils.unloadAdd(function() {
|
||||
self._cleanup(true);
|
||||
});
|
||||
try {
|
||||
// Fails with AccessDenied if port number is bogus
|
||||
this.xdr.open(method, url);
|
||||
if (this.timeout) {
|
||||
this.xdr.timeout = this.timeout;
|
||||
}
|
||||
this.xdr.send(payload);
|
||||
} catch (x) {
|
||||
this._error();
|
||||
}
|
||||
};
|
||||
|
||||
XDRObject.prototype._error = function() {
|
||||
this.emit('finish', 0, '');
|
||||
this._cleanup(false);
|
||||
};
|
||||
|
||||
XDRObject.prototype._cleanup = function(abort) {
|
||||
debug('cleanup', abort);
|
||||
if (!this.xdr) {
|
||||
return;
|
||||
}
|
||||
this.removeAllListeners();
|
||||
eventUtils.unloadDel(this.unloadRef);
|
||||
|
||||
this.xdr.ontimeout = this.xdr.onerror = this.xdr.onprogress = this.xdr.onload = null;
|
||||
if (abort) {
|
||||
try {
|
||||
this.xdr.abort();
|
||||
} catch (x) {
|
||||
// intentionally empty
|
||||
}
|
||||
}
|
||||
this.unloadRef = this.xdr = null;
|
||||
};
|
||||
|
||||
XDRObject.prototype.close = function() {
|
||||
debug('close');
|
||||
this._cleanup(true);
|
||||
};
|
||||
|
||||
// IE 8/9 if the request target uses the same scheme - #79
|
||||
XDRObject.enabled = !!(global.XDomainRequest && browser.hasDomain());
|
||||
|
||||
module.exports = XDRObject;
|
15
web/node_modules/sockjs-client/lib/transport/sender/xhr-cors.js
generated
vendored
Normal file
15
web/node_modules/sockjs-client/lib/transport/sender/xhr-cors.js
generated
vendored
Normal file
|
@ -0,0 +1,15 @@
|
|||
'use strict';
|
||||
|
||||
var inherits = require('inherits')
|
||||
, XhrDriver = require('../driver/xhr')
|
||||
;
|
||||
|
||||
function XHRCorsObject(method, url, payload, opts) {
|
||||
XhrDriver.call(this, method, url, payload, opts);
|
||||
}
|
||||
|
||||
inherits(XHRCorsObject, XhrDriver);
|
||||
|
||||
XHRCorsObject.enabled = XhrDriver.enabled && XhrDriver.supportsCORS;
|
||||
|
||||
module.exports = XHRCorsObject;
|
24
web/node_modules/sockjs-client/lib/transport/sender/xhr-fake.js
generated
vendored
Normal file
24
web/node_modules/sockjs-client/lib/transport/sender/xhr-fake.js
generated
vendored
Normal file
|
@ -0,0 +1,24 @@
|
|||
'use strict';
|
||||
|
||||
var EventEmitter = require('events').EventEmitter
|
||||
, inherits = require('inherits')
|
||||
;
|
||||
|
||||
function XHRFake(/* method, url, payload, opts */) {
|
||||
var self = this;
|
||||
EventEmitter.call(this);
|
||||
|
||||
this.to = setTimeout(function() {
|
||||
self.emit('finish', 200, '{}');
|
||||
}, XHRFake.timeout);
|
||||
}
|
||||
|
||||
inherits(XHRFake, EventEmitter);
|
||||
|
||||
XHRFake.prototype.close = function() {
|
||||
clearTimeout(this.to);
|
||||
};
|
||||
|
||||
XHRFake.timeout = 2000;
|
||||
|
||||
module.exports = XHRFake;
|
17
web/node_modules/sockjs-client/lib/transport/sender/xhr-local.js
generated
vendored
Normal file
17
web/node_modules/sockjs-client/lib/transport/sender/xhr-local.js
generated
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
'use strict';
|
||||
|
||||
var inherits = require('inherits')
|
||||
, XhrDriver = require('../driver/xhr')
|
||||
;
|
||||
|
||||
function XHRLocalObject(method, url, payload /*, opts */) {
|
||||
XhrDriver.call(this, method, url, payload, {
|
||||
noCredentials: true
|
||||
});
|
||||
}
|
||||
|
||||
inherits(XHRLocalObject, XhrDriver);
|
||||
|
||||
XHRLocalObject.enabled = XhrDriver.enabled;
|
||||
|
||||
module.exports = XHRLocalObject;
|
Loading…
Add table
Add a link
Reference in a new issue