aboutsummaryrefslogtreecommitdiff
path: root/src/utils.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils.ts')
-rw-r--r--src/utils.ts40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/utils.ts b/src/utils.ts
new file mode 100644
index 0000000..40e985e
--- /dev/null
+++ b/src/utils.ts
@@ -0,0 +1,40 @@
+export class Utils {
+ static createKey(keyLength: number){
+ let keyspace: String = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
+ let text = '';
+ let index;
+ for (let i = 0; i < keyLength; i++)
+ {
+ index = Math.floor(Math.random() * keyspace.length);
+ text += keyspace.charAt(index);
+ }
+ return text;
+ }
+
+ static toUTF8Array(str) {
+ let utf8 = [];
+ for (var i=0; i < str.length; i++) {
+ let charcode = str.charCodeAt(i);
+ if (charcode < 0x80) utf8.push(charcode);
+ else if (charcode < 0x800) {
+ utf8.push(0xc0 | (charcode >> 6),
+ 0x80 | (charcode & 0x3f));
+ }
+ else if (charcode < 0xd800 || charcode >= 0xe000) {
+ utf8.push(0xe0 | (charcode >> 12),
+ 0x80 | ((charcode>>6) & 0x3f),
+ 0x80 | (charcode & 0x3f));
+ }
+ // surrogate pair
+ else {
+ i++;
+ charcode = ((charcode&0x3ff)<<10)|(str.charCodeAt(i)&0x3ff)
+ utf8.push(0xf0 | (charcode >>18),
+ 0x80 | ((charcode>>12) & 0x3f),
+ 0x80 | ((charcode>>6) & 0x3f),
+ 0x80 | (charcode & 0x3f));
+ }
+ }
+ return utf8;
+ }
+} \ No newline at end of file