aboutsummaryrefslogtreecommitdiff
path: root/src/gleam_stdlib.js
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2021-07-21 18:34:57 +0100
committerLouis Pilfold <louis@lpil.uk>2021-07-21 18:34:57 +0100
commit733032f0d8570913f41ccf9498fe82301f2eadc6 (patch)
tree8ada00ea77a11e3ef8f4cdb0d59ca71b0aa1068f /src/gleam_stdlib.js
parent363d0a0c95fc1f3c91fe5c1101cac9d848c66fde (diff)
downloadgleam_stdlib-733032f0d8570913f41ccf9498fe82301f2eadc6.tar.gz
gleam_stdlib-733032f0d8570913f41ccf9498fe82301f2eadc6.zip
Convert some string functions
Diffstat (limited to 'src/gleam_stdlib.js')
-rw-r--r--src/gleam_stdlib.js46
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();
+}