import { createDecoder, createSigner, createVerifier } from "fast-jwt"; import { jwt } from "#environment/jwt"; import type { UserSession } from "#types/config"; class JWTService { private readonly signer; private readonly verifier; private readonly decoder; constructor() { this.signer = createSigner({ key: jwt.secret, expiresIn: jwt.expiration, }); this.verifier = createVerifier({ key: jwt.secret }); this.decoder = createDecoder(); } sign(payload: UserSession): string { return this.signer(payload); } verify(token: string): UserSession { return this.verifier(token); } decode(token: string): UserSession { return this.decoder(token); } } export const jwtService = new JWTService(); export { JWTService };