Current section

Files

Jump to
gossamer src gossamer array.ffi.mjs
Raw

src/gossamer/array.ffi.mjs

// src/gossamer/array.ffi.ts
import * as $order from "../../gleam_stdlib/gleam/order.mjs";
import { fromArray, toArray } from "../utils/list.ffi.mjs";
import { indexToResult, toResult } from "../utils/result.ffi.mjs";
function toCompareFn(compare) {
return (a, b) => {
const result = compare(a, b);
if ($order.Order$isLt(result)) return -1;
if ($order.Order$isGt(result)) return 1;
return 0;
};
}
var new_ = () => [];
var from_list = (list) => toArray(list);
var from_list_mapped = (list, mapper) => toArray(list).map((value) => mapper(value));
var length = (array) => array.length;
var at = (array, index) => toResult(array.at(index));
var includes = (array, value) => array.includes(value);
var includes_from = (array, value, index) => array.includes(value, index);
var index_of = (array, value) => indexToResult(array.indexOf(value));
var index_of_from = (array, value, index) => indexToResult(array.indexOf(value, index));
var last_index_of = (array, value) => indexToResult(array.lastIndexOf(value));
var last_index_of_from = (array, value, index) => indexToResult(array.lastIndexOf(value, index));
var find = (array, predicate) => toResult(array.find((value) => predicate(value)));
var index_find = (array, predicate) => toResult(array.find((value, index) => predicate(value, index)));
var find_index = (array, predicate) => indexToResult(array.findIndex((value) => predicate(value)));
var index_find_index = (array, predicate) => indexToResult(array.findIndex((value, index) => predicate(value, index)));
var find_last = (array, predicate) => toResult(array.findLast((value) => predicate(value)));
var index_find_last = (array, predicate) => toResult(array.findLast((value, index) => predicate(value, index)));
var find_last_index = (array, predicate) => indexToResult(array.findLastIndex((value) => predicate(value)));
var index_find_last_index = (array, predicate) => indexToResult(
array.findLastIndex((value, index) => predicate(value, index))
);
var every = (array, predicate) => array.every((value) => predicate(value));
var index_every = (array, predicate) => array.every((value, index) => predicate(value, index));
var some = (array, predicate) => array.some((value) => predicate(value));
var index_some = (array, predicate) => array.some((value, index) => predicate(value, index));
var slice = (array) => array.slice();
var slice_from = (array, start) => array.slice(start);
var slice_range = (array, start, end) => array.slice(start, end);
var map = (array, callback) => array.map((value) => callback(value));
var index_map = (array, callback) => array.map((value, index) => callback(value, index));
var filter = (array, predicate) => array.filter((value) => predicate(value));
var index_filter = (array, predicate) => array.filter((value, index) => predicate(value, index));
var flat = (array) => array.flat(1);
var flat_map = (array, callback) => array.flatMap((value) => callback(value));
var concat = (array, other) => array.concat(other);
var to_reversed = (array) => array.toReversed();
var to_sorted = (array, compare) => array.toSorted(toCompareFn(compare));
var with_ = (array, index, value) => toResult.fromThrows(() => array.with(index, value));
var to_spliced = (array, start, count) => array.toSpliced(start, count);
var to_spliced_with = (array, start, count, items) => array.toSpliced(start, count, ...toArray(items));
var push = (array, value) => {
array.push(value);
return array;
};
var unshift = (array, value) => {
array.unshift(value);
return array;
};
var reverse = (array) => array.reverse();
var sort = (array, compare) => array.sort(toCompareFn(compare));
var fill = (array, value) => array.fill(value);
var fill_range = (array, value, start, end) => array.fill(value, start, end);
var copy_within = (array, target, start) => array.copyWithin(target, start);
var copy_within_range = (array, target, start, end) => array.copyWithin(target, start, end);
var pop = (array) => toResult(array.pop());
var shift = (array) => toResult(array.shift());
var splice = (array, start, count) => array.splice(start, count);
var splice_with = (array, start, count, items) => array.splice(start, count, ...toArray(items));
var for_each = (array, callback) => {
array.forEach((value) => callback(value));
};
var index_for_each = (array, callback) => {
array.forEach((value, index) => callback(value, index));
};
var reduce = (array, initial, callback) => array.reduce((acc, value) => callback(acc, value), initial);
var reduce_right = (array, initial, callback) => array.reduceRight((acc, value) => callback(acc, value), initial);
var index_reduce = (array, initial, callback) => array.reduce((acc, value, index) => callback(acc, value, index), initial);
var index_reduce_right = (array, initial, callback) => array.reduceRight(
(acc, value, index) => callback(acc, value, index),
initial
);
var join = (array, separator) => array.join(separator);
var to_string = (array) => array.toString();
var to_list = (array) => fromArray(array);
var keys = (array) => array.keys();
var values = (array) => array.values();
var entries = (array) => array.entries();
export {
at,
concat,
copy_within,
copy_within_range,
entries,
every,
fill,
fill_range,
filter,
find,
find_index,
find_last,
find_last_index,
flat,
flat_map,
for_each,
from_list,
from_list_mapped,
includes,
includes_from,
index_every,
index_filter,
index_find,
index_find_index,
index_find_last,
index_find_last_index,
index_for_each,
index_map,
index_of,
index_of_from,
index_reduce,
index_reduce_right,
index_some,
join,
keys,
last_index_of,
last_index_of_from,
length,
map,
new_,
pop,
push,
reduce,
reduce_right,
reverse,
shift,
slice,
slice_from,
slice_range,
some,
sort,
splice,
splice_with,
to_list,
to_reversed,
to_sorted,
to_spliced,
to_spliced_with,
to_string,
unshift,
values,
with_
};