├── ArrayUtils.js ├── CODE_OF_CONDUCT.md ├── README.md ├── catchAsync.js ├── converthypentocamelcase.js ├── countvowelsandconsonants.js ├── file_to_base64.js └── regexUtilities.js /ArrayUtils.js: -------------------------------------------------------------------------------- 1 | var titleCaseString = (data) => 2 | data 3 | .toLowerCase() 4 | .split(' ') 5 | .map((word) => `${word.charAt(0).toUpperCase()}${word.slice(1)}`) 6 | .join(' ') 7 | 8 | var convertStringToArray = (para, removeSpaces = false) => 9 | removeSpaces ? [...para].filter((item) => item !== ' ') : [...para] 10 | 11 | var countInstanceInArray = (arr) => 12 | arr.reduce((obj, item) => { 13 | if (!obj[item]) obj[item] = 0 14 | obj[item]++ 15 | return obj 16 | }, {}) 17 | 18 | var sumOfAnArray = (arr, initialValue = 0) => 19 | arr.reduce((a, b) => a + b, initialValue) 20 | 21 | var inArrayOfObjects = (arr, key, value) => arr.find((ar) => ar[key] === value) 22 | 23 | var findArrayIndex = (arr, key, value) => 24 | arr.findIndex((ar) => ar[key] === value) 25 | 26 | var getUniqueList = (arr) => 27 | arr.filter( 28 | (ar, index, list) => 29 | list.findIndex((p) => JSON.stringify(ar) === JSON.stringify(p)) === index 30 | ) 31 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | * Demonstrating empathy and kindness toward other people 21 | * Being respectful of differing opinions, viewpoints, and experiences 22 | * Giving and gracefully accepting constructive feedback 23 | * Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | * Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | * The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | * Trolling, insulting or derogatory comments, and personal or political attacks 33 | * Public or private harassment 34 | * Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | * Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | prasundas115@gmail.com 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. 129 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # JavaScript-Utility-functions 2 | Tons of JS Utility functions required for Dev purposes 3 | -------------------------------------------------------------------------------- /catchAsync.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Handle errors in Express middlewares and routes easily. No need of using try/catch blocks in async functions anymore. 3 | * @param {Function} fn Callback function 4 | * @example 5 | * catchAsync(async (req, res) => { 6 | res.status(200).json('Success'); 7 | }) 8 | * @returns {Function} Callback function with the error handled 9 | * @author Bihan Chakraborty 10 | */ 11 | 12 | const catchAsync = (fn) => { 13 | return (req, res, next) => { 14 | fn(req, res, next).catch((err) => next(err)); 15 | }; 16 | }; 17 | 18 | export default catchAsync; 19 | -------------------------------------------------------------------------------- /converthypentocamelcase.js: -------------------------------------------------------------------------------- 1 | function camel(str) { 2 | const camelcs = /-(\w)/g; 3 | return str.replace(camelcs, (_, c) => c ? c.toUpperCase() : ''); 4 | } -------------------------------------------------------------------------------- /countvowelsandconsonants.js: -------------------------------------------------------------------------------- 1 | const vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']; 2 | 3 | function countVowels(sentence) { 4 | let vowelcounts = 0; 5 | let consocounts = 0; 6 | for(let i = 0; i < vowels.length; i++) { 7 | if(vowels.includes(sentence[i])) { 8 | vowelcounts++; 9 | } 10 | else 11 | { 12 | consocounts++; 13 | } 14 | } 15 | return console.log(vowelcounts,consocounts); 16 | } -------------------------------------------------------------------------------- /file_to_base64.js: -------------------------------------------------------------------------------- 1 | export const fileToBase64 = file => { 2 | let reader = new FileReader(); 3 | reader.readAsDataURL(file); 4 | reader.onload = function (e) { 5 | return e.target.result 6 | }; 7 | }; -------------------------------------------------------------------------------- /regexUtilities.js: -------------------------------------------------------------------------------- 1 | // 1. Check if String contain only alphanumeric characters and can 2 | // contain a mininum of two characters, and end with a digit. 3 | 4 | const reg = /\b[a-zA-Z\d]{1,}\d$\b/; 5 | const str1 = "jAsOn1"; 6 | const str2 = "jAsOn1_"; 7 | 8 | const check1 = reg.test(str1) // return true 9 | const check2 = reg.test(str2) // return false 10 | 11 | 12 | // 2. Email Validation with regex 13 | const reg2 = /^([\w\.\+]{1,})([^\W])(@)([\w]{1,})(\.[\w]{1,})+$/; 14 | const input = "shubham@gmail.com" 15 | 16 | const check3 = reg2.test(input) // returns true 17 | 18 | 19 | 20 | // 3. Date Format check with regex 21 | const dateFormat = /\d\d-\w+-\d\d\d\d/; 22 | const dateInp = "10-02-2021" 23 | 24 | const check4 = dateFormat.test(dateInp); 25 | --------------------------------------------------------------------------------