JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 7
  • Score
    100M100P100Q45040F
  • License MIT

Utility functions

Package Exports

  • yutolity

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (yutolity) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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"]

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 } }

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

getPrecision

Return type: number

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

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",
// }