feat(housekeeping): integrate studio operations
CI / check (pull_request) Successful in 38s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped

This commit is contained in:
Simo committed 2026-08-30 15:29:58 +02:00
1 parent 020c06f172
commit 2e95a106e0
36 files changed
+2296 -60

No files matched your search

+9 -2
View File
@@ -76,8 +76,10 @@ export async function importSingleEffect(params: {
type: string;
revision: number;
onProgress?: (status: string) => void;
signal?: AbortSignal;
}): Promise<ImportEffectResult> {
const { id, lib, type, revision, onProgress } = params;
const { id, lib, type, revision, onProgress, signal } = params;
signal?.throwIfAborted();
const warnings: string[] = [];
await ensureEffectDirs();
@@ -100,7 +102,10 @@ export async function importSingleEffect(params: {
error: `Could not resolve SWF URL: ${(err as Error).message}`,
};
}
const dl = await downloadFile(swfUrl, swfPath, { validate: "swf" });
const dl = await downloadFile(swfUrl, swfPath, {
validate: "swf",
signal,
});
if (!dl.ok)
return {
ok: false,
@@ -111,6 +116,7 @@ export async function importSingleEffect(params: {
// Convert SWF → Nitro
onProgress?.("converting");
signal?.throwIfAborted();
try {
const swfBuffer = await fs.readFile(/*turbopackIgnore: true*/ swfPath);
const result = convertSwfToNitro(swfBuffer, lib);
@@ -127,6 +133,7 @@ export async function importSingleEffect(params: {
// Merge EffectMap.json (last step — no orphan entry if anything above failed)
onProgress?.("writing_map");
signal?.throwIfAborted();
try {
const entry: EffectMapEntry = { id, lib, type, revision };
await mergeEffect(entry);