@ireceipt.pro/js
Version:
Create PDF files or images (JPG, PNG, WEBP) from your HTML template.
40 lines (39 loc) • 1.18 kB
JavaScript
import axios from "axios";
import { apiUrl } from "../utils/constants.js";
import { handleError } from "../utils/handleError.js";
export 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.post(`${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 = handleError(err);
}
attempt += 1;
if (!buffer)
await new Promise((res) => {
setTimeout(res, attempt * 1000);
});
}
if (!buffer)
throw error;
return buffer;
};