Comparing version 1.3.2 to 1.4.0
@@ -10,2 +10,3 @@ export interface Query { | ||
} | ||
export declare type RawHeaders = string[]; | ||
export interface BaseOptions { | ||
@@ -15,2 +16,3 @@ url?: string; | ||
headers?: Headers; | ||
rawHeaders?: RawHeaders; | ||
} | ||
@@ -22,3 +24,4 @@ export default class Base { | ||
query: Query; | ||
constructor({url, headers, query}: BaseOptions); | ||
rawHeaders: RawHeaders; | ||
constructor({url, headers, rawHeaders, query}: BaseOptions); | ||
set(headers: Headers): Base; | ||
@@ -30,3 +33,3 @@ set(name: string, value: string | string[]): Base; | ||
get(name: string): string; | ||
remove(name: string): Base; | ||
remove(name: string): this; | ||
type(): string; | ||
@@ -33,0 +36,0 @@ type(value: string): Base; |
@@ -1,2 +0,1 @@ | ||
var arrify = require('arrify'); | ||
var querystring_1 = require('querystring'); | ||
@@ -16,3 +15,3 @@ var extend = require('xtend'); | ||
function Base(_a) { | ||
var url = _a.url, headers = _a.headers, query = _a.query; | ||
var url = _a.url, headers = _a.headers, rawHeaders = _a.rawHeaders, query = _a.query; | ||
this.url = null; | ||
@@ -34,3 +33,13 @@ this.headers = {}; | ||
} | ||
this.set(headers); | ||
if (rawHeaders) { | ||
this.rawHeaders = rawHeaders; | ||
for (var i = 0; i < rawHeaders.length; i += 2) { | ||
var name_1 = rawHeaders[i]; | ||
var value = rawHeaders[i + 1]; | ||
this.append(name_1, value); | ||
} | ||
} | ||
else { | ||
this.set(headers); | ||
} | ||
} | ||
@@ -53,3 +62,3 @@ Base.prototype.set = function (name, value) { | ||
else { | ||
this.headers[lower] = value; | ||
this.headers[lower] = typeof value === 'string' ? value : value.join(', '); | ||
this.headerNames[lower] = name; | ||
@@ -61,5 +70,7 @@ } | ||
Base.prototype.append = function (name, value) { | ||
var prev = this.get(name); | ||
var val = arrify(prev).concat(value); | ||
return this.set(name, val); | ||
var previous = this.get(name); | ||
if (previous != null) { | ||
value = previous + ", " + (typeof value === 'string' ? value : value.join(', ')); | ||
} | ||
return this.set(name, value); | ||
}; | ||
@@ -66,0 +77,0 @@ Base.prototype.name = function (name) { |
var Promise = require('native-or-bluebird'); | ||
var common_1 = require('./common'); | ||
var index_1 = require('./plugins/index'); | ||
var get_headers_1 = require('get-headers'); | ||
function open(request) { | ||
@@ -18,3 +17,3 @@ return new Promise(function (resolve, reject) { | ||
statusText: xhr.statusText, | ||
headers: get_headers_1.parse(xhr.getAllResponseHeaders()), | ||
rawHeaders: parseToRawHeaders(xhr.getAllResponseHeaders()), | ||
body: responseType ? xhr.response : xhr.responseText, | ||
@@ -76,2 +75,14 @@ url: xhr.responseURL | ||
} | ||
function parseToRawHeaders(headers) { | ||
var rawHeaders = []; | ||
var lines = headers.replace(/\r?\n$/, '').split(/\r?\n/); | ||
for (var _i = 0; _i < lines.length; _i++) { | ||
var header = lines[_i]; | ||
var indexOf = header.indexOf(':'); | ||
var name_1 = header.substr(0, indexOf).trim(); | ||
var value = header.substr(indexOf + 1).trim(); | ||
rawHeaders.push(name_1, value); | ||
} | ||
return rawHeaders; | ||
} | ||
module.exports = common_1.defaults({ | ||
@@ -78,0 +89,0 @@ transport: { open: open, abort: abort, use: index_1.defaults } |
@@ -7,3 +7,2 @@ var http_1 = require('http'); | ||
var arrify = require('arrify'); | ||
var get_headers_1 = require('get-headers'); | ||
var Promise = require('native-or-bluebird'); | ||
@@ -90,3 +89,4 @@ var common_1 = require('./common'); | ||
statusText: res.statusMessage, | ||
headers: get_headers_1.http(res), | ||
headers: res.headers, | ||
rawHeaders: res.rawHeaders, | ||
url: url | ||
@@ -93,0 +93,0 @@ }); |
@@ -62,3 +62,3 @@ import Promise = require('native-or-bluebird'); | ||
constructor(options: RequestOptions); | ||
use(fn: Middleware | Middleware[]): Request; | ||
use(fn: Middleware | Middleware[]): this; | ||
error(message: string, type: string, original?: Error): PopsicleError; | ||
@@ -73,3 +73,3 @@ then(onFulfilled: (response?: Response) => any, onRejected?: (error?: PopsicleError) => any): Promise<any>; | ||
always(fn: RequestPluginFunction): Request; | ||
abort(): Request; | ||
abort(): this; | ||
uploaded: number; | ||
@@ -76,0 +76,0 @@ downloaded: number; |
@@ -244,4 +244,5 @@ var __extends = (this && this.__extends) || function (d, b) { | ||
try { | ||
for (var i = 0; i < fns.length; i++) { | ||
fns[i](request); | ||
for (var _i = 0; _i < fns.length; _i++) { | ||
var fn = fns[_i]; | ||
fn(request); | ||
} | ||
@@ -248,0 +249,0 @@ } |
{ | ||
"name": "popsicle", | ||
"version": "1.3.2", | ||
"version": "1.4.0", | ||
"description": "Simple HTTP requests for node and the browser", | ||
@@ -74,3 +74,3 @@ "main": "dist/lib/index.js", | ||
"tape-run": "^2.1.0", | ||
"typescript": "^1.6.2", | ||
"typescript": "^1.7.3", | ||
"typings": "^0.2.2" | ||
@@ -82,3 +82,2 @@ }, | ||
"form-data": "^0.2.0", | ||
"get-headers": "^1.0.3", | ||
"infinity-agent": "^2.0.3", | ||
@@ -85,0 +84,0 @@ "methods": "^1.1.1", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
98315
8
1136
- Removedget-headers@^1.0.3
- Removedget-headers@1.0.5(transitive)