UNPKG

@hsui/sdk

Version:

Hundsun frontend framework JSSDK

284 lines (282 loc) 10.8 kB
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); }))(); } };