nomatic-jwt
Version:
JSON Web Token (JWT) utilities for Node.js
30 lines (22 loc) • 778 B
text/typescript
import * as Crypto from 'crypto-js';
export function encode(data: string | Buffer = ''): string {
if (data instanceof Buffer) {
data = data.toString();
}
return Crypto.enc.Base64.stringify(Crypto.enc.Utf8.parse(data));
}
export function escape(data: string) {
return data.replace(/=+$/, '').replace(/\//g, '_').replace(/\+/g, '-');
}
export function unescape(data: string) {
return data.replace(/_/g, '/').replace(/-/g, '+');
}
export function encodeSafe(data: string | Buffer = ''): string {
return escape(encode(data));
}
export function decode (data: string = ''): string {
return Crypto.enc.Base64.parse(data).toString(Crypto.enc.Utf8);
}
export function decodeSafe(data: string = ''): string {
return unescape(decode(data));
}