@mic-rexjs/usecases
Version:
Usecases of Clean Architecture
75 lines (74 loc) • 2.98 kB
JavaScript
;
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
};
};
});