@peerbit/string 2.0.3 → 2.0.4

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.
@@ -1,7 +1,7 @@
1
- import { AppendOptions, CanAppend, Entry } from "@peerbit/log";
1
+ import { AppendOptions, CanAppend, Change, Entry } from "@peerbit/log";
2
2
  import { SharedLog, SharedLogOptions } from "@peerbit/shared-log";
3
3
  import { SignatureWithKey } from "@peerbit/crypto";
4
- import { Program } from "@peerbit/program";
4
+ import { Program, ProgramEvents } from "@peerbit/program";
5
5
  import { RPCOptions, CanRead, RPC } from "@peerbit/rpc";
6
6
  import { StringOperation, StringIndex } from "./string-index.js";
7
7
  import { StringQueryRequest, StringResult } from "./query.js";
@@ -10,12 +10,15 @@ export declare const STRING_STORE_TYPE = "string_store";
10
10
  export type StringStoreOptions = {
11
11
  canRead?: (key: SignatureWithKey) => Promise<boolean>;
12
12
  };
13
+ export interface StringEvents {
14
+ change: CustomEvent<Change<StringOperation>>;
15
+ }
13
16
  type Args = {
14
17
  canRead?: CanRead;
15
18
  canAppend?: CanAppend<StringOperation>;
16
19
  log?: SharedLogOptions;
17
20
  };
18
- export declare class DString extends Program {
21
+ export declare class DString extends Program<Args, StringEvents & ProgramEvents> {
19
22
  _log: SharedLog<StringOperation>;
20
23
  query: RPC<StringQueryRequest, StringResult>;
21
24
  _index: StringIndex;
@@ -14,6 +14,7 @@ import { RPC } from "@peerbit/rpc";
14
14
  import { logger as loggerFn } from "@peerbit/logger";
15
15
  import { StringOperation, StringIndex, encoding } from "./string-index.js";
16
16
  import { RangeMetadata, RangeMetadatas, StringMatch, StringQueryRequest, StringResult, } from "./query.js";
17
+ import { CustomEvent } from "@libp2p/interfaces/events";
17
18
  const logger = loggerFn({ module: "string" });
18
19
  export const STRING_STORE_TYPE = "string_store";
19
20
  const findAllOccurrences = (str, substr) => {
@@ -43,7 +44,12 @@ export let DString = class DString extends Program {
43
44
  await this._log.open({
44
45
  encoding,
45
46
  canAppend: this.canAppend.bind(this),
46
- onChange: this._index.updateIndex.bind(this._index),
47
+ onChange: async (change) => {
48
+ await this._index.updateIndex(change);
49
+ this.events.dispatchEvent(new CustomEvent("change", {
50
+ detail: change,
51
+ }));
52
+ },
47
53
  });
48
54
  await this.query.open({
49
55
  ...options,
@@ -1 +1 @@
1
- {"version":3,"file":"string-store.js","sourceRoot":"","sources":["../../src/string-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"string-store.js","sourceRoot":"","sources":["../../src/string-store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/string",
3
- "version": "2.0.3",
3
+ "version": "2.0.4",
4
4
  "description": "String store",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -40,5 +40,5 @@
40
40
  "devDependencies": {
41
41
  "@peerbit/test-utils": "^1.0.15"
42
42
  },
43
- "gitHead": "4752c301fb49b2f937b4039533ff5bc3537da3e0"
43
+ "gitHead": "638f34214cdee5fdd16ee1aa8089451edf3a121d"
44
44
  }
@@ -1,8 +1,8 @@
1
1
  import { field, variant } from "@dao-xyz/borsh";
2
- import { AppendOptions, CanAppend, Entry } from "@peerbit/log";
2
+ import { AppendOptions, CanAppend, Change, Entry } from "@peerbit/log";
3
3
  import { SharedLog, SharedLogOptions } from "@peerbit/shared-log";
4
4
  import { SignatureWithKey } from "@peerbit/crypto";
5
- import { Program } from "@peerbit/program";
5
+ import { Program, ProgramEvents } from "@peerbit/program";
6
6
  import { RPCOptions, CanRead, RPC } from "@peerbit/rpc";
7
7
  import { logger as loggerFn } from "@peerbit/logger";
8
8
  import { StringOperation, StringIndex, encoding } from "./string-index.js";
@@ -13,6 +13,7 @@ import {
13
13
  StringQueryRequest,
14
14
  StringResult,
15
15
  } from "./query.js";
16
+ import { CustomEvent } from "@libp2p/interfaces/events";
16
17
 
17
18
  import { Range } from "./range.js";
18
19
 
@@ -37,13 +38,18 @@ export type StringStoreOptions = {
37
38
  canRead?: (key: SignatureWithKey) => Promise<boolean>;
38
39
  };
39
40
 
41
+ export interface StringEvents {
42
+ change: CustomEvent<Change<StringOperation>>;
43
+ }
44
+
40
45
  type Args = {
41
46
  canRead?: CanRead;
42
47
  canAppend?: CanAppend<StringOperation>;
43
48
  log?: SharedLogOptions;
44
49
  };
50
+
45
51
  @variant("dstring")
46
- export class DString extends Program {
52
+ export class DString extends Program<Args, StringEvents & ProgramEvents> {
47
53
  @field({ type: SharedLog })
48
54
  _log: SharedLog<StringOperation>;
49
55
 
@@ -72,7 +78,14 @@ export class DString extends Program {
72
78
  await this._log.open({
73
79
  encoding,
74
80
  canAppend: this.canAppend.bind(this),
75
- onChange: this._index.updateIndex.bind(this._index),
81
+ onChange: async (change) => {
82
+ await this._index.updateIndex(change);
83
+ this.events.dispatchEvent(
84
+ new CustomEvent("change", {
85
+ detail: change,
86
+ })
87
+ );
88
+ },
76
89
  });
77
90
 
78
91
  await this.query.open({