From d60fa6e0849fe13538cffaf36bafec55bc1c6ff6 Mon Sep 17 00:00:00 2001 From: rafaelsideguide <150964962+rafaelsideguide@users.noreply.github.com> Date: Tue, 3 Sep 2024 14:08:07 -0300 Subject: [PATCH] fixed dockerfile and function name. it's working --- apps/api/Dockerfile | 9 ++++----- apps/api/src/lib/html-to-markdown.ts | 6 +++++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/apps/api/Dockerfile b/apps/api/Dockerfile index a4a2c76b..527a6dc7 100644 --- a/apps/api/Dockerfile +++ b/apps/api/Dockerfile @@ -17,11 +17,11 @@ RUN pnpm install RUN --mount=type=secret,id=SENTRY_AUTH_TOKEN \ bash -c 'export SENTRY_AUTH_TOKEN="$(cat /run/secrets/SENTRY_AUTH_TOKEN)"; if [ -z $SENTRY_AUTH_TOKEN ]; then pnpm run build:nosentry; else pnpm run build; fi' -# Install Go 1.19 +# Install Go FROM golang:1.19 AS go-base COPY src/lib/go-html-to-md /app/src/lib/go-html-to-md -# Install Go dependencies and build +# Install Go dependencies and build parser lib RUN cd /app/src/lib/go-html-to-md && \ go mod tidy && \ go build -o html-to-markdown.so -buildmode=c-shared html-to-markdown.go && \ @@ -33,9 +33,8 @@ RUN apt-get update -qq && \ rm -rf /var/lib/apt/lists /var/cache/apt/archives COPY --from=prod-deps /app/node_modules /app/node_modules COPY --from=build /app /app -COPY --from=go-base /app/src/lib/go-html-to-md/html-to-markdown.so /app/src/lib/go-html-to-md/html-to-markdown.so - +COPY --from=go-base /app/src/lib/go-html-to-md/html-to-markdown.so /app/dist/src/lib/go-html-to-md/html-to-markdown.so # Start the server by default, this can be overwritten at runtime EXPOSE 8080 -ENV PUPPETEER_EXECUTABLE_PATH="/usr/bin/chromium" +ENV PUPPETEER_EXECUTABLE_PATH="/usr/bin/chromium" \ No newline at end of file diff --git a/apps/api/src/lib/html-to-markdown.ts b/apps/api/src/lib/html-to-markdown.ts index e4f8f692..a5f69962 100644 --- a/apps/api/src/lib/html-to-markdown.ts +++ b/apps/api/src/lib/html-to-markdown.ts @@ -8,6 +8,10 @@ import dotenv from 'dotenv'; import { Logger } from './logger'; dotenv.config(); +// TODO: test with invalid html +// TODO: create a singleton for the converter +// TODO: add a timeout to the Go parser + export async function parseMarkdown(html: string): Promise { if (!html) { return ''; @@ -18,7 +22,7 @@ export async function parseMarkdown(html: string): Promise { const goExecutablePath = join(__dirname, 'go-html-to-md/html-to-markdown.so'); const lib = koffi.load(goExecutablePath); - const convert = lib.func('Convert', 'string', ['string']); + const convert = lib.func('ConvertHTMLToMarkdown', 'string', ['string']); let markdownContent = await new Promise((resolve, reject) => { convert.async(html, (err: Error, res: string) => {