aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2023-10-19 22:49:24 +0100
committerLouis Pilfold <louis@lpil.uk>2023-10-26 12:24:40 +0100
commit7a5994ad512f65016c94c49540d1b72f5a5dee61 (patch)
treeb0046b477936b23715e4e610c8982d42ea65ddbf
parentd77dcacec97ed6aa398a257a2c5731faf97f11ec (diff)
downloadgleam_stdlib-7a5994ad512f65016c94c49540d1b72f5a5dee61.tar.gz
gleam_stdlib-7a5994ad512f65016c94c49540d1b72f5a5dee61.zip
No longer depend on the .is* JS prelude methods
-rw-r--r--src/gleam_stdlib.mjs25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/gleam_stdlib.mjs b/src/gleam_stdlib.mjs
index e811bcf..b2c82c4 100644
--- a/src/gleam_stdlib.mjs
+++ b/src/gleam_stdlib.mjs
@@ -7,6 +7,7 @@ import {
UtfCodepoint,
stringBits,
toBitString,
+ NonEmpty,
} from "./gleam.mjs";
import {
CompileError as RegexCompileError,
@@ -565,18 +566,18 @@ export function decode64(sBase64) {
export function classify_dynamic(data) {
if (typeof data === "string") {
return "String";
- } else if (Result.isResult(data)) {
+ } else if (data instanceof Result) {
return "Result";
- } else if (List.isList(data)) {
+ } else if (data instanceof List) {
return "List";
+ } else if (data instanceof BitString) {
+ return "BitString";
+ } else if (data instanceof PMap) {
+ return "Map";
} else if (Number.isInteger(data)) {
return "Int";
} else if (Array.isArray(data)) {
return `Tuple of ${data.length} elements`;
- } else if (BitString.isBitString(data)) {
- return "BitString";
- } else if (data instanceof PMap) {
- return "Map";
} else if (typeof data === "number") {
return "Float";
} else if (data === null) {
@@ -618,7 +619,7 @@ export function decode_bool(data) {
}
export function decode_bit_string(data) {
- if (BitString.isBitString(data)) {
+ if (data instanceof BitString) {
return new Ok(data);
}
if (data instanceof Uint8Array) {
@@ -663,18 +664,18 @@ function decode_tupleN(data, n) {
}
function decode_exact_length_list(data, n) {
- if (!List.isList(data)) return;
+ if (!(data instanceof List)) return;
const elements = [];
let current = data;
for (let i = 0; i < n; i++) {
- if (current.isEmpty()) break;
+ if (!(current instanceof NonEmpty)) break;
elements.push(current.head);
current = current.tail;
}
- if (elements.length === n && current.isEmpty()) return elements;
+ if (elements.length === n && !(current instanceof NonEmpty)) return elements;
}
export function tuple_get(data, index) {
@@ -687,11 +688,11 @@ export function decode_list(data) {
if (Array.isArray(data)) {
return new Ok(List.fromArray(data));
}
- return List.isList(data) ? new Ok(data) : decoder_error("List", data);
+ return data instanceof List ? new Ok(data) : decoder_error("List", data);
}
export function decode_result(data) {
- return Result.isResult(data) ? new Ok(data) : decoder_error("Result", data);
+ return data instanceof Result ? new Ok(data) : decoder_error("Result", data);
}
export function decode_map(data) {