import jwt from "jsonwebtoken"; import { JWTData } from "../type/jwtTypes"; export abstract class JWTHelper { static validate(token: string): Promise { return new Promise((resolve, reject) => { jwt.verify(token, process.env.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, process.env.JWT_SECRET, { expiresIn: process.env.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); } }); } }