UNPKG

@mic-rexjs/usecases

Version:
75 lines (74 loc) 2.98 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.rejectedErrorUseCase = void 0; var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _createUseCase = require("../../methods/createUseCase"); var rejectedErrorUseCase = exports.rejectedErrorUseCase = (0, _createUseCase.createUseCase)(function () { var initOptions = {}; return function () { var initRejectedError = function initRejectedError(options) { initOptions = options; }; var reject = function reject(code, msg, data) { var _initOptions$onReject, _initOptions; var error = { code: code, msg: msg, data: data, content: (0, _typeof2["default"])(data) === 'object' && (data === null || data === void 0 ? void 0 : data.toString) === Object.prototype.toString ? JSON.stringify(data) : "".concat(data instanceof Error ? data.stack : data) }; (_initOptions$onReject = (_initOptions = initOptions).onReject) === null || _initOptions$onReject === void 0 || _initOptions$onReject.call(_initOptions, error); return Promise.reject(error); }; var rejectCode = function rejectCode(code) { return reject(code, '', null); }; var rejectMsg = function rejectMsg(code, msg) { return reject(code, msg, null); }; var rejectData = function rejectData(code, data) { return reject(code, '', data); }; var resolve = function resolve(target, rejectedCode, rejectedMsg) { return resolveWith(target, function (res) { return res; }, rejectedCode, rejectedMsg); }; var resolveId = function resolveId(target, rejectedMsg) { return resolveWith(target, function (unsafedId) { if (unsafedId) { return unsafedId; } throw unsafedId; }, rejectedMsg); }; var resolveNonNullable = function resolveNonNullable(target, rejectedCode) { var rejectedMsg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; var isNullable = typeof target === 'undefined' || target === null; if (isNullable) { return rejectMsg(rejectedCode, rejectedMsg); } return resolve(target, rejectedCode, rejectedMsg); }; var resolveWith = function resolveWith(target, onFulfilled, rejectedCode) { var rejectedMsg = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ''; return Promise.resolve(target).then(onFulfilled)["catch"](function (error) { return reject(rejectedCode, rejectedMsg, error); }); }; return { initRejectedError: initRejectedError, reject: reject, rejectCode: rejectCode, rejectData: rejectData, rejectMsg: rejectMsg, resolve: resolve, resolveId: resolveId, resolveNonNullable: resolveNonNullable, resolveWith: resolveWith }; }; });