recharge-utils
Version:
A utility package for recharge-related operations and logic
83 lines (59 loc) • 2.11 kB
Markdown
# recharge-utils
A utility package for recharge-related operations and logic, including file upload, JWT handling, HTML-to-PDF conversion, and grouped Express routes.
## Features
- **File upload utility** with configurable storage, file type, and size limits ([src/file-upload.js](src/file-upload.js))
- **JWT token generation and verification** ([src/jwt.js](src/jwt.js))
- **HTML to PDF conversion** using Puppeteer ([src/helper.js](src/helper.js))
- **Grouping Express routes** with middleware ([src/group-route.js](src/group-route.js))
## Installation
Install the package dependencies:
```sh
npm install express multer puppeteer-extra puppeteer-extra-plugin-stealth
```
## Usage
### File Upload
```js
const { uploadFile } = require('@iftekher2108/recharge-utils');
const express = require('express');
const app = express();
const upload = uploadFile({
dirPath: '/uploads',
fileName: 'myfile',
maxSize: 10240, // in KB
type: ['png', 'jpg', 'pdf']
});
app.post('/upload', upload.single('file'), (req, res) => {
res.send('File uploaded!');
});
```
### JWT
```js
const { generateToken, verifyToken } = require('@iftekher2108/recharge-utils');
const token = generateToken({ id: 1, email: 'user@example.com' });
const payload = verifyToken(token);
```
### HTML to PDF
```js
const { htmlToPdf } = require('@iftekher2108/recharge-utils');
const express = require('express');
const app = express();
app.post('/pdf', (req, res) => {
htmlToPdf({ html: '<h1>Hello</h1>', res });
});
```
### Grouped Routes
```js
const { GroupRoute } = require('@iftekher2108/recharge-utils');
const express = require('express');
const app = express();
const router = express.Router();
const middleware1 = (req, res, next) => { /* ... */ next(); };
const middleware2 = (req, res, next) => { /* ... */ next(); };
const handler = (req, res) => res.send('Grouped route!');
GroupRoute(router, [middleware1, middleware2], (groupedRouter) => {
groupedRouter.get('/route', handler);
});
app.use(router);
```
## License
MIT