commit
This commit is contained in:
parent
70e2f7a8aa
commit
008d2f30d7
675 changed files with 189892 additions and 0 deletions
110
node_modules/requests/requested.js
generated
vendored
Normal file
110
node_modules/requests/requested.js
generated
vendored
Normal file
|
@ -0,0 +1,110 @@
|
|||
'use strict';
|
||||
|
||||
var EventEmitter = require('eventemitter3');
|
||||
|
||||
function Requested(url, options) {
|
||||
EventEmitter.call(this);
|
||||
|
||||
//
|
||||
// All properties/options that should be introduced on the prototype.
|
||||
//
|
||||
this.merge(this, Requested.defaults, options || {});
|
||||
|
||||
//
|
||||
// Private properties that should not be overridden by developers.
|
||||
//
|
||||
this.id = ++Requested.requested;
|
||||
|
||||
//
|
||||
// We want to implement a stream like interface on top of this module so it
|
||||
// can be used to read streaming data in node as well as through browserify.
|
||||
//
|
||||
this.readable = true;
|
||||
this.writable = false;
|
||||
|
||||
if (this.initialize) this.initialize(url);
|
||||
if (!this.manual && this.open) this.open(url);
|
||||
}
|
||||
|
||||
Requested.extend = require('extendible');
|
||||
Requested.prototype = new EventEmitter();
|
||||
Requested.prototype.constructor = Requested;
|
||||
|
||||
|
||||
/**
|
||||
* Accurate type discovery.
|
||||
*
|
||||
* @param {Mixed} what What ever needs to be figured out.
|
||||
* @returns {String} Name of the type.
|
||||
* @api private
|
||||
*/
|
||||
Requested.prototype.typeof = function type(what) {
|
||||
return Object.prototype.toString.call(what).slice(8, -1).toLowerCase();
|
||||
};
|
||||
|
||||
/**
|
||||
* Deeply assign and merge objects together.
|
||||
*
|
||||
* @param {Object} target The target object that should receive the merged data.
|
||||
* @returns {Object} The merged target object.
|
||||
* @api private
|
||||
*/
|
||||
Requested.prototype.merge = function merge(target) {
|
||||
var i = 1
|
||||
, arg, key;
|
||||
|
||||
for (; i < arguments.length; i++) {
|
||||
arg = arguments[i];
|
||||
|
||||
for (key in arg) {
|
||||
if (!Object.prototype.hasOwnProperty.call(arg, key)) continue;
|
||||
|
||||
if ('object' === this.typeof(arg[key])) {
|
||||
target[key] = this.merge('object' === this.typeof(target[key]) ? target[key] : {}, arg[key]);
|
||||
} else {
|
||||
target[key] = arg[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return target;
|
||||
};
|
||||
|
||||
/**
|
||||
* The defaults for the Requests. These values will be used if no options object
|
||||
* or matching key is provided. It can be override globally if needed but this
|
||||
* is not advised as it can have some potential side affects for other libraries
|
||||
* that use this module.
|
||||
*
|
||||
* @type {Object}
|
||||
* @public
|
||||
*/
|
||||
Requested.defaults = {
|
||||
streaming: false,
|
||||
manual: false,
|
||||
method: 'GET',
|
||||
mode: 'cors',
|
||||
headers: {
|
||||
//
|
||||
// We're forcing text/plain mode by default to ensure that regular
|
||||
// requests can benefit from CORS requests without an OPTIONS request. It's
|
||||
// shared between server and client implementations to ensure that requests
|
||||
// are handled in exactly the same way.
|
||||
//
|
||||
'Content-Type': 'text/plain'
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Unique id and also an indication on how many XHR requests we've made using
|
||||
* this library.
|
||||
*
|
||||
* @type {Number}
|
||||
* @private
|
||||
*/
|
||||
Requested.requested = 0;
|
||||
|
||||
//
|
||||
// Expose the module interface.
|
||||
//
|
||||
module.exports = Requested;
|
Loading…
Add table
Add a link
Reference in a new issue