UNPKG

@lokalise/fastify-extras

Version:

Opinionated set of fastify plugins, commonly used in Lokalise

41 lines 1.47 kB
import { AuthFailedError } from '@lokalise/node-core'; import { EmptyTokenError } from '../errors/publicErrors.js'; export function generateJwtToken(jwt, payload, ttlInSeconds) { return new Promise((resolve, reject) => { jwt.sign(payload, { expiresIn: ttlInSeconds }, (err, encoded) => { /* v8 ignore next 3 */ if (err) { return reject(err); } /* v8 ignore next 3 */ if (!encoded) { throw new EmptyTokenError(); } resolve(encoded); }); }); } const hasCode = (error) => typeof error === 'object' && error !== null && 'code' in error; // biome-ignore lint/suspicious/noExplicitAny: <explanation> export function decodeJwtToken(jwt, encodedToken) { return new Promise((resolve, reject) => { // biome-ignore lint/suspicious/noExplicitAny: <explanation> jwt.verify(encodedToken, (err, decoded) => { /* v8 ignore next 3 */ if (err) { return reject(err); } /* v8 ignore next 3 */ if (!decoded) { throw new EmptyTokenError(); } resolve(decoded); }); }).catch((err) => { if (hasCode(err) && err.code === 'FAST_JWT_INVALID_SIGNATURE') { throw new AuthFailedError({ message: 'Auth error' }); } throw err; }); } //# sourceMappingURL=tokenUtils.js.map