This library contains a collection of reusable utility functions and classes for email validation, equality operations, error handling, file manipulation, and more. This package is designed to simplify common tasks across your projects.
- Email validation: Validate email addresses using a regex-based refinement.
- Equality operations: Perform deep equality checks with custom equality logic.
- Error handling: Helper functions to simplify error handling in your code.
- File manipulation: Utilities to download files from the frontend easily.
- Array and object utilities: Helpers for ensuring values are defined and filtering out undefined values.
And more...
npm install @thestartupfactory/open-utils
You can validate an email address using the provided validateEmail function or by using the more advanced emailRefinement:
import { validateEmail } from '@thestartupfactory/open-utils';
const email = 'example@example.com';
const isValid = validateEmail(email);
console.log(isValid); // true or false
The EqSet class allows you to create a set with custom equality logic, which can be useful when working with complex objects:
import { EqSet } from '@thestartupfactory/open-utils';
import { isEqual } from 'lodash';
const customSet = new EqSet([1, 2, 3], isEqual);
customSet.add(4);
console.log(customSet.toArray()); // [1, 2, 3, 4]
Use MessageFromErrorOrDefault to safely extract an error message or use a default message if no error is provided:
import { MessageFromErrorOrDefault } from '@thestartupfactory/open-utils';
try {
throw new Error('Something went wrong!');
} catch (e) {
const message = MessageFromErrorOrDefault(e, 'Default error message');
console.log(message); // "Something went wrong!"
}
If you need to fail with an error, you can use fail or fail_with:
import { fail, fail_with } from '@thestartupfactory/open-utils';
// Throws an error with a custom message
const x = someValue ?? fail('Value is not defined!');
// Throws a specific error type
fail_with(new Error('Custom error'));
The downloadFile utility helps download files in the browser by generating a download link dynamically:
import { downloadFile } from 'your-package-name';
downloadFile({
content: 'Hello, world!',
fileName: 'hello.txt',
blobType: 'text/plain',
});
This package includes many more utilities to help with common programming tasks. For a full list of available utilities, refer to the source code.