Files
Stirling-PDF/frontend/src/core/services/fileStubHelpers.ts
T
James BruntonandGitHub d2b38ef4b8 Restructure frontend code to allow for extensions (#4721)
# Description of Changes
Move frontend code into `core` folder and add infrastructure for
`proprietary` folder to include premium, non-OSS features
2025-10-28 10:29:36 +00:00

35 lines
1.1 KiB
TypeScript

import { StirlingFile, StirlingFileStub } from '@app/types/fileContext';
import { createChildStub, generateProcessedFileMetadata } from '@app/contexts/file/fileActions';
import { createStirlingFile } from '@app/types/fileContext';
import { ToolId } from '@app/types/toolId';
/**
* Create StirlingFiles and StirlingFileStubs from exported files
* Used when saving page editor changes to create version history
*/
export async function createStirlingFilesAndStubs(
files: File[],
parentStub: StirlingFileStub,
toolId: ToolId
): Promise<{ stirlingFiles: StirlingFile[], stubs: StirlingFileStub[] }> {
const stirlingFiles: StirlingFile[] = [];
const stubs: StirlingFileStub[] = [];
for (const file of files) {
const processedFileMetadata = await generateProcessedFileMetadata(file);
const childStub = createChildStub(
parentStub,
{ toolId, timestamp: Date.now() },
file,
processedFileMetadata?.thumbnailUrl,
processedFileMetadata
);
const stirlingFile = createStirlingFile(file, childStub.id);
stirlingFiles.push(stirlingFile);
stubs.push(childStub);
}
return { stirlingFiles, stubs };
}