{"id":28627303,"url":"https://github.com/philippebeck/nemjs","last_synced_at":"2025-06-12T09:08:41.681Z","repository":{"id":40486018,"uuid":"488674034","full_name":"philippebeck/nemjs","owner":"philippebeck","description":"JavaScript Backend Services","archived":false,"fork":false,"pushed_at":"2023-12-24T18:32:32.000Z","size":688,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-05-02T02:06:28.516Z","etag":null,"topics":["backend-services","bcrypt","dotenv","email-validator","generate-password","grunt","javascript-library","jwt","nodemailer","password-validator","remove-accents","sharp","valid-url"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/philippebeck.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-05-04T17:01:23.000Z","updated_at":"2024-02-23T23:10:30.000Z","dependencies_parsed_at":"2023-12-21T12:44:56.379Z","dependency_job_id":"f799fc85-3a58-4e30-b727-fd87d1750e2c","html_url":"https://github.com/philippebeck/nemjs","commit_stats":{"total_commits":115,"total_committers":1,"mean_commits":115.0,"dds":0.0,"last_synced_commit":"d1ddc51a8b08b90ed616cf75f69f3bb2d9e14eab"},"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/philippebeck/nemjs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philippebeck%2Fnemjs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philippebeck%2Fnemjs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philippebeck%2Fnemjs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philippebeck%2Fnemjs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/philippebeck","download_url":"https://codeload.github.com/philippebeck/nemjs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philippebeck%2Fnemjs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259436159,"owners_count":22857137,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend-services","bcrypt","dotenv","email-validator","generate-password","grunt","javascript-library","jwt","nodemailer","password-validator","remove-accents","sharp","valid-url"],"created_at":"2025-06-12T09:08:39.150Z","updated_at":"2025-06-12T09:08:41.656Z","avatar_url":"https://github.com/philippebeck.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nemjs\n\nJavaScript Backend Service Library\n\n[![NPM Version](https://badgen.net/npm/v/nemjs)](https://www.npmjs.com/package/nemjs)\n\n[![NPM Downloads](https://badgen.net/npm/dt/nemjs)](https://www.npmjs.com/package/nemjs)\n[![GitHub Last Commit](https://img.shields.io/github/last-commit/philippebeck/nemjs.svg?label=Last+Commit)](https://github.com/philippebeck/nemjs/commits/master)\n\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/6fe8d75b9343429d9b3587e622ac79c9)](https://www.codacy.com/gh/philippebeck/nemjs/dashboard)\n[![Maintainability](https://api.codeclimate.com/v1/badges/0641edca905dbe1671ea/maintainability)](https://codeclimate.com/github/philippebeck/nemjs/maintainability)\n\n[![GitHub Top Language](https://img.shields.io/github/languages/top/philippebeck/nemjs.svg?label=JavaScript)](https://github.com/philippebeck/nemjs)\n[![Code Size](https://img.shields.io/github/languages/code-size/philippebeck/nemjs.svg?label=Code+Size)](https://github.com/philippebeck/nemjs/tree/master)\n\n## Overview\n\nnemjs is a JavaScript Backend Service Library.  \nYou will find some Services about Checkers, Getters \u0026 Setters  \nAuth services are using JWT \u0026 bcrypt  \nMail services are using nodemailer  \nImage services are using sharp  \n\n## Summary\n\n- [nemjs](#nemjs)\n  - [Overview](#overview)\n  - [Summary](#summary)\n  - [Package](#package)\n  - [Download](#download)\n  - [Content](#content)\n  - [Usage](#usage)\n  - [Tests](#tests)\n\n---\n\n## Package\n\nNPM : `npm i nemjs`  \nYarn : `yarn add nemjs`  \n\n---\n\n## Download\n\n[Latest Release](https://github.com/philippebeck/nemjs/releases)  \nor  \n`git clone https://github.com/philippebeck/nemjs.git`  \nor  \n[Master ZIP](https://github.com/philippebeck/nemjs/archive/refs/heads/master.zip)\n\n---\n\n## Content\n\nCheckers part :  \n-   **checkAuth(req, res, next)** : check JWT auth to routes  \n-   **checkEmail(email)** : check email validity  \n-   **checkPass(pass)** : check password validity  \n-   **checkRange(value, min, max)** : check number|string range with min/max  \n-   **checkUrl(url)** : check url validity  \n\nGetters part :  \n-   **getName(name)** : get kebab-case name  \n-   **getPosterName(name)** : get image name for gallery cover  \n-   **getMailer()** : get mailer with nodemailer  \n-   **getMessage(message)** : get message  \n-   **getPassword()** : get generated password  \n\nSetters part :  \n-   **setAuth(pass, user, res)** : set JWT  \n-   **setImage(inputImg, outputImg, width, height)** : set image  \n-   **setThumbnail(inputImg, outputImg, width, height)** : set thumbnail  \n\n---\n\n## Usage\n\n1.  Copy the `.env.example` file to your project root, rename it `.env` \u0026 replace values with your own values\n2.  Add `const nem = require(\"nemjs\")` where you need (file or function top level)\n3.  Then use it like in these examples : \n    -  `router.get(\"/\", nem.checkAuth, UserCtrl.list)`  \n    -  `nem.setAuth(guest.password, user, res)`  \n    -  `if (nem.checkEmail(guest.email)) { ... }`  \n    -  `if (nem.checkRange(guest.name)) { ... }`  \n    -  `if (nem.checkPass(guest.password)) { ... }`  \n    -  `const pass = nem.getPassword();`  \n    -  `if (nem.checkUrl(item.url)) { ... }`  \n    -  `nem.setImage(uploadImage, newImage);`  \n    -  `nem.setThumbnail(uploadImage, newImage);`  \n    -  `const mailer = nem.getMailer()`  \n    -  `let message = nem.getMessage(req)`  \n\n---\n\n## Tests\n\nYou can run unit tests with Jest :  \nNPM : `npm test`  \nYarn : `yarn test`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilippebeck%2Fnemjs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphilippebeck%2Fnemjs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilippebeck%2Fnemjs/lists"}