Loading federation/middleware.test.ts +4 −0 Original line number Diff line number Diff line Loading @@ -179,6 +179,8 @@ Deno.test("Federation.createContext()", async (t) => { assertEquals(ctx.url, new URL("https://example.com/")); assertEquals(ctx.data, 123); assertEquals(await ctx.getSignedKey(), null); // Multiple calls should return the same result: assertEquals(await ctx.getSignedKey(), null); const signedReq = await sign( new Request("https://example.com/"), Loading @@ -190,6 +192,8 @@ Deno.test("Federation.createContext()", async (t) => { assertEquals(signedCtx.url, new URL("https://example.com/")); assertEquals(signedCtx.data, 456); assertEquals(await signedCtx.getSignedKey(), publicKey2); // Multiple calls should return the same result: assertEquals(await signedCtx.getSignedKey(), publicKey2); }); mf.uninstall(); Loading federation/middleware.ts +4 −2 Original line number Diff line number Diff line Loading @@ -390,12 +390,14 @@ export class Federation<TContextData> { }, }; if (request == null) return context; let signedKey: CryptographicKey | null | undefined = undefined; const reqCtx: RequestContext<TContextData> = { ...context, request, url, getSignedKey() { return verify(request, context.documentLoader); async getSignedKey() { if (signedKey !== undefined) return signedKey; return signedKey = await verify(request, context.documentLoader); }, }; return reqCtx; Loading Loading
federation/middleware.test.ts +4 −0 Original line number Diff line number Diff line Loading @@ -179,6 +179,8 @@ Deno.test("Federation.createContext()", async (t) => { assertEquals(ctx.url, new URL("https://example.com/")); assertEquals(ctx.data, 123); assertEquals(await ctx.getSignedKey(), null); // Multiple calls should return the same result: assertEquals(await ctx.getSignedKey(), null); const signedReq = await sign( new Request("https://example.com/"), Loading @@ -190,6 +192,8 @@ Deno.test("Federation.createContext()", async (t) => { assertEquals(signedCtx.url, new URL("https://example.com/")); assertEquals(signedCtx.data, 456); assertEquals(await signedCtx.getSignedKey(), publicKey2); // Multiple calls should return the same result: assertEquals(await signedCtx.getSignedKey(), publicKey2); }); mf.uninstall(); Loading
federation/middleware.ts +4 −2 Original line number Diff line number Diff line Loading @@ -390,12 +390,14 @@ export class Federation<TContextData> { }, }; if (request == null) return context; let signedKey: CryptographicKey | null | undefined = undefined; const reqCtx: RequestContext<TContextData> = { ...context, request, url, getSignedKey() { return verify(request, context.documentLoader); async getSignedKey() { if (signedKey !== undefined) return signedKey; return signedKey = await verify(request, context.documentLoader); }, }; return reqCtx; Loading