import { sign } from 'jsonwebtoken' import { TokenEncoderInterface } from './TokenEncoderInterface' export class TokenEncoder implements TokenEncoderInterface { constructor(private jwtSecret: string) {} encodeExpirableToken(data: T, expiresIn: string | number | undefined): string { return sign(data as Record, this.jwtSecret, { algorithm: 'HS256', expiresIn }) } encodeToken(data: T): string { return sign(data as Record, this.jwtSecret, { algorithm: 'HS256' }) } }