From 35eeb078bc4b40f70d8339c48c06c860cc458aea Mon Sep 17 00:00:00 2001 From: Giacomo Cavalieri Date: Fri, 10 May 2024 11:10:22 +0200 Subject: [PATCH] optimised implementation of html_encoder --- src/ffi_js.mjs | 3 - src/glentities/html_encoder.gleam | 32 +--- .../internal/html_encoder/erl.gleam | 158 ++++++++++++++++++ .../internal/html_encoder/generic.gleam | 132 +++++++++++++++ src/glentities/internal/string_utils.gleam | 2 +- src/glentities_ffi.erl | 20 +++ src/glentities_ffi.mjs | 15 ++ test/glentities_test.gleam | 20 +-- 8 files changed, 343 insertions(+), 39 deletions(-) delete mode 100644 src/ffi_js.mjs create mode 100644 src/glentities/internal/html_encoder/erl.gleam create mode 100644 src/glentities/internal/html_encoder/generic.gleam create mode 100644 src/glentities_ffi.erl create mode 100644 src/glentities_ffi.mjs diff --git a/src/ffi_js.mjs b/src/ffi_js.mjs deleted file mode 100644 index c51089c..0000000 --- a/src/ffi_js.mjs +++ /dev/null @@ -1,3 +0,0 @@ -export function normalize(str, mode) { - return str.normalize(mode); -} diff --git a/src/glentities/html_encoder.gleam b/src/glentities/html_encoder.gleam index ce14f45..7f51ffe 100644 --- a/src/glentities/html_encoder.gleam +++ b/src/glentities/html_encoder.gleam @@ -1,33 +1,15 @@ -import gleam/string -import gleam/string_builder.{type StringBuilder} -import glentities/internal/string_utils +@target(erlang) +import glentities/internal/html_encoder/erl as escaper + +@target(javascript) +import glentities/internal/html_encoder/generic as escaper /// Encode text to be safe in the HTML body, inside element or attribute content. /// /// `&`, `<`, `>`, `'`, and `"` are encoded. /// /// Note! Not suitable for outputting inside `