Browse Source

add new helpers methods

painor 5 years ago
parent
commit
3f8fb4cd2d
1 changed files with 60 additions and 1 deletions
  1. 60 1
      utils/Helpers.js

+ 60 - 1
utils/Helpers.js

@@ -113,6 +113,63 @@ class Helpers {
 
     }
 
+
+    /**
+     *
+     * @param buffer {Buffer}
+     * @param offset {Number}
+     * @returns {{data: {Buffer}, offset: {Number}}}
+     */
+    static tgReadByte(buffer, offset) {
+        let firstByte = buffer.readInt8(offset);
+        offset += 1;
+        let padding, length;
+        if (firstByte === 255) {
+            length = buffer.readInt8(offset) | (buffer.readInt8(offset) << 8) | (buffer.readInt8(offset) << 16);
+            offset += 1;
+            padding = length % 4;
+        } else {
+            length = firstByte;
+            padding = (length + 1) % 4;
+        }
+        let data = buffer.readInt8(offset);
+        offset += 1;
+        if (padding > 0) {
+            padding = 4 - padding;
+            offset += padding;
+        }
+        return {data, offset}
+    }
+
+    static tgWriteBytes(data) {
+        let buffer;
+        let padding;
+
+        if (data.length < 254) {
+            padding = (data.length + 1) % 4;
+            if (padding !== 0) {
+                padding = 4 - padding;
+            }
+            buffer = Buffer.from([data.length, data]);
+        } else {
+            padding = data.length % 4;
+            if (padding !== 0) {
+                padding = 4 - padding;
+            }
+            buffer = Buffer.concat([Buffer.from([254]),
+                Buffer.from([data.length % 256]),
+                Buffer.from([(data.length >> 8) % 256]),
+                Buffer.from([(data.length >> 16) % 256]),
+                Buffer.from([data]),
+                Buffer.from([padding])
+            ]);
+
+        }
+        return buffer;
+
+
+    }
+
     /**
      * returns a random int from min (inclusive) and max (inclusive)
      * @param min
@@ -134,4 +191,6 @@ class Helpers {
 
 }
 
-exports.helpers = Helpers;
+let l = Buffer.from(0x83c95aec);
+console.log(l.length);
+