@thestartupfactory/open-utils
v1.0.10
Published
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.
Downloads
1,037
Readme
open-utils
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.
Features
- 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...
Installation
npm install @thestartupfactory/open-utils
Usage
Email Validation
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 = '[email protected]';
const isValid = validateEmail(email);
console.log(isValid); // true or false
Equality Operations with EqSet
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]
Error Handling
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'));
File Manipulation
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',
});
Additional Utilities
This package includes many more utilities to help with common programming tasks. For a full list of available utilities, refer to the source code.