import { Injectable } from '@nestjs/common'; import { argon2id, hash, verify } from 'argon2'; @Injectable() export class CryptoService { private readonly type = argon2id; constructor() {} /** * Compare hash * @param {string} plain * @param {string} hash * @returns {Promise} */ public async compare(plain: string, hashString: string): Promise { return await verify(hashString, plain); } /** * Generate hash * @param {string} plain * @returns {Promise} */ public async hash(plain: string): Promise { return await hash(plain, { type: this.type }); } }