@geraintguan/ts-std-lib
    Preparing search index...

    @geraintguan/ts-std-lib

    Typescript Standard Library

    Coverage
Status Semantic Release: Conventional Commits

    API Reference

    A practical and pragmatic universal standard library for TypeScript targeting Browser/Node.js runtimes.

    npm install -S @geraintguan/ts-std-lib
    
    pnpm add @geraintguan/ts-std-lib
    

    API Reference

    Implementation of a key-value map that allows you to customise the way keys are stored by using a custom hashing function.

    One useful example is using a HashMap that accepts Date objects as keys but storing them as their ISO8601 Date Strings.

    import * as Std from "@geraintguan/ts-std-lib";

    const map = Std.Data.HashMap.emptyWithCustomHash<Date, number, string>({
    hash(date) {
    data.toISOString();
    },
    });

    const today = new Date("2024-11-01T12:00:00.000Z");
    const tomorrow = new Date("2024-11-02T12:00:00.000Z");

    map.set(today, 2);
    map.set(tomorrow, 3);

    [...map.keys()]; // => [
    // "2024-11-01T12:00:00.000Z",
    // "2024-11-02T12:00:00.000Z"
    // ]

    API Reference

    Implementation of a key-value map that allows you to customise the way keys are stored by using a custom hashing function and specify either a value or value generator function that will be returned when trying to access non-existant keys.

    import * as Std from "@geraintguan/ts-std-lib";

    type Document = {
    id: string;
    };

    const map = Std.Data.DefaultMap.emptyWithCustomHash<Document, Date, string>({
    defaultValue: {
    type: "function",

    value() {
    return new Date(),
    }
    },
    hash(document) {
    return document.id;
    },
    });

    const documentA = { id: "document-a" };
    const documentB = { id: "document-b" };
    const documentC = { id: "document-c" };

    map.set(documentA, new Date("2020-01-01T00:00:00.000Z"));
    map.set(documentB, new Date("2021-01-01T00:00:00.000Z"));

    map.get(documentA).toISOString() // => "2020-01-01T00:00:00.000Z"
    map.get(documentB).toISOString() // => "2021-01-01T00:00:00.000Z"
    map.get(documentC).toISOString() // => new Date().toISOString()

    [...map.keys()] // => [
    // "document-a",
    // "document-b",
    // "document-c",
    // ]

    API Reference

    Creates a function that always returns a specific value.

    import * as Std from "@geraintguan/ts-std-lib";

    const nine = Std.constant(9);

    nine(); // => 9
    nine(); // => 9
    nine(); // => 9

    API Reference

    Creates a function that always returns the value given to it as an argument.

    import * as Std from "@geraintguan/ts-std-lib";

    [true, false, true].filter(Std.identity); // => [
    // true,
    // true
    // ]