@hsui/sdk
Version:
Hundsun frontend framework JSSDK
284 lines (282 loc) • 10.8 kB
JavaScript
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
import { ajaxSchema, storageSchema, report, runningError, validate, isPlainObject } from './utils';
export function setConfig() {
// 无需实现
}
export function ajax(_x) {
return _ajax.apply(this, arguments);
}
function _ajax() {
_ajax = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(options) {
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) {
case 0:
_context4.next = 2;
return new Promise(function (resolve, reject) {
var validationError = validate(ajaxSchema, options);
if (validationError) {
throw report('-1', validationError);
}
var url = options.url,
_options$method = options.method,
method = _options$method === void 0 ? 'post' : _options$method,
_options$data = options.data,
data = _options$data === void 0 ? {} : _options$data,
_options$timeout = options.timeout,
timeout = _options$timeout === void 0 ? 5000 : _options$timeout,
_options$headers = options.headers,
headers = _options$headers === void 0 ? {} : _options$headers;
var requestConfig = {
url: url,
method: method,
data: data,
timeout: timeout,
headers: headers // request headers
};
try {
usdk.sendAsync(requestConfig, function (result) {
if (result) {
var _JSON$parse = JSON.parse(result),
_data = _JSON$parse.data,
info = _JSON$parse.info;
if (info) {
var error_code = info.error_code,
error_message = info.error_message;
if (error_code == 0) {
if (_data) {
_data = JSON.parse(_data); // 这里需要再做一次转换
var _result4 = {};
if (options.forceWrappedInData) {
_result4.data = _data;
} else {
_result4 = _data;
}
if (isPlainObject(_result4)) {
// request config
if (options.includeRequestConfig) {
_result4.config = requestConfig;
}
}
resolve(_result4);
} else {
reject(report('-1', runningError('INVALID_KEY', {
key: 'data'
})));
}
} else {
reject(report(error_code, error_message));
}
} else {
reject(report('-1', runningError('INVALID_KEY', {
key: 'info'
})));
}
} else {
reject(report('-1', runningError('INVALID_SDK_CALL', {
method: 'sendAsync'
})));
}
});
} catch (error) {
reject(report('-1', runningError('INVALID_SDK_CALL', {
method: 'sendAsync'
})));
}
});
case 2:
return _context4.abrupt("return", _context4.sent);
case 3:
case "end":
return _context4.stop();
}
}, _callee4);
}));
return _ajax.apply(this, arguments);
}
export var storage = {
setData: function setData(options) {
return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
return _regeneratorRuntime().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return new Promise(function (resolve, reject) {
var validationError = validate(storageSchema, options);
if (validationError) {
throw report('-1', validationError);
}
var key = options.key,
value = options.value,
scope = options.scope;
try {
usdk.writeData({
key: key,
value: value,
scope: scope
}, function (result) {
if (result) {
result = JSON.parse(result);
var _result = result,
data = _result.data,
info = _result.info;
if (info) {
var error_code = info.error_code,
error_message = info.error_message;
if (error_code == 0) {
resolve();
} else {
reject(report(error_code, error_message));
}
} else {
reject(report('-1', runningError('INVALID_KEY', {
key: 'info'
})));
}
} else {
reject(report('-1', runningError('INVALID_SDK_CALL', {
method: 'writeData'
})));
}
});
} catch (error) {
reject(report('-1', runningError('INVALID_SDK_CALL', {
method: 'writeData'
})));
}
});
case 2:
return _context.abrupt("return", _context.sent);
case 3:
case "end":
return _context.stop();
}
}, _callee);
}))();
},
getData: function getData(options) {
return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return new Promise(function (resolve, reject) {
var validationError = validate(storageSchema, options);
if (validationError) {
throw report('-1', validationError);
}
var key = options.key,
scope = options.scope;
try {
usdk.readData({
key: key,
scope: scope
}, function (result) {
if (result) {
result = JSON.parse(result);
var _result2 = result,
data = _result2.data,
info = _result2.info;
if (info) {
var error_code = info.error_code,
error_message = info.error_message;
if (error_code == 0) {
if (data) {
try {
data = JSON.parse(data);
} catch (error) {
// may not be a json string
}
resolve(data);
} else {
reject(report('-1', runningError('INVALID_KEY', {
key: 'data'
})));
}
} else {
reject(report(error_code, error_message));
}
} else {
reject(report('-1', runningError('INVALID_KEY', {
key: 'info'
})));
}
} else {
reject(report('-1', runningError('INVALID_SDK_CALL', {
method: 'readData'
})));
}
});
} catch (error) {
reject(report('-1', runningError('INVALID_SDK_CALL', {
method: 'readData'
})));
}
});
case 2:
return _context2.abrupt("return", _context2.sent);
case 3:
case "end":
return _context2.stop();
}
}, _callee2);
}))();
},
deleteData: function deleteData(options) {
return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
_context3.next = 2;
return new Promise(function (resolve, reject) {
var validationError = validate(storageSchema, options);
if (validationError) {
throw report('-1', validationError);
}
var key = options.key,
scope = options.scope;
try {
usdk.deleteData({
key: key,
scope: scope
}, function (result) {
if (result) {
result = JSON.parse(result);
var _result3 = result,
data = _result3.data,
info = _result3.info;
if (info) {
var error_code = info.error_code,
error_message = info.error_message;
if (error_code == 0) {
resolve();
} else {
reject(report(error_code, error_message));
}
} else {
reject(report('-1', runningError('INVALID_KEY', {
key: 'info'
})));
}
} else {
reject(report('-1', runningError('INVALID_SDK_CALL', {
method: 'deleteData'
})));
}
});
} catch (error) {
reject(report('-1', runningError('INVALID_SDK_CALL', {
method: 'deleteData'
})));
}
});
case 2:
return _context3.abrupt("return", _context3.sent);
case 3:
case "end":
return _context3.stop();
}
}, _callee3);
}))();
}
};