implemented new shared-traverser on browser

This commit is contained in:
Felix Kaspar
2023-10-22 01:11:17 +02:00
parent 26cdb1d04f
commit f6b4479200
7 changed files with 169 additions and 324 deletions

View File

@@ -2,12 +2,15 @@ import { scaleContent } from "./functions/scaleContent.js";
import { scalePage, PageSize } from "./functions/scalePage.js";
import * as exampleWorkflows from "./exampleWorkflows.js";
import { traverseOperations } from "./traverseOperations.js";
import * as Functions from "./functions.js";
(async (workflow) => {
const pdfFileInput = document.getElementById('pdfFile');
const doneButton = document.getElementById("doneButton");
doneButton.addEventListener('click', async (e) => {
console.log("Starting...");
const files = Array.from(pdfFileInput.files);
console.log(files);
const inputs = await Promise.all(files.map(async file => {
@@ -19,10 +22,21 @@ import { traverseOperations } from "./traverseOperations.js";
}));
console.log(inputs);
// TODO: This can also be run serverside
const results = await traverseOperations(workflow.operations, inputs);
const traverse = traverseOperations(workflow.operations, inputs, Functions);
let pdfResults;
let iteration;
while (true) {
iteration = await traverse.next();
if (iteration.done) {
pdfResults = iteration.value;
console.log(`data: processing done\n\n`);
break;
}
console.log(`data: ${iteration.value}\n\n`);
}
results.forEach(result => {
pdfResults.forEach(result => {
download(result.buffer, result.fileName, "application/pdf");
});
});