From 59ec6293b65526fe8dc527ac596d0e5af29b1e32 Mon Sep 17 00:00:00 2001 From: Corentin Thomasset Date: Wed, 24 Aug 2022 00:09:16 +0200 Subject: [PATCH] refactor: token generator can use a custom alphabet --- .../token-generator/token-generator.service.ts | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/tools/token-generator/token-generator.service.ts b/src/tools/token-generator/token-generator.service.ts index bf6d9ac3..f48a4deb 100644 --- a/src/tools/token-generator/token-generator.service.ts +++ b/src/tools/token-generator/token-generator.service.ts @@ -6,19 +6,23 @@ export function createToken({ withNumbers = true, withSymbols = false, length = 64, + alphabet, }: { withUppercase?: boolean; withLowercase?: boolean; withNumbers?: boolean; withSymbols?: boolean; length?: number; + alphabet?: string; }) { - const alphabet = [ - ...(withUppercase ? 'ABCDEFGHIJKLMOPQRSTUVWXYZ' : ''), - ...(withLowercase ? 'abcdefghijklmopqrstuvwxyz' : ''), - ...(withNumbers ? '0123456789' : ''), - ...(withSymbols ? '.,;:!?./-"\'#{([-|\\@)]=}*+' : ''), - ].join(''); + const allAlphabet = + alphabet ?? + [ + ...(withUppercase ? 'ABCDEFGHIJKLMOPQRSTUVWXYZ' : ''), + ...(withLowercase ? 'abcdefghijklmopqrstuvwxyz' : ''), + ...(withNumbers ? '0123456789' : ''), + ...(withSymbols ? '.,;:!?./-"\'#{([-|\\@)]=}*+' : ''), + ].join(''); - return shuffleString(alphabet.repeat(length)).substring(0, length); + return shuffleString(allAlphabet.repeat(length)).substring(0, length); }