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"]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]; // errorsetValue
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"); // 1Number related
getPrecision
Return type: number
getPrecision(11.223); // 3
getPrecision(11.0); // 0
getPrecision(1e-11); // 11
getPrecision(1e+21); // 21String 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",
// }