@ireceipt.pro/js
Version:
Create PDF files or images (JPG, PNG, WEBP) from your HTML template.
47 lines (46 loc) • 1.53 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createFile = void 0;
const axios_1 = __importDefault(require("axios"));
const constants_js_1 = require("../utils/constants.js");
const handleError_js_1 = require("../utils/handleError.js");
const createFile = async (apiKey, type, templateType, templateId, args, size) => {
let attempt = 1;
let buffer;
let error;
while (attempt <= 5 && !buffer) {
try {
const res = await axios_1.default.post(`${constants_js_1.apiUrl}${type}/${templateType}/${templateId}`, {
variables: args || {},
size,
}, {
headers: {
Authorization: `Bearer ${apiKey}`,
"User-Agent": "IReceipt PRO JS Library",
},
responseType: "arraybuffer",
});
if (res.status === 201) {
buffer = res.data;
}
else {
error = new Error(res.data);
}
}
catch (err) {
error = (0, handleError_js_1.handleError)(err);
}
attempt += 1;
if (!buffer)
await new Promise((res) => {
setTimeout(res, attempt * 1000);
});
}
if (!buffer)
throw error;
return buffer;
};
exports.createFile = createFile;