From 2eae2937603ce6387739514bb134d2296c1704a3 Mon Sep 17 00:00:00 2001 From: Filip Skokan Date: Sat, 25 May 2019 22:18:27 +0200 Subject: [PATCH] feat: instances of JWKS.KeyStore are now iterable (e.g. for ... of) --- lib/jwks/keystore.js | 6 ++++++ test/jwks/keystore.test.js | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/lib/jwks/keystore.js b/lib/jwks/keystore.js index 6e76e035da..c81c2d3021 100644 --- a/lib/jwks/keystore.js +++ b/lib/jwks/keystore.js @@ -139,6 +139,12 @@ class KeyStore { sorted: true })}` } + + * [Symbol.iterator] () { + for (const key of this.#keys) { + yield key + } + } } module.exports = KeyStore diff --git a/test/jwks/keystore.test.js b/test/jwks/keystore.test.js index 7aba9bdeb3..af12836848 100644 --- a/test/jwks/keystore.test.js +++ b/test/jwks/keystore.test.js @@ -199,3 +199,13 @@ test('.fromJWKS() input validation', t => { }, { instanceOf: TypeError, message: 'jwks must be a JSON Web Key Set formatted object' }) }) }) + +test('keystore instance is an iterator', t => { + const ks = new KeyStore() + ks.generateSync('EC') + ks.generateSync('RSA') + for (const key of ks) { + t.truthy(key) + } + t.pass() +})