@apibara/protocol 0.4.7 → 0.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cursor.d.ts CHANGED
@@ -15,8 +15,21 @@ export declare const Cursor: {
15
15
  * been invalidated.
16
16
  */
17
17
  create: (order: string | number | Long, unique: Uint8Array) => ICursor;
18
+ /**
19
+ * Creates a new cursor from a plain Javascript object.
20
+ */
21
+ fromObject({ orderKey, uniqueKey }: ReturnType<typeof _toObject>): ICursor;
18
22
  /**
19
23
  * Returns the cursor string representation.
20
24
  */
21
25
  toString: (cursor?: ICursor | null) => string | undefined;
26
+ /**
27
+ * Returns the cursor as plain Javascript object.
28
+ */
29
+ toObject: (cursor?: ICursor | null) => ReturnType<typeof _toObject> | undefined;
30
+ };
31
+ declare function _toObject(cursor: ICursor): {
32
+ orderKey: string;
33
+ uniqueKey: string;
22
34
  };
35
+ export {};
package/dist/cursor.js CHANGED
@@ -30,14 +30,38 @@ exports.Cursor = {
30
30
  uniqueKey: unique,
31
31
  };
32
32
  },
33
+ /**
34
+ * Creates a new cursor from a plain Javascript object.
35
+ */
36
+ fromObject({ orderKey, uniqueKey }) {
37
+ return {
38
+ orderKey: long_1.default.fromString(orderKey),
39
+ uniqueKey: Buffer.from(uniqueKey.slice(2), 'hex'),
40
+ };
41
+ },
33
42
  /**
34
43
  * Returns the cursor string representation.
35
44
  */
36
45
  toString: (cursor) => {
37
46
  if (!cursor)
38
47
  return;
39
- let hash = Buffer.from(cursor.uniqueKey).toString('hex');
40
- return `${cursor.orderKey.toString()}/0x${hash}`;
48
+ const { orderKey, uniqueKey } = _toObject(cursor);
49
+ return `${orderKey}/${uniqueKey}`;
50
+ },
51
+ /**
52
+ * Returns the cursor as plain Javascript object.
53
+ */
54
+ toObject: (cursor) => {
55
+ if (!cursor)
56
+ return;
57
+ return _toObject(cursor);
41
58
  },
42
59
  };
60
+ function _toObject(cursor) {
61
+ let hash = Buffer.from(cursor.uniqueKey).toString('hex');
62
+ return {
63
+ orderKey: cursor.orderKey.toString(),
64
+ uniqueKey: `0x${hash}`,
65
+ };
66
+ }
43
67
  //# sourceMappingURL=cursor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../src/cursor.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AAGV,QAAA,MAAM,GAAG;IACpB;;;;;OAKG;IACH,kBAAkB,EAAE,CAAC,KAA6B,EAAW,EAAE;QAC7D,OAAO;YACL,QAAQ,EAAE,cAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC/B,SAAS,EAAE,IAAI,UAAU,EAAE;SAC5B,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,EAAE,CAAC,KAA6B,EAAE,MAAkB,EAAW,EAAE;QACrE,OAAO;YACL,QAAQ,EAAE,cAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC/B,SAAS,EAAE,MAAM;SAClB,CAAA;IACH,CAAC;IAED;;OAEG;IACH,QAAQ,EAAE,CAAC,MAAuB,EAAsB,EAAE;QACxD,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACxD,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAA;IAClD,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../src/cursor.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AAGV,QAAA,MAAM,GAAG;IACpB;;;;;OAKG;IACH,kBAAkB,EAAE,CAAC,KAA6B,EAAW,EAAE;QAC7D,OAAO;YACL,QAAQ,EAAE,cAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC/B,SAAS,EAAE,IAAI,UAAU,EAAE;SAC5B,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,EAAE,CAAC,KAA6B,EAAE,MAAkB,EAAW,EAAE;QACrE,OAAO;YACL,QAAQ,EAAE,cAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC/B,SAAS,EAAE,MAAM;SAClB,CAAA;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAgC;QAC9D,OAAO;YACL,QAAQ,EAAE,cAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YACnC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;SAClD,CAAA;IACH,CAAC;IAED;;OAEG;IACH,QAAQ,EAAE,CAAC,MAAuB,EAAsB,EAAE;QACxD,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;QACjD,OAAO,GAAG,QAAQ,IAAI,SAAS,EAAE,CAAA;IACnC,CAAC;IAED;;OAEG;IACH,QAAQ,EAAE,CAAC,MAAuB,EAA4C,EAAE;QAC9E,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,OAAO,SAAS,CAAC,MAAM,CAAC,CAAA;IAC1B,CAAC;CACF,CAAA;AAED,SAAS,SAAS,CAAC,MAAe;IAChC,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACxD,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;QACpC,SAAS,EAAE,KAAK,IAAI,EAAE;KACvB,CAAA;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const long_1 = __importDefault(require("long"));
7
+ const cursor_1 = require("./cursor");
8
+ describe('Cursor', () => {
9
+ it('can be converted to and from javascript objects', () => {
10
+ const cursorObject = {
11
+ orderKey: '1234',
12
+ uniqueKey: '0x05dd5e4f023a81a8daaf86b8bf3967b04276a89c81b840e8e55d658323854ad7',
13
+ };
14
+ const cursor = cursor_1.Cursor.fromObject(cursorObject);
15
+ expect(cursor.orderKey).toEqual(long_1.default.fromNumber(1234));
16
+ expect(cursor.uniqueKey).toHaveLength(32);
17
+ const back = cursor_1.Cursor.toObject(cursor);
18
+ expect(back.orderKey).toEqual(cursorObject.orderKey);
19
+ expect(back.uniqueKey).toEqual(cursorObject.uniqueKey);
20
+ });
21
+ });
22
+ //# sourceMappingURL=cursor.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.test.js","sourceRoot":"","sources":["../src/cursor.test.ts"],"names":[],"mappings":";;;;;AAAA,gDAAuB;AACvB,qCAAiC;AAEjC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,YAAY,GAAG;YACnB,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,oEAAoE;SAChF,CAAA;QAED,MAAM,MAAM,GAAG,eAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QAC9C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;QACtD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QAEzC,MAAM,IAAI,GAAG,eAAM,CAAC,QAAQ,CAAC,MAAM,CAAE,CAAA;QAErC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QACpD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apibara/protocol",
3
- "version": "0.4.7",
3
+ "version": "0.4.8",
4
4
  "source": "src/index.ts",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -0,0 +1,20 @@
1
+ import Long from 'long'
2
+ import { Cursor } from './cursor'
3
+
4
+ describe('Cursor', () => {
5
+ it('can be converted to and from javascript objects', () => {
6
+ const cursorObject = {
7
+ orderKey: '1234',
8
+ uniqueKey: '0x05dd5e4f023a81a8daaf86b8bf3967b04276a89c81b840e8e55d658323854ad7',
9
+ }
10
+
11
+ const cursor = Cursor.fromObject(cursorObject)
12
+ expect(cursor.orderKey).toEqual(Long.fromNumber(1234))
13
+ expect(cursor.uniqueKey).toHaveLength(32)
14
+
15
+ const back = Cursor.toObject(cursor)!
16
+
17
+ expect(back.orderKey).toEqual(cursorObject.orderKey)
18
+ expect(back.uniqueKey).toEqual(cursorObject.uniqueKey)
19
+ })
20
+ })
package/src/cursor.ts CHANGED
@@ -28,12 +28,38 @@ export const Cursor = {
28
28
  }
29
29
  },
30
30
 
31
+ /**
32
+ * Creates a new cursor from a plain Javascript object.
33
+ */
34
+ fromObject({ orderKey, uniqueKey }: ReturnType<typeof _toObject>): ICursor {
35
+ return {
36
+ orderKey: Long.fromString(orderKey),
37
+ uniqueKey: Buffer.from(uniqueKey.slice(2), 'hex'),
38
+ }
39
+ },
40
+
31
41
  /**
32
42
  * Returns the cursor string representation.
33
43
  */
34
44
  toString: (cursor?: ICursor | null): string | undefined => {
35
45
  if (!cursor) return
36
- let hash = Buffer.from(cursor.uniqueKey).toString('hex')
37
- return `${cursor.orderKey.toString()}/0x${hash}`
46
+ const { orderKey, uniqueKey } = _toObject(cursor)
47
+ return `${orderKey}/${uniqueKey}`
38
48
  },
49
+
50
+ /**
51
+ * Returns the cursor as plain Javascript object.
52
+ */
53
+ toObject: (cursor?: ICursor | null): ReturnType<typeof _toObject> | undefined => {
54
+ if (!cursor) return
55
+ return _toObject(cursor)
56
+ },
57
+ }
58
+
59
+ function _toObject(cursor: ICursor): { orderKey: string; uniqueKey: string } {
60
+ let hash = Buffer.from(cursor.uniqueKey).toString('hex')
61
+ return {
62
+ orderKey: cursor.orderKey.toString(),
63
+ uniqueKey: `0x${hash}`,
64
+ }
39
65
  }