diff options
Diffstat (limited to 'src/gleam_stdlib.js')
-rw-r--r-- | src/gleam_stdlib.js | 46 |
1 files changed, 37 insertions, 9 deletions
diff --git a/src/gleam_stdlib.js b/src/gleam_stdlib.js index 960792b..15c8a09 100644 --- a/src/gleam_stdlib.js +++ b/src/gleam_stdlib.js @@ -1,19 +1,47 @@ export function identity(x) { - return x + return x; } export function parse_int(value) { - if (/^[-+]?(\d+)$/.test(value)) { - return { "type": "Ok", "0": Number(value) } - } else { - return { "type": "Error", "0": null } - } + if (/^[-+]?(\d+)$/.test(value)) { + return { type: "Ok", 0: Number(value) }; + } else { + return { type: "Error", 0: null }; + } } export function int_to_string(int) { - return int.toString() + return int.toString(); } export function int_to_base_string(int, base) { - return int.toString(base) -}
\ No newline at end of file + return int.toString(base); +} + +export function string_replace(string, target, substitute) { + return string.replaceAll(target, substitute); +} + +export function string_reverse(string) { + return string.split("").reverse().join(""); +} + +export function string_length(string) { + if (Intl && Intl.Segmenter) { + let i = 0; + for (let _ of new Intl.Segmenter("en-gb").segment(string)) { + i++; + } + return i; + } else { + return string.match(/./gu).length; + } +} + +export function string_lowercase(string) { + return string.toLowerCase(); +} + +export function string_uppercase(string) { + return string.toUpperCase(); +} |