UNPKG

lugger

Version:

Lugger is an automation framework running on customizable Typescript DSL

183 lines 7.08 kB
"use strict"; var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.http__ = exports.http = void 0; const ts_dsl_1 = require("ts-dsl"); const axios_1 = __importDefault(require("axios")); const express_1 = __importDefault(require("express")); const ts_basis_1 = require("ts-basis"); const http_model_1 = require("./http.model"); class httpModel { static get(...args) { (0, ts_dsl_1.dslIfaceGuard)('lugger:http:get', __filename); return null; } static post(...args) { (0, ts_dsl_1.dslIfaceGuard)('lugger:http:post', __filename); return null; } static put(...args) { (0, ts_dsl_1.dslIfaceGuard)('lugger:http:put', __filename); return null; } static delete(...args) { (0, ts_dsl_1.dslIfaceGuard)('lugger:http:delete', __filename); return null; } static options(...args) { (0, ts_dsl_1.dslIfaceGuard)('lugger:http:options', __filename); return null; } static getContent(...args) { (0, ts_dsl_1.dslIfaceGuard)('lugger:http:getContent', __filename); return null; } static server(...args) { (0, ts_dsl_1.dslIfaceGuard)('lugger:http:server', __filename); return null; } } httpModel.finalizer = (_a = class { }, __setFunctionName(_a, "finalizer"), _a.express = http_model_1.HttpFinalizerExpress, _a); exports.http = httpModel; function httpModel__(cce, ...args) { const { url, config } = getHttpRequestArgs(args); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:http:http', { data: { url, config } }, async (resolve, reject, scopeContext) => { try { return resolve(await axios_1.default.get(url, config)); } catch (e) { reject(convertAxiosError(e)); } }); } httpModel__.get = (cce, ...args) => { const { url, config } = getHttpRequestArgs(args); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:http:http.get', { data: { url, config } }, async (resolve, reject, scopeContext) => { try { resolve(await axios_1.default.get(url, config)); } catch (e) { reject(convertAxiosError(e)); } }); }; httpModel__.head = (cce, ...args) => { const { url, config } = getHttpRequestArgs(args); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:http:http.head', { data: { url, config } }, async (resolve, reject, scopeContext) => { try { resolve(await axios_1.default.head(url, config)); } catch (e) { reject(convertAxiosError(e)); } }); }; httpModel__.post = (cce, ...args) => { const { url, config } = getHttpRequestArgs(args); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:http:http.post', { data: { url, config } }, async (resolve, reject, scopeContext) => { try { resolve(await axios_1.default.post(url, config.data, config)); } catch (e) { reject(convertAxiosError(e)); } }); }; httpModel__.put = (cce, ...args) => { const { url, config } = getHttpRequestArgs(args); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:http:http.put', { data: { url, config } }, async (resolve, reject, scopeContext) => { try { resolve(await axios_1.default.put(url, config.data, config)); } catch (e) { reject(convertAxiosError(e)); } }); }; httpModel__.patch = (cce, ...args) => { const { url, config } = getHttpRequestArgs(args); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:http:http.patch', { data: { url, config } }, async (resolve, reject, scopeContext) => { try { resolve(await axios_1.default.patch(url, config.data, config)); } catch (e) { reject(convertAxiosError(e)); } }); }; httpModel__.delete = (cce, ...args) => { const { url, config } = getHttpRequestArgs(args); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:http:http.delete', { data: { url, config } }, async (resolve, reject, scopeContext) => { try { resolve(await axios_1.default.delete(url, config)); } catch (e) { reject(convertAxiosError(e)); } }); }; httpModel__.finalizer = { express: (cce, ...args) => { return (0, http_model_1.HttpFinalizerExpress)(args[0], args[1]); } }; httpModel__.server = (cce, ...args) => { const port = parseInt(args[0], 10); let type = args[1]; if (!type) { type = 'express'; } return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:http:http.server', { data: { port } }, async (resolve, reject, scopeContext) => { try { if (type === 'express') { const app = (0, express_1.default)(); app.start = () => { return (0, ts_basis_1.promise)(resolve2 => { app.server = app.listen(port, () => { resolve2(app); }); }); }; app.stop = () => { return (0, ts_basis_1.promise)(async (resolve2, reject2) => { if (!app.server) { return reject2(new Error(`cannot stop a server that has never started.`)); } app.server.close(e => { if (e) { return reject2(e); } return resolve(app); }); return resolve2(); }); }; return resolve(app); } } catch (e) { reject(e); } }); }; exports.http__ = httpModel__; function getHttpRequestArgs(args) { const arg0 = args[0]; if (typeof arg0 === 'string') { return { url: arg0, config: (args[1] ? args[1] : {}), }; } else { return { url: arg0.url, config: arg0, }; } } function convertAxiosError(axiosE) { var _a; const e = new Error(`[${axiosE.code}] ${axiosE.message}`); e.codeName = axiosE.code; e.code = (_a = axiosE.response) === null || _a === void 0 ? void 0 : _a.status; e.getResponse = () => axiosE.response; e.getOriginalError = () => axiosE; return e; } function couldBeJSON(data) { data = data.trim(); return ((data.startsWith('{') && data.startsWith('}')) || (data.startsWith('[') && data.startsWith(']'))); } //# sourceMappingURL=http.js.map