import jwt from "jsonwebtoken"; import { JWTData } from "../type/jwtTypes"; import { JWT_SECRET, JWT_EXPIRATION } from "../env.defaults"; export abstract class JWTHelper { static validate(token: string): Promise { return new Promise((resolve, reject) => { jwt.verify(token, JWT_SECRET, (err, decoded) => { if (err) reject(err.message); else resolve(decoded); }); }); } static create(data: JWTData): Promise { return new Promise((resolve, reject) => { jwt.sign( data, JWT_SECRET, { expiresIn: JWT_EXPIRATION, }, (err, token) => { if (err) reject(err.message); else resolve(token); } ); }); } static decode(token: string): Promise { return new Promise((resolve, reject) => { try { let decoded = jwt.decode(token); resolve(decoded); } catch (err) { reject(err.message); } }); } }