From 97b12bb5ec023b0b1077e4559b1ba0f4932d8cb3 Mon Sep 17 00:00:00 2001 From: inoas Date: Mon, 11 Apr 2022 15:33:33 +0200 Subject: JavaScript implementation of the module's receives fallback code for NodeJS 14 compatibility --- src/gleam_stdlib.mjs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/gleam_stdlib.mjs') diff --git a/src/gleam_stdlib.mjs b/src/gleam_stdlib.mjs index 280cd95..4dd4aa7 100644 --- a/src/gleam_stdlib.mjs +++ b/src/gleam_stdlib.mjs @@ -58,7 +58,19 @@ export function int_to_base_string(int, base) { } export function string_replace(string, target, substitute) { - return string.replaceAll(target, substitute); + if (typeof string.replaceAll !== "undefined") { + return string.replaceAll(target, substitute); + } + // Fallback for older Node.js versions: + // 1. + // 2. + // TODO: This fallback could be remove once Node.js 14 is EOL + // aka on or after 2024-04-30 + return string.replace( + // $& means the whole matched string + new RegExp(target.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g'), + substitute + ); } export function string_reverse(string) { -- cgit v1.2.3