MCPcopy Create free account
hub / github.com/VemtoOrg/vemto2 / HandleRenderableFileQueue

Function HandleRenderableFileQueue

src/main/RenderableFileQueueHandler.ts:10–144  ·  view source on GitHub ↗
(mainWindow: BrowserWindow)

Source from the content-addressed store, hash-verified

8import BackgroundInternalFiles from "./base/BackgroundInternalFiles"
9
10export function HandleRenderableFileQueue(mainWindow: BrowserWindow) {
11 let project = null,
12 generating = false
13
14 setInterval(() => {
15 if (generating) return
16
17 project = Project.find(1)
18
19 if(project === null) return
20
21 generateOrRemoveFiles()
22 }, 1000)
23
24 const generateOrRemoveFiles = async () => {
25 if (project.renderableFiles.length === 0) return
26
27 const pendingFiles = project.getAllPendingRenderableFiles()
28
29 if (pendingFiles.length === 0) return
30
31 console.log("Processing files...")
32
33 generating = true
34
35 for (let i = 0; i < pendingFiles.length; i++) {
36 const file = pendingFiles[i]
37
38 if(file.canBeRemoved()) {
39 await removeFile(file)
40 continue
41 }
42
43 await processFile(file)
44 }
45
46 generating = false
47
48 console.log("Finished processing files")
49
50 updateModelData("Project", project.id, {
51 filesQueueStatus: ProjectFilesQueueStatus.IDLE
52 })
53 }
54
55 const removeFile = async (file: RenderableFile) => {
56 console.log("Will remove file: ", file.getRelativeFilePath())
57
58 try {
59 if (projectPathIsInvalid()) {
60 throw new Error("Project path is invalid or attempt to access a restricted directory")
61 }
62
63 const resolvedProjectPath = path.resolve(project.getPath()),
64 filePath = path.resolve(
65 path.join(resolvedProjectPath, file.getRelativeFilePath())
66 )
67

Callers 1

createWindowFunction · 0.90

Calls 2

generateOrRemoveFilesFunction · 0.85
findMethod · 0.80

Tested by

no test coverage detected