@tyagoveras/node-mde
Version:
Biblioteca para consultar notas destinadas e enviar evento de manifestação do destinatário
66 lines (64 loc) • 1.94 kB
JavaScript
let axios = require("axios").default, https = require("https"), VERSION = require("../env").VERSION;
class Instance {
constructor(e) {
var {
baseURL: t,
ca: s,
cert: a,
key: r
} = e, a = Object.assign({
cert: a,
key: r,
ca: s,
rejectUnauthorized: !1
}, {
...e.httpsOptions
}), r = new https.Agent(a), s = {
"User-Agent": "node-mde/" + VERSION,
"Content-Type": "application/soap+xml; charset=utf-8"
}, a = Object.assign({}, s, e.requestOptions && e.requestOptions.headers || {}, e.headers || {}), s = Object.assign({
baseURL: t,
headers: a,
httpsAgent: r,
timeout: 6e4
}, {
...e.requestOptions
}), t = axios.create({
...s
});
this.instance = t;
}
async request(t) {
try {
t.headers ? t.headers = Object.assign({}, this.instance.defaults.headers, t.headers) : t.headers = {
...this.instance.defaults.headers
};
var {
status: s,
data: e
} = await this.instance(t);
return {
status: s,
data: e
};
} catch (e) {
return e.response ? ({
status: t,
data: s
} = e.response, {
status: t,
data: s
}) : e.request ? "ECONNABORTED" === e.code ? {
status: 504,
data: `<error>${e.message || e}</error>`
} : {
status: 502,
data: `<error>${e.message || e}</error>`
} : {
status: 500,
data: `<error>${e.message || e}</error>`
};
}
}
}
module.exports = Instance;