Skip to content

Commit 10a69ea

Browse files
committed
更新 Dist 中的代码
1 parent 34f42a7 commit 10a69ea

34 files changed

+11570
-3230
lines changed

dist/av-es6.js

Lines changed: 675 additions & 179 deletions
Large diffs are not rendered by default.

dist/av-min.js

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/av.js

Lines changed: 10546 additions & 2914 deletions
Large diffs are not rendered by default.

dist/node/acl.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
/**
2+
* 每位工程师都有保持代码优雅的义务
3+
* Each engineer has a duty to keep the code elegant
4+
**/
5+
16
'use strict';
27

38
var _ = require('underscore');

dist/node/av-browser.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
/**
2+
* 每位工程师都有保持代码优雅的义务
3+
* Each engineer has a duty to keep the code elegant
4+
**/
5+
16
'use strict';
27

38
var AV = require('./av');

dist/node/av.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,24 @@
77
* The AVOS Cloud JavaScript SDK is freely distributable under the MIT license.
88
*/
99

10+
/**
11+
* 每位工程师都有保持代码优雅的义务
12+
* Each engineer has a duty to keep the code elegant
13+
**/
14+
1015
'use strict';
1116

1217
var AV = module.exports = {};
1318
AV._ = require('underscore');
1419
AV.version = require('./version');
1520
AV.Promise = require('./promise');
1621
AV.localStorage = require('./localstorage');
22+
1723
// 挂载所有内部配置项
1824
AV._config = AV._config || {};
1925

2026
// 以下模块为了兼容原有代码,使用这种加载方式。
21-
require('./utils')(AV);
27+
require('./utils').init(AV);
2228
require('./error')(AV);
2329
require('./event')(AV);
2430
require('./geopoint')(AV);
Lines changed: 65 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,49 @@
1-
"use strict";
1+
/**
2+
* 每位工程师都有保持代码优雅的义务
3+
* Each engineer has a duty to keep the code elegant
4+
**/
25

3-
var Promise = require('../promise');
6+
'use strict';
47

5-
module.exports = function _ajax(method, url, data, success, error) {
8+
var AVPromise = require('../promise');
9+
var md5 = require('md5');
10+
11+
// 计算 X-LC-Sign 的签名方法
12+
var sign = function sign(key, isMasterKey) {
13+
var now = new Date().getTime();
14+
var signature = md5(now + key);
15+
if (isMasterKey) {
16+
return signature + ',' + now + ',master';
17+
} else {
18+
return signature + ',' + now;
19+
}
20+
};
21+
22+
var ajax = function ajax(method, url, data, success, error) {
23+
var AV = global.AV;
24+
25+
var promise = new AVPromise();
626
var options = {
727
success: success,
828
error: error
929
};
1030

11-
if (useXDomainRequest()) {
12-
return ajaxIE8(method, url, data)._thenRunCallbacks(options);
31+
var appId = AV.applicationId;
32+
var appKey = AV.applicationKey;
33+
var masterKey = AV.masterKey;
34+
35+
// 清理原来多余的数据(如果不清理,会污染数据表)
36+
if (data) {
37+
delete data._ApplicationId;
38+
delete data._ApplicationKey;
39+
delete data._ApplicationProduction;
40+
delete data._MasterKey;
41+
delete data._ClientVersion;
42+
delete data._InstallationId;
1343
}
1444

15-
var promise = new Promise();
1645
var handled = false;
17-
18-
var xhr = new XMLHttpRequest();
46+
var xhr = new global.XMLHttpRequest();
1947
xhr.onreadystatechange = function () {
2048
if (xhr.readyState === 4) {
2149
if (handled) {
@@ -24,7 +52,7 @@ module.exports = function _ajax(method, url, data, success, error) {
2452
handled = true;
2553

2654
if (xhr.status >= 200 && xhr.status < 300) {
27-
var response;
55+
var response = undefined;
2856
try {
2957
response = JSON.parse(xhr.responseText);
3058
} catch (e) {
@@ -40,50 +68,35 @@ module.exports = function _ajax(method, url, data, success, error) {
4068
}
4169
}
4270
};
43-
xhr.open(method, url, true);
44-
xhr.setRequestHeader("Content-Type", "text/plain"); // avoid pre-flight.
45-
xhr.send(data);
46-
return promise._thenRunCallbacks(options);
47-
};
4871

49-
function useXDomainRequest() {
50-
if (typeof XDomainRequest !== "undefined") {
51-
// We're in IE 8+.
52-
if ('withCredentials' in new XMLHttpRequest()) {
53-
// We're in IE 10+.
54-
return false;
72+
if (method.toLowerCase() === 'get') {
73+
var i = 0;
74+
for (var k in data) {
75+
if (i === 0) {
76+
url = url + '?';
77+
} else {
78+
url = url + '&';
79+
}
80+
url = url + k + '=' + encodeURIComponent(JSON.stringify(data[k]));
81+
i++;
5582
}
56-
return true;
5783
}
58-
return false;
59-
}
6084

61-
function ajaxIE8(method, url, data) {
62-
var promise = new Promise();
63-
var xdr = new XDomainRequest();
64-
xdr.onload = function () {
65-
var response;
66-
try {
67-
response = JSON.parse(xdr.responseText);
68-
} catch (e) {
69-
promise.reject(e);
70-
}
71-
if (response) {
72-
promise.resolve(response);
73-
}
74-
};
75-
xdr.onerror = xdr.ontimeout = function () {
76-
// Let's fake a real error message.
77-
var fakeResponse = {
78-
responseText: JSON.stringify({
79-
code: AV.Error.X_DOMAIN_REQUEST,
80-
error: "IE's XDomainRequest does not supply error info."
81-
})
82-
};
83-
promise.reject(xdr);
84-
};
85-
xdr.onprogress = function () {};
86-
xdr.open(method, url);
87-
xdr.send(data);
88-
return promise;
89-
}
85+
xhr.open(method, url, true);
86+
xhr.setRequestHeader('X-LC-Id', appId);
87+
88+
var signature = undefined;
89+
if (masterKey) {
90+
signature = sign(masterKey, true);
91+
} else {
92+
signature = sign(appKey);
93+
}
94+
95+
xhr.setRequestHeader('X-LC-Sign', signature);
96+
xhr.setRequestHeader('X-LC-UA', 'LC-Web-' + AV.version);
97+
xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
98+
xhr.send(JSON.stringify(data));
99+
return promise._thenRunCallbacks(options);
100+
};
101+
102+
module.exports = ajax;

dist/node/browserify-wrapper/ajax.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,28 @@
1+
/**
2+
* 每位工程师都有保持代码优雅的义务
3+
* Each engineer has a duty to keep the code elegant
4+
**/
5+
16
'use strict';
27

38
var http = require('http');
49
var https = require('https');
510
var url = require('url');
611

712
var Promise = require('../promise');
8-
var AV_VERSION = require('../version');
913

1014
// `keepAlive` option only work on Node.js 0.12+
1115
var httpAgent = new http.Agent({ keepAlive: true });
1216
var httpsAgent = new https.Agent({ keepAlive: true });
1317

1418
module.exports = function _ajax(method, resourceUrl, data, success, error) {
19+
if (method.toLowerCase() !== 'post') {
20+
data = data || {};
21+
data._method = method;
22+
method = 'post';
23+
}
24+
data = JSON.stringify(data);
25+
1526
var parsedUrl = url.parse(resourceUrl);
1627
var promise = new Promise();
1728

@@ -32,7 +43,7 @@ module.exports = function _ajax(method, resourceUrl, data, success, error) {
3243
agent: transportAgent,
3344
headers: {
3445
'Content-Type': 'text/plain',
35-
'User-Agent': 'AV/' + AV_VERSION + ' (Node.js' + process.version + ')'
46+
'User-Agent': 'AV/' + AV.version + ' (Node.js' + process.version + ')'
3647
}
3748
});
3849

dist/node/browserify-wrapper/localStorage.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
/**
2+
* 每位工程师都有保持代码优雅的义务
3+
* Each engineer has a duty to keep the code elegant
4+
**/
5+
16
'use strict';
27

38
var Storage = require('localstorage-memory');

dist/node/browserify-wrapper/localstorage-browser.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
/**
2+
* 每位工程师都有保持代码优雅的义务
3+
* Each engineer has a duty to keep the code elegant
4+
**/
5+
16
'use strict';
27

38
var _ = require('underscore');

0 commit comments

Comments
 (0)