[@resultium/utils - v1.0.0-alpha.0](README.md) / Exports # @resultium/utils - v1.0.0-alpha.0 ## Table of contents ### Functions - [capitalizeFirstChar](modules.md#capitalizefirstchar) - [classNames](modules.md#classnames) - [conditionalJoin](modules.md#conditionaljoin) - [isDeepWeakEqual](modules.md#isdeepweakequal) - [randomInRange](modules.md#randominrange) - [removeFromArrayByKeyValue](modules.md#removefromarraybykeyvalue) - [removeObjectProperty](modules.md#removeobjectproperty) - [replaceFromArrayByKeyValue](modules.md#replacefromarraybykeyvalue) - [splitIntoChunks](modules.md#splitintochunks) ## Functions ### capitalizeFirstChar ▸ **capitalizeFirstChar**(`string`): `string` Capitalizes first character of the given string #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `string` | `string` | string to modify | #### Returns `string` new string **`Example`** ```ts // Prints "Lorem ipsum" console.log(capitalizeFirstChar("lorem ipsum")) ``` #### Defined in [functions/capitalizeFirstChar.ts:32](https://git.resultium.net/public/utils/src/commit/ec41aeb/src/functions/capitalizeFirstChar.ts#L32) ___ ### classNames ▸ **classNames**(`...classes`): `string` Conditionally joins given class strings #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `...classes` | `string`[] | class strings to join | #### Returns `string` new string **`Example`** ```ts let isVisible = false // prints "bg-blue-300 hidden" console.log(classNames("bg-blue-300", isVisible ? "block" : "hidden")) ``` #### Defined in [functions/classNames.ts:34](https://git.resultium.net/public/utils/src/commit/ec41aeb/src/functions/classNames.ts#L34) ___ ### conditionalJoin ▸ **conditionalJoin**(`array`, `joinChar`): `string` Conditionally joins given strings #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `array` | `string`[] | strings to join | | `joinChar` | `string` | character used to join strings | #### Returns `string` new string **`Example`** ```ts let isAdmin = true // prints "Hello, Administrator!" console.log(conditionalJoin(["Hello,", isAdmin ? "Administrator" : "User", "!"], " ")) ``` #### Defined in [functions/conditionalJoin.ts:35](https://git.resultium.net/public/utils/src/commit/ec41aeb/src/functions/conditionalJoin.ts#L35) ___ ### isDeepWeakEqual ▸ **isDeepWeakEqual**(`obj1`, `obj2`): `boolean` Weakly compares two objects #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `obj1` | `object` | first object for comparison | | `obj2` | `object` | second object for comparison | #### Returns `boolean` true if equal **`Remarks`** uses JSON.stringify() **`Example`** ```ts // prints false console.log(isDeepWeakEqual({ a: 1 }, ["lorem"])) // prints true console.log(isDeepWeakEqual({ a: 1 }, { a: 1 })) // prints true // snippet displaying the weak equality of this function console.log( isDeepWeakEqual( { date: "2024-03-12T18:19:50.548Z" }, { date: new Date(1710267590548) }, ), ); ``` #### Defined in [functions/isDeepWeakEqual.ts:47](https://git.resultium.net/public/utils/src/commit/ec41aeb/src/functions/isDeepWeakEqual.ts#L47) ___ ### randomInRange ▸ **randomInRange**(`min`, `max`): `number` Returns a pseudo-random number in given range #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `min` | `number` | minimum acceptable value | | `max` | `number` | maximum acceptable value | #### Returns `number` number [min; max] **`Remarks`** Uses Math.random(), which is not cryptographically secure Returns only integers **`Example`** ```ts // prints 66 console.log(randomInRange(1, 100)) ``` #### Defined in [functions/randomInRange.ts:37](https://git.resultium.net/public/utils/src/commit/ec41aeb/src/functions/randomInRange.ts#L37) ___ ### removeFromArrayByKeyValue ▸ **removeFromArrayByKeyValue**\<`T`\>(`array`, `keyValue`): `T`[] Removes an object from an array by key value object. #### Type parameters | Name | | :------ | | `T` | #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `array` | `T`[] | array which shall be manipulated with | | `keyValue` | `Partial`\<\{ [K in string \| number \| symbol]: T[K] }\> | key-value object which defines which object shall be removed from the array | #### Returns `T`[] modified array **`Remarks`** This method doesn't support deep comparements. Vulnerable to generic object injection sink **`Example`** ```ts // prints [{ a: "1", b: "0" }, { a: "2", b: "0" }] console.log(removeFromArrayByKeyValue([{ a: "1", b: "0" }, { a: "2", b: "0" }, { a: "3", b: "0" }], { a: "3" })) // prints [] console.log(removeFromArrayByKeyValue([{ a: "1", b: "0" }, { a: "2", b: "0" }, { a: "3", b: "0" }], { b: "0" })) ``` #### Defined in [functions/removeFromArrayByKeyValue.ts:40](https://git.resultium.net/public/utils/src/commit/ec41aeb/src/functions/removeFromArrayByKeyValue.ts#L40) ___ ### removeObjectProperty ▸ **removeObjectProperty**\<`T`, `K`\>(`object`, `key`): `Omit`\<`T`, `K`\> Removes an object property by provided key #### Type parameters | Name | Type | | :------ | :------ | | `T` | `T` | | `K` | extends `string` \| `number` \| `symbol` | #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `object` | `T` | object which shall be manipulated | | `key` | `K` | key which should be used to remove a property from object | #### Returns `Omit`\<`T`, `K`\> new object **`Example`** ```ts // print { a: "1", b: "2" } console.log(removeObjectProperty({ a: "1", b: "2", c: "3" }, "c")) ``` #### Defined in [functions/removeObjectProperty.ts:33](https://git.resultium.net/public/utils/src/commit/ec41aeb/src/functions/removeObjectProperty.ts#L33) ___ ### replaceFromArrayByKeyValue ▸ **replaceFromArrayByKeyValue**\<`T`\>(`array`, `keyValue`, `newObject`): `T`[] Replaces an object from an array with key value object search #### Type parameters | Name | | :------ | | `T` | #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `array` | `T`[] | array which shall be manipulated with | | `keyValue` | `Partial`\<\{ [K in string \| number \| symbol]: T[K] }\> | key-value object which defines which object shall be removed from the array | | `newObject` | `Partial`\<\{ [K in string \| number \| symbol]: T[K] }\> | object or values to replace within the searched object | #### Returns `T`[] modified array **`Remarks`** This method doesn't support deep comparements. Vulnerable to generic object injection sink **`Example`** ```ts // prints [{ a: "1", b: "0" }, { a: "2", b: "0" }, { a: "3", b: "lorem" }] console.log(replaceFromArrayByKeyValue([{ a: "1", b: "0" }, { a: "2", b: "0" }, { a: "3", b: "0" }], { a: "3" }, { b: "lorem" })) // prints [{ a: "lorem", b: "0" }, { a: "2", b: "0" }, { a: "3", b: "0" }] // replaces only the first occurance console.log(replaceFromArrayByKeyValue([{ a: "1", b: "0" }, { a: "2", b: "0" }, { a: "3", b: "0" }], { b: "0" }, { a: "lorem" })) ``` #### Defined in [functions/replaceFromArrayByKeyValue.ts:42](https://git.resultium.net/public/utils/src/commit/ec41aeb/src/functions/replaceFromArrayByKeyValue.ts#L42) ___ ### splitIntoChunks ▸ **splitIntoChunks**\<`T`\>(`array`, `chunkSize`): `T`[][] Splits an array into chunks #### Type parameters | Name | | :------ | | `T` | #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `array` | `T`[] | array which shall be split into chunks | | `chunkSize` | `number` | size of a single chunk | #### Returns `T`[][] array of chunks **`Example`** ```ts // prints [["a", "b", "c"], ["d", "e", "f"]] console.log(splitIntoChunks(["a", "b", "c", "d", "e", "f"], 3)); ``` #### Defined in [functions/splitIntoChuks.ts:33](https://git.resultium.net/public/utils/src/commit/ec41aeb/src/functions/splitIntoChuks.ts#L33)