loadRecordsfunction
Reads a record source once, when it is added: the list is frozen, a record with a non-finite number (a NaN or an infinity in any number finite names) is skipped and counted, and a list over
MAX_RECORDS is refused whole (bigger data must be tiles). It never throws: a source that throws or rejects is a failed read, and a read the signal aborted is aborted.
Import it
import { loadRecords } from "@johnmorrisdotca/hoshi-stars/door";
Definition
function loadRecords<R>(source: RecordSource<R>, signal: AbortSignal, finite?: (record: R) => readonly number[]): Promise<RecordsRead<R>>
Parameters
| Name | Type | Description |
|---|---|---|
source | RecordSource<R> | The record source. |
signal | AbortSignal | Aborts the read (the source is removed or switched off). |
finite (optional) | ((record: R) => readonly number[]) | undefined | The numbers of one record that must be finite, if any: |
Returns
Promise<RecordsRead<R>>
What was found: the status, the frozen records, how many were skipped and, for a failed read, why.
Examples
import { loadRecords } from "./data-door.ts";
const read = await loadRecords(source, controller.signal, (star) => [star.ra, star.dec]); // read.records is frozen; read.skipped counts the NaNs