Nirvana Playing Madonna

    yutolity
    TypeScript icon, indicating that this package has built-in type declarations

    1.4.0 • Public • Published

    yutolity

    This module provides utilities.

    How to use

    Comparison

    They can be used instead of obj !== null or obj !== undefined .

    notNull, notUndefined, hasValue

    const array = ["text", 123, null, undefined, "text2"];
    array.filter(notNull); // ["text", 123, undefined, "text2"]
    array.filter(notUndefined); // ["text", 123, null, "text2"]
    array.filter(hasValue); //  ["text", 123, "text2"]

    Object related

    isKeyOf

    Return type: boolean

    Check if the specified key is key of the object.

    getValueOf

    Return type: T[keyof T] | undefined

    Type safe object value accessor.

    const obj = {
        key: "key",
        value: { value: 1 },
    };
    const val = getValueOf(obj, "key");
    // The data type of val is following
    // string | {
    //     value: number;
    // } | undefined
    
    const key: string = "key";
    const val2 = obj[key]; // error

    setValue

    setValue({}, "key", 1); // { key: 1 }
    setValue(undefined, "key", 1); // { key: 1 }
    setValue("value", "key.foo", 1); // { key: { foo: 1 } }
    setValue({ key: { hoge: 22 } }, "key.foo", 1);
    // { key: { foo: 1, hoge: 22 } }

    Array related

    range

    Create integer array.

    range(5, 10); // [5, 6, 7, 8, 9, 10]
    range(2, -2); // [2, 1, 0, -1, -2]
    range(2, 2); // [2]

    rangeByStep

    Create number array but you can specify the number to increment.

    rangeByStep(1, 7, 2); // [1, 3, 5, 7]
    rangeByStep(0.1, 0.3, -0.1); // [0.1, 0.2, 0.3]
    rangeByStep(0.3, -0.11, 0.1); // [0.3, 0.2, 0.1, 0, -0.1]
    rangeByStep(-0.2, 0.3, 1); // [-0.2]
    rangeByStep(0.000001, 0.000003, 0.000001); // [0.000001, 0.000002, 0.000003]

    recursiveGetValueOf

    Return type: unknown

    const obj = {
        key: "key",
        value: { value: 1 },
    };
    const val = recursiveGetValueOf(obj, "value.value"); // 1

    Number related

    getPrecision

    Return type: number

    getPrecision(11.223); // 3
    getPrecision(11.0);   // 0
    getPrecision(1e-11);  // 11
    getPrecision(1e+21);  // 21

    String related

    indexesOf/lastIndexesOf

    Return type: {index: number; foundString: string;}

    const text = "ab bc de bc";
    indexesOf(text, ["bc", "de"]);
    //{
    //     index: 3,
    //     foundString: "bc",
    // }
    lastIndexesOf(text, ["bc", "de"]);
    // {
    //     index: 9,
    //     foundString: "bc",
    // }

    minIndexOf/maxIndexOf

    Return type: {index: number; foundString: string;}

    minIndexOf(text, ["de", "ab", "bc"]);
    // {
    //     index: 0,
    //     foundString: "ab",
    // }
    maxIndexOf(text, ["bb", "de", "ab"]);
    // {
    //     index: 6,
    //     foundString: "de",
    // }

    Install

    npm i yutolity

    DownloadsWeekly Downloads

    4

    Version

    1.4.0

    License

    MIT

    Unpacked Size

    17.6 kB

    Total Files

    15

    Last publish

    Collaborators

    • yuto.technicalfeeder