UNPKG

banggood-store

Version:

bang data store

154 lines (131 loc) 5.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ObservablePromiseModel = exports.promiseStatus = exports.REJECT_ACTION = exports.RESOLVE_ACTION = undefined; var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require("babel-runtime/helpers/createClass"); var _createClass3 = _interopRequireDefault(_createClass2); var _metadata = require("babel-runtime/core-js/reflect/metadata"); var _metadata2 = _interopRequireDefault(_metadata); var _defineProperty = require("babel-runtime/core-js/object/define-property"); var _defineProperty2 = _interopRequireDefault(_defineProperty); var _typeof2 = require("babel-runtime/helpers/typeof"); var _typeof3 = _interopRequireDefault(_typeof2); var _getOwnPropertyDescriptor = require("babel-runtime/core-js/object/get-own-property-descriptor"); var _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor); exports.observablePromise = observablePromise; var _rxjs = require("rxjs"); var _mobx = require("mobx"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = (0, _getOwnPropertyDescriptor2.default)(target, key) : desc, d; if ((typeof Reflect === "undefined" ? "undefined" : (0, _typeof3.default)(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) { if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; }return c > 3 && r && (0, _defineProperty2.default)(target, key, r), r; }; var __metadata = undefined && undefined.__metadata || function (k, v) { if ((typeof Reflect === "undefined" ? "undefined" : (0, _typeof3.default)(Reflect)) === "object" && typeof _metadata2.default === "function") return (0, _metadata2.default)(k, v); }; function observablePromise(data) { return new ObservablePromiseModel(data); } var RESOLVE_ACTION = exports.RESOLVE_ACTION = 'observableFromPromise-resolve'; var REJECT_ACTION = exports.REJECT_ACTION = 'observableFromPromise-reject'; var promiseStatus = exports.promiseStatus = { none: 'none', pending: 'pending', resolved: 'resolved', rejected: 'rejected', timeout: 'timeout', serverError: 'serverError', onLine: 'onLine' }; function getObservableState(data) { if (data && !(data instanceof _rxjs.Observable)) { if ((typeof data === "undefined" ? "undefined" : (0, _typeof3.default)(data)) === 'object') { if (data instanceof Array) { this.state = promiseStatus.resolved; this.data = data; } else if (data['status'] || data['message']) { if (data['status'] === 504) { this.state = promiseStatus.timeout; } else if (data['status'] === 500) { if (!data['onLine']) { this.state = promiseStatus.onLine; } else { this.state = promiseStatus.serverError; } } else { this.state = promiseStatus.rejected; } this.data = null; this.error = data['message']; } else { this.state = promiseStatus.resolved; this.data = data; } } } } var ObservablePromiseModel = exports.ObservablePromiseModel = function () { function ObservablePromiseModel(data) { var _this = this; (0, _classCallCheck3.default)(this, ObservablePromiseModel); // promise = null; this.state = promiseStatus.none; this.error = null; this.data = null; if (data instanceof _rxjs.Observable) { this.state = promiseStatus.pending; var subscription = data.subscribe({ next: (0, _mobx.action)(function (result) { getObservableState.call(_this, result); subscription.unsubscribe(); //return Object.assign({},this); }), error: function error(err) { console.log(err); } }); } getObservableState.call(this, data); } (0, _createClass3.default)(ObservablePromiseModel, [{ key: "isPending", get: function get() { return this.state === promiseStatus.pending; } }, { key: "isResolved", get: function get() { return this.state === promiseStatus.resolved; } }, { key: "isRejected", get: function get() { return this.state === promiseStatus.rejected; } }, { key: "isTimeout", get: function get() { return this.state === promiseStatus.timeout; } }, { key: "isServerError", get: function get() { return this.state === promiseStatus.serverError; } }, { key: "isOnLine", get: function get() { return this.state !== promiseStatus.onLine; } }]); return ObservablePromiseModel; }(); __decorate([_mobx.observable, __metadata("design:type", Object)], ObservablePromiseModel.prototype, "state", void 0); __decorate([_mobx.observable, __metadata("design:type", Object)], ObservablePromiseModel.prototype, "data", void 0);