UNPKG

n8n-nodes-pdforge

Version:

Pdforge Automate PDF Generation in minutes using AI.Create custom PDF templates in seconds using our AI Agents, fine tune the design with our no-code builder and automate the PDF delivery with our native pdforge node inside n8n. No code or design experien

122 lines 5.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Pdforge = void 0; const HtmlToPdfDescription_1 = require("./descriptions/HtmlToPdfDescription"); const ImageDescription_1 = require("./descriptions/ImageDescription"); const TemplateFields_1 = require("./descriptions/TemplateFields"); const PdfDescription_1 = require("./descriptions/PdfDescription"); const SharedFields_1 = require("./descriptions/SharedFields"); const GenericFunctions_1 = require("./GenericFunctions"); class Pdforge { constructor() { this.description = { displayName: 'Pdforge', name: 'pdforge', icon: 'file:pdforge.svg', group: ['transform'], version: 1, subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}', description: 'Generate PDF or PNG with pdforge', defaults: { name: 'Pdforge', }, inputs: ["main"], outputs: ["main"], credentials: [ { name: 'pdforgeApi', required: true, }, ], requestDefaults: { baseURL: 'https://api.pdforge.com', headers: { Accept: 'application/json', 'Content-Type': 'application/json', }, }, properties: [ { displayName: 'Resource', name: 'resource', type: 'options', noDataExpression: true, options: [ { name: 'Generate PDF', value: 'pdf', }, { name: 'Generate Image', value: 'image', }, { name: 'Convert HTML to PDF', value: 'html-to-pdf', }, ], default: 'pdf', }, ...PdfDescription_1.pdfOperations, ...ImageDescription_1.imageOperations, ...HtmlToPdfDescription_1.htmlToPdfOperations, ...TemplateFields_1.templateFields, ...HtmlToPdfDescription_1.htmlToPdfFields, ...SharedFields_1.sharedFields, ], }; this.methods = { loadOptions: { async getTemplates() { const returnData = []; const { templates } = await GenericFunctions_1.pdforgeApiRequest.call(this, 'GET', '/integration', 'templates'); for (const template of templates) { returnData.push({ name: template.displayName, value: template.id, }); } return returnData; }, }, }; } async execute() { const items = this.getInputData(); const returnData = []; const length = items.length; let responseData; const resource = this.getNodeParameter('resource', 0); const operation = this.getNodeParameter('operation', 0); for (let itemIndex = 0; itemIndex < length; itemIndex++) { const templateId = resource !== 'html-to-pdf' && this.getNodeParameter('templateId', itemIndex, undefined); const variables = resource !== 'html-to-pdf' && this.getNodeParameter('variables', itemIndex, undefined); const data = resource !== 'html-to-pdf' && typeof variables === 'string' ? JSON.parse(variables) : variables; const html = resource === 'html-to-pdf' && this.getNodeParameter('html', itemIndex, undefined); const pdfParams = resource === 'html-to-pdf' && this.getNodeParameter('pdfParams', itemIndex, undefined); const webhook = operation === 'async' ? this.getNodeParameter('webhook', itemIndex, undefined) : undefined; const { s3_bucket, s3_key } = this.getNodeParameter('options', itemIndex, {}); const convertToImage = resource === 'image' ? true : false; const body = { templateId, convertToImage, html, pdfParams, webhook, s3_bucket, s3_key, data, }; const endpoint = resource === 'html-to-pdf' ? '/html-to-pdf' : '/pdf'; responseData = await GenericFunctions_1.pdforgeApiRequest.call(this, 'POST', endpoint, operation, body); returnData.push(responseData); } return [this.helpers.returnJsonArray(returnData)]; } } exports.Pdforge = Pdforge; //# sourceMappingURL=Pdforge.node.js.map