mirror of
https://github.com/jakejarvis/sofa.git
synced 2026-08-29 03:55:38 -04:00
fix: remove @sofa/core and @sofa/api deps from public-api to fix Vercel runtime compatibility
- Drop `@sofa/core` and `@sofa/api` from `apps/public-api` — importing workspace packages with DB/Node dependencies broke the Vercel edge runtime - `fetchUserData` on Trakt and Simkl importers now returns raw `unknown` API responses; parsing is deferred to the self-hosted server - Add `source` + `rawPayload` fields to `ParsePayloadInput`; `parsePayload` procedure now dispatches to `parseTraktPayload`/`parseSimklPayload` and returns full warnings + diagnostics - Export `ProviderEnum` from `apps/public-api/src/importers/index.ts` instead of defining it inline in `app.ts`
This commit is contained in:
@@ -3,7 +3,6 @@ import { ORPCError } from "@orpc/server";
|
||||
import { AppErrorCode } from "@sofa/api/errors";
|
||||
import type { ParseResult } from "@sofa/core/imports";
|
||||
import {
|
||||
countUnresolved,
|
||||
getActiveImportJobForUser,
|
||||
insertImportJob,
|
||||
parseLetterboxdExport,
|
||||
@@ -87,17 +86,27 @@ export const parseFile = os.imports.parseFile.use(authed).handler(async ({ input
|
||||
});
|
||||
|
||||
export const parsePayload = os.imports.parsePayload.use(authed).handler(({ input }) => {
|
||||
const { data } = input;
|
||||
const { source, rawPayload } = input;
|
||||
|
||||
let result: ParseResult;
|
||||
switch (source) {
|
||||
case "trakt":
|
||||
result = parseTraktPayload(rawPayload as Parameters<typeof parseTraktPayload>[0]);
|
||||
break;
|
||||
case "simkl":
|
||||
result = parseSimklPayload(rawPayload as Parameters<typeof parseSimklPayload>[0]);
|
||||
break;
|
||||
}
|
||||
|
||||
return {
|
||||
data,
|
||||
warnings: [],
|
||||
diagnostics: { unresolved: countUnresolved(data), unsupported: 0 },
|
||||
data: result.data,
|
||||
warnings: result.warnings,
|
||||
diagnostics: result.diagnostics,
|
||||
stats: {
|
||||
movies: data.movies.length,
|
||||
episodes: data.episodes.length,
|
||||
watchlist: data.watchlist.length,
|
||||
ratings: data.ratings.length,
|
||||
movies: result.data.movies.length,
|
||||
episodes: result.data.episodes.length,
|
||||
watchlist: result.data.watchlist.length,
|
||||
ratings: result.data.ratings.length,
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user