UNPKG

result-tsk

Version:
148 lines (147 loc) 5.95 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var _Result_headers, _Result_metadata; Object.defineProperty(exports, "__esModule", { value: true }); exports.Result = void 0; const ResultDto_1 = require("../ResultDto"); class Result { constructor() { _Result_headers.set(this, null); _Result_metadata.set(this, void 0); } setMetadata(metadata) { __classPrivateFieldSet(this, _Result_metadata, metadata, "f"); return this; } addMetadata(key, value) { if (!__classPrivateFieldGet(this, _Result_metadata, "f")) __classPrivateFieldSet(this, _Result_metadata, {}, "f"); __classPrivateFieldGet(this, _Result_metadata, "f")[key] = value; return this; } addHeader(name, value) { if (!__classPrivateFieldGet(this, _Result_headers, "f")) __classPrivateFieldSet(this, _Result_headers, {}, "f"); Reflect.set(__classPrivateFieldGet(this, _Result_headers, "f"), name, value); return this; } getHeaders() { return __classPrivateFieldGet(this, _Result_headers, "f"); } getMetadata() { return __classPrivateFieldGet(this, _Result_metadata, "f"); } hasMetadata() { return !!__classPrivateFieldGet(this, _Result_metadata, "f") && Object.keys(__classPrivateFieldGet(this, _Result_metadata, "f")).length > 0; } setStatusCode(statusCode, success) { this.statusCode = statusCode; this.success = success; return this; } getStatusCode() { return this.statusCode; } setMessage(message, statusCode) { this.message = message; this.statusCode = statusCode; this.success = true; return this; } setError(error, statusCode) { this.error = error; this.statusCode = statusCode; this.success = false; return this; } setSuccess() { this.success = true; } isSuccess() { return this.success; } fromResult(result) { this.error = result.error; this.message = result.message; this.statusCode = result.statusCode; this.success = result.success; return this; } hasError() { return !!this.error; } hasMessage() { return !!this.message; } hasData() { return !!this.data; } setOnlyData(data) { this.data = data; return this; } setData(data, statusCode, message) { this.data = data; this.statusCode = statusCode; this.success = true; if (message) { this.message = message; } return this; } execute(promise) { return __awaiter(this, void 0, void 0, function* () { const value = yield promise .then((execution) => { if (execution.error) { this.setError(execution.error, execution.statusCode); } return execution.value; }) .catch((error) => { console.error(`Error on result execute ${new Date().toISOString()}: ${JSON.stringify({ message: error.message, stack: error.stack })}`); const errorMessage = (error === null || error === void 0 ? void 0 : error.statusCode) ? `${error.message}` : `Unexpected application error on execute: ${error.message}`; const statusCode = (error === null || error === void 0 ? void 0 : error.statusCode) || 500; this.setError(errorMessage, statusCode); return null; }); return Object.assign(Object.assign({}, this), { value }); }); } toResultDto() { const result = new ResultDto_1.ResultDto(); result.error = this.error; result.message = this.message; result.data = this.data; return result; } static fromSuccess(data, statusCode) { const result = new Result(); result.setSuccess(); result.setData(data, statusCode); return result; } } exports.Result = Result; _Result_headers = new WeakMap(), _Result_metadata = new WeakMap();