lugger
Version:
Lugger is an automation framework running on customizable Typescript DSL
183 lines • 7.08 kB
JavaScript
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
;