diff options
Diffstat (limited to 'packages/server/src/helpers/iso/isoBase64URL.ts')
-rw-r--r-- | packages/server/src/helpers/iso/isoBase64URL.ts | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/packages/server/src/helpers/iso/isoBase64URL.ts b/packages/server/src/helpers/iso/isoBase64URL.ts index 5098b0c..99bf82a 100644 --- a/packages/server/src/helpers/iso/isoBase64URL.ts +++ b/packages/server/src/helpers/iso/isoBase64URL.ts @@ -1,4 +1,5 @@ import { base64 } from '../../deps.ts'; +import type { Base64URLString } from '../../deps.ts'; /** * Decode from a Base64URL-encoded string to an ArrayBuffer. Best used when converting a @@ -63,8 +64,15 @@ export function isBase64(input: string): boolean { /** * Confirm that the string is encoded into base64url, with support for optional padding */ -export function isBase64url(input: string): boolean { +export function isBase64URL(input: string): boolean { // Trim padding characters from the string if present - input = input.replace(/=/g, ''); + input = trimPadding(input); return base64.validate(input, true); } + +/** + * Remove optional padding from a base64url-encoded string + */ +export function trimPadding(input: Base64URLString): Base64URLString { + return input.replace(/=/g, ''); +} |