ajax-best-promise 0.3.7 → 0.4.0
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 +40 -1
- package/bin/ajax-best-promise.js +34 -1
- package/package.json +19 -21
package/README.md
CHANGED
|
@@ -56,6 +56,26 @@ AjaxBestPromise.get({
|
|
|
56
56
|
});
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
+
## haders
|
|
60
|
+
|
|
61
|
+
You can send headers in the header property and recieve it with the `onHeader` function.
|
|
62
|
+
|
|
63
|
+
```js
|
|
64
|
+
AjaxBestPromise.put({
|
|
65
|
+
url:'http://example.com:3333/service/',
|
|
66
|
+
data:{ alfa: 1, betha: 2},
|
|
67
|
+
headers:{
|
|
68
|
+
Authorization: 'Bearer ' + token
|
|
69
|
+
}
|
|
70
|
+
}).onHeaders(function(headers){
|
|
71
|
+
newId = headers.Location;
|
|
72
|
+
}).then(function(){
|
|
73
|
+
console.log('data inserted', newId);
|
|
74
|
+
}).catch(function(err){
|
|
75
|
+
console.log('error inserting data', err);
|
|
76
|
+
});
|
|
77
|
+
```
|
|
78
|
+
|
|
59
79
|
|
|
60
80
|
## Error handler
|
|
61
81
|
|
|
@@ -74,8 +94,27 @@ AjaxBestPromise.get({
|
|
|
74
94
|
});
|
|
75
95
|
```
|
|
76
96
|
|
|
77
|
-
##
|
|
97
|
+
## Modern JS
|
|
98
|
+
|
|
99
|
+
```ts
|
|
100
|
+
try{
|
|
101
|
+
var newId: string
|
|
102
|
+
await AjaxBestPromise.put({
|
|
103
|
+
url:'http://example.com:3333/service/',
|
|
104
|
+
data:{ alfa: 1, betha: 2},
|
|
105
|
+
headers:{
|
|
106
|
+
Authorization: 'Bearer ' + token
|
|
107
|
+
}
|
|
108
|
+
}).onHeaders(function(headers){
|
|
109
|
+
newId = headers.Location;
|
|
110
|
+
});
|
|
111
|
+
console.log('data inserted', newId);
|
|
112
|
+
}catch(err){
|
|
113
|
+
console.log('error inserting data', err);
|
|
114
|
+
}
|
|
115
|
+
```
|
|
78
116
|
|
|
117
|
+
## Tests with real devices
|
|
79
118
|
|
|
80
119
|
NPM version |Device |OS |nav |obs
|
|
81
120
|
------------|-----------------------|---------------|-------------------------|----
|
package/bin/ajax-best-promise.js
CHANGED
|
@@ -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.
|
|
4
|
+
"version": "0.4.0",
|
|
5
5
|
"author": "Codenautas <codenautas@googlegroups.com>",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"files": [
|
|
@@ -21,33 +21,31 @@
|
|
|
21
21
|
"main": "bin/ajax-best-promise.js",
|
|
22
22
|
"dependencies": {},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"body-parser": "~1.
|
|
25
|
-
"cookie-parser": "~1.4.
|
|
26
|
-
"es6-promise": "~4.2.
|
|
24
|
+
"body-parser": "~1.20.2",
|
|
25
|
+
"cookie-parser": "~1.4.6",
|
|
26
|
+
"es6-promise": "~4.2.8",
|
|
27
27
|
"expect.js": "~0.3.1",
|
|
28
|
-
"express": "~4.
|
|
29
|
-
"express-session": "~1.
|
|
30
|
-
"express-useragent": "~1.0.
|
|
28
|
+
"express": "~4.18.2",
|
|
29
|
+
"express-session": "~1.17.3",
|
|
30
|
+
"express-useragent": "~1.0.15",
|
|
31
31
|
"fs-promise": "~2.0.3",
|
|
32
32
|
"istanbul": "~0.4.5",
|
|
33
|
-
"karma": "~
|
|
34
|
-
"karma-chrome-launcher": "~
|
|
35
|
-
"karma-coverage": "~
|
|
33
|
+
"karma": "~6.4.2",
|
|
34
|
+
"karma-chrome-launcher": "~3.2.0",
|
|
35
|
+
"karma-coverage": "~2.2.0",
|
|
36
36
|
"karma-es3-preprocessor": "~0.1.1",
|
|
37
37
|
"karma-expect": "~1.1.3",
|
|
38
|
+
"karma-firefox-launcher": "~2.1.2",
|
|
38
39
|
"karma-ie-launcher": "~1.0.0",
|
|
39
|
-
"karma-
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"moment": "~2.23.0",
|
|
45
|
-
"multiparty": "~4.2.1",
|
|
46
|
-
"pug": "~2.0.3",
|
|
40
|
+
"karma-mocha": "~2.0.1",
|
|
41
|
+
"mocha": "~10.2.0",
|
|
42
|
+
"moment": "~2.29.4",
|
|
43
|
+
"multiparty": "~4.2.3",
|
|
44
|
+
"pug": "~3.0.2",
|
|
47
45
|
"read-yaml-promise": "~1.0.2",
|
|
48
|
-
"mini-tools": "~1.0
|
|
49
|
-
"require-bro": "~0.1
|
|
50
|
-
"serve-content": "~0.3.
|
|
46
|
+
"mini-tools": "~1.12.0",
|
|
47
|
+
"require-bro": "~0.3.1",
|
|
48
|
+
"serve-content": "~0.3.18"
|
|
51
49
|
},
|
|
52
50
|
"engines": {
|
|
53
51
|
"node": ">= 8"
|