From 1cf5e7343b8cd9c464d09092da0c0becb43467d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerg=C5=91=20M=C3=B3ricz?= Date: Mon, 28 Jul 2025 20:58:39 +0200 Subject: [PATCH] Revert go version in Dockerfile (#1873) --- apps/api/sharedLibs/go-html-to-md/html-to-markdown.go | 11 ++++++++++- apps/api/src/lib/html-to-markdown.ts | 8 ++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/apps/api/sharedLibs/go-html-to-md/html-to-markdown.go b/apps/api/sharedLibs/go-html-to-md/html-to-markdown.go index 11776fd67..ca6d82046 100644 --- a/apps/api/sharedLibs/go-html-to-md/html-to-markdown.go +++ b/apps/api/sharedLibs/go-html-to-md/html-to-markdown.go @@ -1,7 +1,11 @@ package main +/* +#include +*/ +import "C" import ( - "C" + "unsafe" // "log" md "github.com/tomkosm/html-to-markdown" @@ -20,6 +24,11 @@ func ConvertHTMLToMarkdown(html *C.char) *C.char { return C.CString(markdown) } +//export FreeCString +func FreeCString(s *C.char) { + C.free(unsafe.Pointer(s)) +} + func main() { // This function is required for the main package } diff --git a/apps/api/src/lib/html-to-markdown.ts b/apps/api/src/lib/html-to-markdown.ts index f7a2b9445..aa63a6b39 100644 --- a/apps/api/src/lib/html-to-markdown.ts +++ b/apps/api/src/lib/html-to-markdown.ts @@ -18,10 +18,14 @@ const goExecutablePath = join( class GoMarkdownConverter { private convert: any; - + private free: any; + private constructor() { const lib = koffi.load(goExecutablePath); - this.convert = lib.func("ConvertHTMLToMarkdown", "string", ["string"]); + this.free = lib.func("FreeCString", "void", ["string"]); + const cstn = "CString:" + crypto.randomUUID(); + const freedResultString = koffi.disposable(cstn, "string", this.free); + this.convert = lib.func("ConvertHTMLToMarkdown", freedResultString, ["string"]); } public static async getInstance(): Promise {