From e235d835aab51305afd0a59247847912e327797d Mon Sep 17 00:00:00 2001 From: Toby Date: Thu, 16 Nov 2023 20:34:27 +0100 Subject: [PATCH] add generics to sign --- src/index.spec.ts | 11 ++++++++--- src/index.ts | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/index.spec.ts b/src/index.spec.ts index 3520b0d..094f76d 100644 --- a/src/index.spec.ts +++ b/src/index.spec.ts @@ -14,6 +14,11 @@ type Data = { [key in JwtAlgorithm]: Dataset } +type Payload = { + sub: string + name: string +} + const data: Data = { 'ES256': { public: '-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEEVs/o5+uQbTjL3chynL4wXgUg2R9\nq9UU8I5mEovUf86QZ7kOBIjJwqnzD1omageEHWwHdBO6B+dFabmdT9POxg==\n-----END PUBLIC KEY-----', @@ -63,7 +68,7 @@ const data: Data = { } -const payload = { +const payload: Payload = { sub: "1234567890", name: "John Doe", } @@ -77,7 +82,7 @@ describe.each(Object.entries(data) as [JwtAlgorithm, Dataset][])('%s', (algorith }) test('decode external', async () => { - const decoded = jwt.decode(data.token) + const decoded = jwt.decode(data.token) expect({ sub: payload.sub, name: payload.name @@ -88,7 +93,7 @@ describe.each(Object.entries(data) as [JwtAlgorithm, Dataset][])('%s', (algorith }) test('sign internal', async () => { - token = await jwt.sign(payload, data.private, algorithm) + token = await jwt.sign(payload, data.private, algorithm) expect(token).toMatch(/^[a-zA-Z0-9\-_]+\.[a-zA-Z0-9\-_]+\.[a-zA-Z0-9\-_]+$/) }) diff --git a/src/index.ts b/src/index.ts index 14130d8..ab8523b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -213,7 +213,7 @@ function decodePayload(raw: string): T | undefined { * @throws {Error} If there's a validation issue. * @returns {Promise} Returns token as a `string`. */ -export async function sign(payload: JwtPayload, secret: string | JsonWebKey, options: JwtSignOptions | JwtAlgorithm = 'HS256'): Promise { +export async function sign(payload: JwtPayload, secret: string | JsonWebKey, options: JwtSignOptions | JwtAlgorithm = 'HS256'): Promise { if (typeof options === 'string') options = { algorithm: options }