mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-08-27 06:39:24 +00:00

# Description of Changes <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing) for more details. --------- Co-authored-by: Reece Browne <you@example.com>
26 lines
882 B
TypeScript
26 lines
882 B
TypeScript
// Note: This utility should be used with useToolResources for ZIP operations
|
|
|
|
export type ResponseHandler = (blob: Blob, originalFiles: File[]) => Promise<File[]> | File[];
|
|
|
|
/**
|
|
* Processes a blob response into File(s).
|
|
* - If a tool-specific responseHandler is provided, it is used.
|
|
* - Otherwise, create a single file using the filePrefix + original name.
|
|
*/
|
|
export async function processResponse(
|
|
blob: Blob,
|
|
originalFiles: File[],
|
|
filePrefix: string,
|
|
responseHandler?: ResponseHandler
|
|
): Promise<File[]> {
|
|
if (responseHandler) {
|
|
const out = await responseHandler(blob, originalFiles);
|
|
return Array.isArray(out) ? out : [out as unknown as File];
|
|
}
|
|
|
|
const original = originalFiles[0]?.name ?? 'result.pdf';
|
|
const name = `${filePrefix}${original}`;
|
|
const type = blob.type || 'application/octet-stream';
|
|
return [new File([blob], name, { type })];
|
|
}
|