aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Corentin Thomasset <corentin.thomasset74@gmail.com> 2022-08-24 00:09:16 +0200
committerGravatar Corentin Thomasset <corentin.thomasset74@gmail.com> 2022-08-24 00:18:01 +0200
commit83da6b7ee9db29e40faf288f9627257aa7124038 (patch)
tree96e12c476cb562d337d94c8199f0b6fb0d4a1f3f
parent737319edf1e7586cb7cf9cfbbdc72719691c79d2 (diff)
downloadit-tools-83da6b7ee9db29e40faf288f9627257aa7124038.tar.gz
it-tools-83da6b7ee9db29e40faf288f9627257aa7124038.tar.zst
it-tools-83da6b7ee9db29e40faf288f9627257aa7124038.zip
refactor: token generator can use a custom alphabet
-rw-r--r--src/tools/token-generator/token-generator.service.ts18
1 files 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 bf6d9ac..f48a4de 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);
}