UNPKG

@ireceipt.pro/js

Version:

Create PDF files or images (JPG, PNG, WEBP) from your HTML template.

40 lines (39 loc) 1.18 kB
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; };