47 lines
1.1 KiB
TypeScript
47 lines
1.1 KiB
TypeScript
|
import * as plugins from './smartstring.plugins'
|
||
|
|
||
|
/**
|
||
|
* the type for base 64
|
||
|
*/
|
||
|
export type TBase64Input = 'string' | 'base64' | 'base64uri'
|
||
|
|
||
|
/**
|
||
|
* handle base64 strings
|
||
|
*/
|
||
|
export class Base64 {
|
||
|
private refString: string
|
||
|
constructor(inputStringArg, typeArg: TBase64Input) {
|
||
|
switch (typeArg) {
|
||
|
case 'string': // easiest case
|
||
|
this.refString = inputStringArg
|
||
|
break
|
||
|
case 'base64':
|
||
|
this.refString = plugins.jsBase64.decode(inputStringArg)
|
||
|
break
|
||
|
case 'base64uri':
|
||
|
this.refString = plugins.jsBase64.decode(inputStringArg)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* the simple string (unencoded)
|
||
|
*/
|
||
|
get simpleString() {
|
||
|
return this.refString
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* the base64 encoded version of the original string
|
||
|
*/
|
||
|
get base64String() {
|
||
|
return plugins.jsBase64.encode(this.refString)
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* the base64uri encoded version of the original string
|
||
|
*/
|
||
|
get base64StringUri() {
|
||
|
return plugins.jsBase64.encodeURI(this.refString)
|
||
|
}
|
||
|
}
|