node_custom_utils
v0.3.4
Published
Optimize your Node.js code and elevate its personal utility with this intricately designed Node.js package, custom-tailored to streamline your development tasks for both personal and commercial applications.
Readme
Generate Snowflake and Unique IDs
Create an instance of the ID class with a machine ID
const idGenerator = new ID(1);// Generate a Snowflake ID const snowflakeID = idGenerator.getSnowflakeID(); console.log(`Snowflake ID: ${snowflakeID}`);// Generate a Unique ID const uniqueID = idGenerator.getUniqueID(); console.log(`Unique ID: ${uniqueID}`);const serial_number = idGenerator.generateSerialNumber({ format: "XXXXXX", }); console.log(`Serial Number: ${serial_number}`);
File upload
Local server.
// Uploads a file to the local server. const uploadedFileUrl = await FileUploadToLocalServer({ req, pathToUpload, imageKeyWord, });// Deletes a file located at the specified path. DeleteLocalServerFile(filePathToDelete);S3 Spaces
// Allowed file extensions for upload const allowedExtensions = [".jpg", ".png", ".jpeg"]; // Upload the file to the specified bucket const uploadedFileKey = await FileUploadToSpacesBucket({ req, pathToUpload, imageKeyWord, fileTypes: allowedExtensions, });// Attempt to delete the file const isDeleted = await DeleteFileSpacesBucket(fileKey);
Removes the specified text from the array.
const array = ["hello", "world", "hello"];
const result = array.removeText("hello");
console.log(result); // Output: ['world']Verify the Integrity of Color Hash Codes
Checks if the given string represents a valid hexadecimal color code.
"#123".cIsValidColorCode(); // true "#12345".cIsValidColorCode(); // false "red".cIsValidColorCode(); // false
Handle string-based URL manipulation.
Parses the query parameters from a given URL string and returns them as a Map.
const urlString = "https://example.com/path?name=John&age=30"; const queryParams = cGetQueryParams(urlString); console.log(queryParams.get("name")); // Output: 'John' console.log(queryParams.get("age")); // Output: '30'Validates a URL string.
const isValid = cIsValidUrl("https://www.example.com"); console.log(isValid); // Output: trueThe
cUpdateQueryParamfunction is an extension of the globalStringobject in TypeScript. It provides a method for updating or adding query parameters to a URL string. This can be especially useful in web development when you need to modify URLs dynamically.// Original URL const originalUrl = "https://example.com/page?name=John"; // Updated URL with a new query parameter or modified existing parameter const updatedUrl = originalUrl.cUpdateQueryParam("age", "30"); console.log(updatedUrl); // Output: 'https://example.com/page?name=John&age=30'
Example Usage of Utility Functions
Define a sample Express route handler
const sampleRouteHandler = (req: Request, res: Response) => { try { // Construct a JSON response using the `toJson` function toJson(res, { data: responseData, // Sample data to be included in the response message: "Sample response for README", }); } catch (error) { // Handle errors and construct an error response using the `errorResponse` function errorResponse(res, error); } };Check if a value has data
const hasValue = hasData("Sample Data"); // true if the value is not emptyCheck if a date is valid
const isDateValid = isValidDate("2023-09-07"); // true if the date is validCheck if a date and time is valid
const isDateTimeValid = isValidDateTime("2023-09-07 14:30:00"); // true if the date and time are validAdd one day to a date
const newDate = adjustDateByDays(new Date("2023-09-07"));Get an image URL with a placeholder if no data is available
const imageUrl = getImg("https://example.com/image.jpg"); // Provided URL if data exists, otherwise a placeholder URLCompare two JSON objects for deep equality
const obj1 = { key1: "value1", key2: { nestedKey: "nestedValue" } }; const obj2 = { key1: "value1", key2: { nestedKey: "nestedValue" } }; const areEqual = compareJSONObjects(obj1, obj2); // true if objects are deeply equalConvert a number to a string or empty string if it's zero
const stringValue = convertNumberToStringOrEmpty(0); // "" (empty string)
Converts a JSON string to a JavaScript object.
const jsonData = '{"name": "John", "age": 30}';
const jsonObject = cToJson(jsonData);
console.log(jsonObject); // Output: { name: 'John', age: 30 }const data = { name: "Alice", age: 25 };
const convertedData = cToJson(data);
console.log(convertedData); // Output: { name: 'Alice', age: 25 }const invalidData = "not a valid JSON";
try {
const result = cToJson(invalidData); // Throws an error
} catch (error) {
console.error(error.message); // Output: "The data cannot be converted into a JSON format."
}Filters the input list to keep only the unique objects.
cGetUniqueObjects()
// Example Usage
const inputList = [
{ id: 1, name: "Alice" },
{ id: 2, name: "Bob" },
{ id: 1, name: "Alice" }, // Duplicate object
];
const uniqueObjects = cGetUniqueObjects(inputList);
console.log(uniqueObjects);Base64
Encodes a string into Base64 format.
cEncodeToBase64()
let originalString = "Hello World!";
let encodedString = originalString.cEncodeToBase64();
console.log(`Encoded String: ${encodedString}`);Decodes a Base64 encoded string.
cDecodeFromBase64()
let originalString = "Hello World!";
let decodedString = encodedString.cDecodeFromBase64();
console.log(`Decoded String: ${decodedString}`);Converts a value to a boolean in a safe manner.
const result = cToBooleanSafe("true"); // Returns true
const result2 = cToBooleanSafe("false"); // Returns false
const result3 = cToBooleanSafe(1); // Returns truesha256
cSha256("data");Asynchronously converts a CSV/Excel file to a JSON array.
csvToJson("/path/to/file.csv").then((data) => console.log(data));excelToJson("/path/to/excel-file.xlsx").then((data) => console.log(data));Asynchronously converts an array of JSON objects to a CSV/Excel file.
const data = [
{ name: "John Doe", age: 30, email: "[email protected]" },
{ name: "Jane Doe", age: 25, email: "[email protected]" },
];jsonToCsv(data, "users").then((path) => console.log(path));jsonToExcel(data, "users")
.then((filePath) => {
console.log("Excel file created at:", filePath);
})
.catch((error) => {
console.error("Error creating Excel file:", error);
});Generates an array of objects, each representing a distinct month (and year) within a specified date range.
const details = cGetYearMonthDetailsBetweenDates("2022-01-01", "2022-03-01");Output: [ { year: 2022, monthNumber: 1, monthName: "January" }, { year: 2022, monthNumber: 2, monthName: "February" }, { year: 2022, monthNumber: 3, monthName: "March" } ]
Gets the months that fall between two given dates.
Get full month names between January 1, 2022, and March 1, 2022
cGetMonthBetweenDates("2022-01-01", "2022-03-01", true);// Returns ["January", "February", "March"]
Get month numbers between January 1, 2022, and March 1, 2022
cGetMonthBetweenDates("2022-01-01", "2022-03-01");// Returns ["1", "2", "3"]
Checks if two dates fall within the same calendar year.
cHaveSameYear("2023-01-01", "2023-12-31");// Returns true
cHaveSameYear("2023-12-31", "2024-01-01");// Returns false
Changes the month and optionally the day of a given date string.
// Change the month of March 15, 2023, to February cChangeDateMonthAndDay("2023-03-15", 2); // Returns "2023-02-15"// Change the month and day of March 15, 2023, to February 28 cChangeDateMonthAndDay("2023-03-15", 2, 28); // Returns "2023-02-28"// Attempt to set an invalid date (February 30th) cChangeDateMonthAndDay("2023-03-15", 2, 30); // Logs "Invalid day for the given month" and returns "2023-03-15"
Converts a floating-point number to an integer.
cConvertDoubleToInt(NaN);returns 0
cConvertDoubleToInt(1.0);returns 100
cConvertDoubleToInt(123.45);returns 12345
Fetches IP address details
cGetIpDetails("192.168.1.1")
.then((data) => {
console.log(data);
})
.catch((error) => {
console.error("Error fetching IP details:", error);
});Contributers
- Salmanul Faris K ( Developer )
- Sharafas OM ( Maintainer and Publisher )
