ajax-best-promise 0.3.7 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,9 +6,6 @@ Ajax with best promise - Ajax with stream data
6
6
  ![extending](https://img.shields.io/badge/stability-extending-orange.svg)
7
7
  [![npm-version](https://img.shields.io/npm/v/ajax-best-promise.svg)](https://npmjs.org/package/ajax-best-promise)
8
8
  [![downloads](https://img.shields.io/npm/dm/ajax-best-promise.svg)](https://npmjs.org/package/ajax-best-promise)
9
- [![build](https://img.shields.io/travis/codenautas/ajax-best-promise/master.svg)](https://travis-ci.org/codenautas/ajax-best-promise)
10
- [![coverage](https://img.shields.io/coveralls/codenautas/ajax-best-promise/master.svg)](https://coveralls.io/r/codenautas/ajax-best-promise)
11
- [![dependencies](https://img.shields.io/david/codenautas/ajax-best-promise.svg)](https://david-dm.org/codenautas/ajax-best-promise)
12
9
 
13
10
 
14
11
  language: ![English](https://raw.githubusercontent.com/codenautas/multilang/master/img/lang-en.png)
@@ -44,6 +44,7 @@ function newXMLHttpRequest_OrSomethingLikeThis(){
44
44
  /* global Promise */
45
45
  AjaxBestPromise.createMethodFunction=function(method){
46
46
  return function(params){
47
+ var registeredHeadersConsumer = false;
47
48
  var promiseForReturn = function(chunkConsumer, progressHooks){
48
49
  return new Promise(function(resolve,reject){
49
50
  var ajax = newXMLHttpRequest_OrSomethingLikeThis();
@@ -54,6 +55,17 @@ AjaxBestPromise.createMethodFunction=function(method){
54
55
  if(params.uploading){
55
56
  ajax.upload.addEventListener('progress',params.uploading);
56
57
  }
58
+ var headerFun = function(){
59
+ if (ajax.readyState == 2 && registeredHeadersConsumer) {
60
+ var headers = {}
61
+ ajax.getAllResponseHeaders().split(/\r?\n/).forEach(function(line){
62
+ var list = line.split(':');
63
+ headers[list[0].toLowerCase()] = list.slice(1).join(':').trimLeft();
64
+ })
65
+ registeredHeadersConsumer(headers);
66
+ registeredHeadersConsumer = false;
67
+ }
68
+ }
57
69
  if(chunkConsumer){
58
70
  var initialPos=0;
59
71
  var endPos=0;
@@ -80,6 +92,7 @@ AjaxBestPromise.createMethodFunction=function(method){
80
92
  if(ajax.readyState != 2 && ajax.readyState != 3 && ajax.readyState != 4){
81
93
  return;
82
94
  }
95
+ headerFun();
83
96
  /* istanbul ignore next */
84
97
  if(!('status' in ajax) || ajax.status != 200){
85
98
  return;
@@ -129,6 +142,7 @@ AjaxBestPromise.createMethodFunction=function(method){
129
142
  if(err instanceof Error){
130
143
  reject(err);
131
144
  }else if(err instanceof ProgressEvent /* || err instanceof XMLHttpRequestProgressEvent*/){
145
+ console.log('******************** err *********************', err)
132
146
  var newError=new Error('404 Cannot '+method+' '+params.url+' (ProgressEvent)');
133
147
  newError.originalError=err;
134
148
  newError.status=404;
@@ -143,8 +157,10 @@ AjaxBestPromise.createMethodFunction=function(method){
143
157
  if('onload' in ajax){
144
158
  ajax.onload=okFun;
145
159
  ajax.onerror=errFun;
160
+ ajax.onreadystatechange=headerFun
146
161
  }else{
147
162
  ajax.onreadystatechange=function(e){
163
+ headerFun();
148
164
  if(ajax.readyState == 4){
149
165
  return okFun(e);
150
166
  }
@@ -164,13 +180,18 @@ AjaxBestPromise.createMethodFunction=function(method){
164
180
  }
165
181
  });
166
182
  }else{
167
- paqueteAEnviar=Object.keys(params.data).map(function(key){
183
+ paqueteAEnviar=Object.keys(params.data || {}).map(function(key){
168
184
  return key+'='+encodeURIComponent(params.data[key]);
169
185
  }).join('&');
170
186
  }
171
187
  var url=params.url+((paqueteAEnviar && method!=='POST')?'?'+paqueteAEnviar:'');
172
188
  ajax.open(method,url,true);
173
189
  ajax.setRequestHeader('X-Requested-With','XMLHttpRequest');
190
+ if (params.headers) {
191
+ for (var key in params.headers) {
192
+ ajax.setRequestHeader(key, params.headers[key]);
193
+ }
194
+ }
174
195
  if(method==='POST'){
175
196
  if(!params.multipart){
176
197
  ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
@@ -208,6 +229,11 @@ AjaxBestPromise.createMethodFunction=function(method){
208
229
  onChunk:function(chunkConsumer){
209
230
  return promiseForReturn(chunkConsumer,this.progressHooks);
210
231
  },
232
+ onHeaders:function(headersConsumer){
233
+ registeredHeadersConsumer = headersConsumer;
234
+ delete intermediateObject.onHeaders;
235
+ return intermediateObject;
236
+ },
211
237
  then:function(resolve,reject){
212
238
  return promiseForReturn(null,this.progressHooks).then(resolve,reject);
213
239
  },
@@ -221,6 +247,13 @@ AjaxBestPromise.createMethodFunction=function(method){
221
247
 
222
248
  AjaxBestPromise.post=AjaxBestPromise.createMethodFunction('POST');
223
249
  AjaxBestPromise.get=AjaxBestPromise.createMethodFunction('GET');
250
+ AjaxBestPromise.put=AjaxBestPromise.createMethodFunction('PUT');
251
+ AjaxBestPromise.patch=AjaxBestPromise.createMethodFunction('PATCH');
252
+ AjaxBestPromise.delete=AjaxBestPromise.createMethodFunction('DELETE');
253
+ AjaxBestPromise.options=AjaxBestPromise.createMethodFunction('OPTIONS');
254
+ AjaxBestPromise.head=AjaxBestPromise.createMethodFunction('HEAD');
255
+ AjaxBestPromise.connect=AjaxBestPromise.createMethodFunction('CONNECT');
256
+ AjaxBestPromise.trace=AjaxBestPromise.createMethodFunction('TRACE');
224
257
 
225
258
  AjaxBestPromise.fromElements=function fromElements(listOfElementsOrIds,addParam,base){
226
259
  var actual=base;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ajax-best-promise",
3
3
  "description": "Ajax with best promise - Ajax with stream data",
4
- "version": "0.3.7",
4
+ "version": "0.4.2",
5
5
  "author": "Codenautas <codenautas@googlegroups.com>",
6
6
  "license": "MIT",
7
7
  "files": [
@@ -21,36 +21,31 @@
21
21
  "main": "bin/ajax-best-promise.js",
22
22
  "dependencies": {},
23
23
  "devDependencies": {
24
- "body-parser": "~1.18.3",
25
- "cookie-parser": "~1.4.3",
26
- "es6-promise": "~4.2.5",
27
- "expect.js": "~0.3.1",
28
- "express": "~4.16.4",
29
- "express-session": "~1.15.6",
30
- "express-useragent": "~1.0.12",
31
- "fs-promise": "~2.0.3",
32
- "istanbul": "~0.4.5",
33
- "karma": "~3.1.3",
34
- "karma-chrome-launcher": "~2.2.0",
35
- "karma-coverage": "~1.1.2",
36
- "karma-es3-preprocessor": "~0.1.1",
37
- "karma-expect": "~1.1.3",
38
- "karma-ie-launcher": "~1.0.0",
39
- "karma-firefox-launcher": "~1.1.0",
40
- "karma-mocha": "~1.3.0",
41
- "karma-phantomjs-launcher": "~1.0.4",
42
- "karma-safari-launcher": "~1.0.0",
43
- "mocha": "~5.2.0",
44
- "moment": "~2.23.0",
45
- "multiparty": "~4.2.1",
46
- "pug": "~2.0.3",
47
- "read-yaml-promise": "~1.0.2",
48
- "mini-tools": "~1.0.4",
49
- "require-bro": "~0.1.13",
50
- "serve-content": "~0.3.10"
24
+ "body-parser": "^1.20.2",
25
+ "cookie-parser": "^1.4.6",
26
+ "expect.js": "^0.3.1",
27
+ "express": "^4.19.2",
28
+ "express-session": "^1.18.0",
29
+ "express-useragent": "^1.0.15",
30
+ "fs-promise": "^2.0.3",
31
+ "istanbul": "^0.4.5",
32
+ "karma": "^6.4.3",
33
+ "karma-chrome-launcher": "^3.2.0",
34
+ "karma-coverage": "^2.2.1",
35
+ "karma-expect": "^1.1.3",
36
+ "karma-firefox-launcher": "^2.1.3",
37
+ "karma-mocha": "^2.0.1",
38
+ "mocha": "^10.4.0",
39
+ "moment": "^2.30.1",
40
+ "multiparty": "^4.2.3",
41
+ "pug": "^3.0.2",
42
+ "read-yaml-promise": "^1.0.2",
43
+ "mini-tools": "^1.12.1",
44
+ "require-bro": "^0.3.1",
45
+ "serve-content": "^0.3.19"
51
46
  },
52
47
  "engines": {
53
- "node": ">= 8"
48
+ "node": ">= 16"
54
49
  },
55
50
  "scripts": {
56
51
  "infinito": "node examples/server/server.js --karma karma.conf.js",
@@ -58,12 +53,5 @@
58
53
  "test-cov": "node examples/server/server.js --karma karma.conf.js --single-run",
59
54
  "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/",
60
55
  "start": "node examples/server/server.js"
61
- },
62
- "qa-control": {
63
- "package-version": "0.3.0",
64
- "coverage": 90,
65
- "run-in": "both",
66
- "stability": "extending",
67
- "type": "lib"
68
56
  }
69
57
  }