Tiny, efficient, TypeScript utility functions inspired by Lodash.
npm install turtledashTiny, efficient, TypeScript utility functions inspired by Lodash.
``bash`
npm install turtledash
turtledash provides a collection of utility functions for working with objects, arrays, and more:
- Lightweight implementation of common utility functions
- Fully typed with TypeScript
- Zero dependencies
- MIT licensed
#### mapValues
Maps the values of an object to create a new object with the same keys.
`ts`
const users = { 'fred': { 'age': 40 }, 'pebbles': { 'age': 1 } };
mapValues(users, user => user.age); // { 'fred': 40, 'pebbles': 1 }
#### mapObject
Maps an object's entries and returns a new object.
#### pick
Creates an object composed of the picked object properties.
#### pickWhere
Creates an object with properties that satisfy the provided predicate function.
#### omit
Creates an object composed of properties not included in the provided array.
#### cloneDeep
Creates a deep clone of the value.
#### merge
Recursively merges own properties of the source object into the target object.
#### get
Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned.
#### choose
Creates an array of elements selected from the original array at the specified indices.
#### flatten
Flattens an array a single level deep.
#### zip
Creates an array of grouped elements.
#### uniq
Creates an array of unique values.
#### union
Creates an array of unique values from all given arrays.
#### intersection
Creates an array of unique values that are included in all given arrays.
#### difference
Creates an array of values from the first array that are not included in the other arrays.
#### delay(msec)
Returns a Promise that resolves after the specified number of milliseconds.
#### randomBytes(length)
Generates cryptographically strong random bytes.
#### randomHexString(length)
Generates a random hex string.
#### normalizeString(str)
Normalizes strings by replacing punctuation marks and applying unicode normalization.
#### randomIntFromRange(min, max)
Generates a random integer between min and max, inclusive.
#### randomFromArray
Returns a random element from an array.
#### linearScale([d1, d2], [r1, r2])
Creates a function that linearly scales a value from one range to another.
#### deepEqualJSONType(a, b)
Performs a deep equality check on JSON-compatible objects.
#### hashableRepresentation(unsorted)
Creates a consistently sortable representation of an object for hashing purposes.
#### debounce(func, wait, immediate)
Creates a debounced function that delays invoking the provided function.
`ts
import {
mapValues,
pick,
debounce,
randomIntFromRange
} from 'turtledash';
// Transform all values in an object
const users = { 'fred': { 'age': 40 }, 'pebbles': { 'age': 1 } };
const ages = mapValues(users, user => user.age);
// { 'fred': 40, 'pebbles': 1 }
// Pick specific properties from an object
const user = { id: 1, name: 'John', email: 'john@example.com', role: 'admin' };
const credentials = pick(user, ['name', 'email']);
// { name: 'John', email: 'john@example.com' }
// Create a debounced function
const saveChanges = debounce(() => {
// Save data to server
console.log('Saving changes...');
}, 500);
// Generate a random number in a range
const randomValue = randomIntFromRange(1, 100);
``
MIT License