import jwt, { type SignOptions } from "jsonwebtoken";

import type { AuthUser } from "@tracker/shared";

import { env } from "../config/env.js";

type TokenPayload = AuthUser;

export const signAccessToken = (user: AuthUser) =>
  jwt.sign(user, env.JWT_SECRET, {
    expiresIn: env.JWT_EXPIRES_IN as SignOptions["expiresIn"],
  });

export const verifyAccessToken = (token: string) =>
  jwt.verify(token, env.JWT_SECRET) as TokenPayload;
