From b029e638de618d67b567428d759c76cd5f3c1127 Mon Sep 17 00:00:00 2001 From: mrjvs Date: Fri, 29 Dec 2023 21:49:56 +0100 Subject: [PATCH 1/3] Update provider package and bump version --- package.json | 4 ++-- pnpm-lock.yaml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 20b30e2..223be08 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "providers-api", - "version": "1.0.0", + "version": "1.0.1", "private": true, "type": "module", "scripts": { @@ -10,7 +10,7 @@ "preinstall": "npx only-allow pnpm" }, "dependencies": { - "@movie-web/providers": "^1.1.5", + "@movie-web/providers": "^2.0.1", "@tsndr/cloudflare-worker-jwt": "^2.3.2", "@types/jsonwebtoken": "^9.0.5", "esbuild": "^0.19.10", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c0d229b..b8b0b37 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,8 +6,8 @@ settings: dependencies: '@movie-web/providers': - specifier: ^1.1.5 - version: 1.1.5 + specifier: ^2.0.1 + version: 2.0.1 '@tsndr/cloudflare-worker-jwt': specifier: ^2.3.2 version: 2.3.2 @@ -623,8 +623,8 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /@movie-web/providers@1.1.5: - resolution: {integrity: sha512-JnqU6nVsEZ83UVcsizqzcr/vtwvHHlZt9vYwGiJEAyaUgaXJPZz3C90qzaRZ8CVWydUTRAmjRP3daRFtC1nKHw==} + /@movie-web/providers@2.0.1: + resolution: {integrity: sha512-PB1OxSsm4zwD6fuWBCmuqwMpt1UnlKssVZ8jGl6gHioS9/qFXR9Rsd8SnWISQWxF6lVRUp0DBXHfCrXGY/jwhA==} dependencies: cheerio: 1.0.0-rc.12 crypto-js: 4.2.0 From 794a4fe02c1d2e91143acd08ba209a0c6f0de086 Mon Sep 17 00:00:00 2001 From: mrjvs Date: Fri, 29 Dec 2023 22:06:31 +0100 Subject: [PATCH 2/3] Error handling --- src/index.ts | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/src/index.ts b/src/index.ts index d3edff0..c6b4ddf 100644 --- a/src/index.ts +++ b/src/index.ts @@ -61,6 +61,10 @@ async function writeSSEEvent( }); } +function stringifyError(err: any): any { + return err ? { name: err.name, message: err.message, stack: err.stack } : undefined; +} + app.get('/scrape', async (context) => { const queryParams = context.req.query(); @@ -112,7 +116,11 @@ app.get('/scrape', async (context) => { writeSSEEvent(stream, 'start', evt); }, update(evt) { - writeSSEEvent(stream, 'update', evt); + const err = evt.error as any; + writeSSEEvent(stream, 'update', { + ...evt, + error: stringifyError(evt.error), + }); }, }, }); @@ -125,11 +133,7 @@ app.get('/scrape', async (context) => { await writeSSEEvent(stream, 'noOutput', ''); return await stream.close(); } catch (e: any) { - await writeSSEEvent(stream, 'error', { - name: e.name, - message: e.message, - stack: e.stack, - }); + await writeSSEEvent(stream, 'error', stringifyError(e) ?? {}); return await stream.close(); } }); @@ -177,7 +181,10 @@ app.get('/scrape/embed', async (context) => { url: embedInput.url, events: { update(evt) { - writeSSEEvent(stream, 'update', evt); + writeSSEEvent(stream, 'update', { + ...evt, + error: stringifyError(evt.error), + }); }, }, }); @@ -190,11 +197,7 @@ app.get('/scrape/embed', async (context) => { await writeSSEEvent(stream, 'noOutput', ''); return await stream.close(); } catch (e: any) { - await writeSSEEvent(stream, 'error', { - name: e.name, - message: e.message, - stack: e.stack, - }); + await writeSSEEvent(stream, 'error', stringifyError(e) ?? {}); return await stream.close(); } }); @@ -242,7 +245,10 @@ app.get('/scrape/source', async (context) => { media: sourceInput, events: { update(evt) { - writeSSEEvent(stream, 'update', evt); + writeSSEEvent(stream, 'update', { + ...evt, + error: stringifyError(evt.error), + }); }, }, }); @@ -255,11 +261,7 @@ app.get('/scrape/source', async (context) => { await writeSSEEvent(stream, 'noOutput', ''); return await stream.close(); } catch (e: any) { - await writeSSEEvent(stream, 'error', { - name: e.name, - message: e.message, - stack: e.stack, - }); + await writeSSEEvent(stream, 'error', stringifyError(e) ?? {}); return await stream.close(); } }); From 1058c7fc328d8c3ab74e65d189328834bd6583c9 Mon Sep 17 00:00:00 2001 From: mrjvs Date: Fri, 29 Dec 2023 22:09:02 +0100 Subject: [PATCH 3/3] Rename method --- src/index.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/index.ts b/src/index.ts index c6b4ddf..8b4a32c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -61,7 +61,7 @@ async function writeSSEEvent( }); } -function stringifyError(err: any): any { +function makeErrorDto(err: any): any { return err ? { name: err.name, message: err.message, stack: err.stack } : undefined; } @@ -119,7 +119,7 @@ app.get('/scrape', async (context) => { const err = evt.error as any; writeSSEEvent(stream, 'update', { ...evt, - error: stringifyError(evt.error), + error: makeErrorDto(evt.error), }); }, }, @@ -133,7 +133,7 @@ app.get('/scrape', async (context) => { await writeSSEEvent(stream, 'noOutput', ''); return await stream.close(); } catch (e: any) { - await writeSSEEvent(stream, 'error', stringifyError(e) ?? {}); + await writeSSEEvent(stream, 'error', makeErrorDto(e) ?? {}); return await stream.close(); } }); @@ -183,7 +183,7 @@ app.get('/scrape/embed', async (context) => { update(evt) { writeSSEEvent(stream, 'update', { ...evt, - error: stringifyError(evt.error), + error: makeErrorDto(evt.error), }); }, }, @@ -197,7 +197,7 @@ app.get('/scrape/embed', async (context) => { await writeSSEEvent(stream, 'noOutput', ''); return await stream.close(); } catch (e: any) { - await writeSSEEvent(stream, 'error', stringifyError(e) ?? {}); + await writeSSEEvent(stream, 'error', makeErrorDto(e) ?? {}); return await stream.close(); } }); @@ -247,7 +247,7 @@ app.get('/scrape/source', async (context) => { update(evt) { writeSSEEvent(stream, 'update', { ...evt, - error: stringifyError(evt.error), + error: makeErrorDto(evt.error), }); }, }, @@ -261,7 +261,7 @@ app.get('/scrape/source', async (context) => { await writeSSEEvent(stream, 'noOutput', ''); return await stream.close(); } catch (e: any) { - await writeSSEEvent(stream, 'error', stringifyError(e) ?? {}); + await writeSSEEvent(stream, 'error', makeErrorDto(e) ?? {}); return await stream.close(); } });