feat: Implemented download page for downloading roms from various sources using plugins. Added support for internet archive external plugin. feat: Added tasks page to track running tasks/downloads feat: Added tanstack caching feat: Added quick play action Fixes #6 feat: Added quick emulator launch action fix: Made task queue only support 1 task per group and task ID should now be unique
30 lines
No EOL
814 B
TypeScript
30 lines
No EOL
814 B
TypeScript
import { DownloadJobData } from "@simeonradivoev/gameflow-sdk/shared";
|
|
import { IJob, JobContext } from "@simeonradivoev/gameflow-sdk/task-queue";
|
|
import { sleep } from "bun";
|
|
|
|
export class TestDownloadJob implements IJob<DownloadJobData, string>
|
|
{
|
|
data: DownloadJobData = {
|
|
speed: 1686,
|
|
downloaded: 0,
|
|
total: 6615841,
|
|
name: "Test Download Job"
|
|
};
|
|
|
|
group = "test-download";
|
|
|
|
async start (context: JobContext<IJob<DownloadJobData, string>, DownloadJobData, string>): Promise<any>
|
|
{
|
|
for (let i = 0; i < 10; i++)
|
|
{
|
|
await sleep(1000);
|
|
context.setProgress(i / 10 * 100, 'download');
|
|
if (context.abortSignal.aborted) return;
|
|
}
|
|
}
|
|
exposeData (): DownloadJobData
|
|
{
|
|
return this.data;
|
|
}
|
|
|
|
} |