@helia/utils 2.1.1-760ed27f → 2.1.1-921696f9

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.
@@ -14,8 +14,11 @@ export interface GraphNode<T = unknown, C extends number = number, A extends num
14
14
  path: CID[];
15
15
  }
16
16
  export interface GraphWalker {
17
- walk<T = any>(cid: CID, options?: AbortOptions): AsyncGenerator<GraphNode<T>>;
17
+ walk<T = any>(cid: CID, options?: WalkOptions<T>): AsyncGenerator<GraphNode<T>>;
18
18
  }
19
19
  export declare function depthFirstWalker(components: GraphWalkerComponents, init?: GraphWalkerInit): GraphWalker;
20
20
  export declare function breadthFirstWalker(components: GraphWalkerComponents, init?: GraphWalkerInit): GraphWalker;
21
+ export interface WalkOptions<T> extends AbortOptions {
22
+ includeChild?(child: CID, parent: BlockView<T, number, number, 0 | 1>): boolean;
23
+ }
21
24
  //# sourceMappingURL=graph-walker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph-walker.d.ts","sourceRoot":"","sources":["../../src/graph-walker.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3D,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,UAAU,CAAA;IACtB,QAAQ,EAAE,WAAW,CAAA;CACtB;AAED,MAAM,WAAW,eAAe;CAE/B;AAED,MAAM,WAAW,SAAS,CAAE,CAAC,GAAG,OAAO,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,OAAO,GAAG,CAAC,GAAG,CAAC;IACtH,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,GAAG,EAAE,CAAA;CACZ;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAE,CAAC,GAAG,GAAG,EAAG,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;CAChF;AAED,wBAAgB,gBAAgB,CAAE,UAAU,EAAE,qBAAqB,EAAE,IAAI,GAAE,eAAoB,GAAG,WAAW,CAE5G;AAED,wBAAgB,kBAAkB,CAAE,UAAU,EAAE,qBAAqB,EAAE,IAAI,GAAE,eAAoB,GAAG,WAAW,CAE9G"}
1
+ {"version":3,"file":"graph-walker.d.ts","sourceRoot":"","sources":["../../src/graph-walker.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3D,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,UAAU,CAAA;IACtB,QAAQ,EAAE,WAAW,CAAA;CACtB;AAED,MAAM,WAAW,eAAe;CAE/B;AAED,MAAM,WAAW,SAAS,CAAE,CAAC,GAAG,OAAO,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,OAAO,GAAG,CAAC,GAAG,CAAC;IACtH,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,GAAG,EAAE,CAAA;CACZ;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAE,CAAC,GAAG,GAAG,EAAG,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;CAClF;AAED,wBAAgB,gBAAgB,CAAE,UAAU,EAAE,qBAAqB,EAAE,IAAI,GAAE,eAAoB,GAAG,WAAW,CAE5G;AAED,wBAAgB,kBAAkB,CAAE,UAAU,EAAE,qBAAqB,EAAE,IAAI,GAAE,eAAoB,GAAG,WAAW,CAE9G;AAQD,MAAM,WAAW,WAAW,CAAC,CAAC,CAAE,SAAQ,YAAY;IAClD,YAAY,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAA;CAChF"}
@@ -17,20 +17,23 @@ class AbstractGraphWalker {
17
17
  const queue = this.getQueue();
18
18
  const gen = filter(queue.toGenerator(options), (node) => node != null);
19
19
  let finished = false;
20
- const job = async (options) => {
21
- const cid = options.cid;
22
- const bytes = await toBuffer(this.components.blockstore.get(cid, options));
20
+ const job = async (opts) => {
21
+ const cid = opts.cid;
22
+ const bytes = await toBuffer(this.components.blockstore.get(cid, opts));
23
23
  const block = createUnsafe({
24
24
  cid,
25
25
  bytes,
26
26
  codec: await this.components.getCodec(cid.code)
27
27
  });
28
28
  for (const [, linkedCid] of block.links()) {
29
+ if (options?.includeChild?.(linkedCid, block) === false) {
30
+ continue;
31
+ }
29
32
  queue.add(job, {
30
- ...options,
33
+ ...opts,
31
34
  cid: linkedCid,
32
- depth: options.depth + 1,
33
- path: [...options.path, linkedCid]
35
+ depth: opts.depth + 1,
36
+ path: [...opts.path, linkedCid]
34
37
  })
35
38
  // eslint-disable-next-line no-loop-func
36
39
  .catch(err => {
@@ -43,8 +46,8 @@ class AbstractGraphWalker {
43
46
  }
44
47
  return {
45
48
  block,
46
- depth: options.depth,
47
- path: options.path
49
+ depth: opts.depth,
50
+ path: opts.path
48
51
  };
49
52
  };
50
53
  queue.add(job, {
@@ -1 +1 @@
1
- {"version":3,"file":"graph-walker.js","sourceRoot":"","sources":["../../src/graph-walker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-walker.js","sourceRoot":"","sources":["../../src/graph-walker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,QAAQ,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAyBjD,MAAM,UAAU,gBAAgB,CAAE,UAAiC,EAAE,OAAwB,EAAE;IAC7F,OAAO,IAAI,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAE,UAAiC,EAAE,OAAwB,EAAE;IAC/F,OAAO,IAAI,uBAAuB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AACtD,CAAC;AAYD,MAAe,mBAAmB;IACf,UAAU,CAAuB;IAElD,YAAa,UAAiC,EAAE,IAAqB;QACnE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,CAAE,IAAI,CAAY,GAAQ,EAAE,OAAwB;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,CAAiC,CAAA;QACtG,IAAI,QAAQ,GAAG,KAAK,CAAA;QAEpB,MAAM,GAAG,GAAG,KAAK,EAAE,IAAgB,EAAqC,EAAE;YACxE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;YACpB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;YACvE,MAAM,KAAK,GAAG,YAAY,CAA2B;gBACnD,GAAG;gBACH,KAAK;gBACL,KAAK,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;aAChD,CAAC,CAAA;YAEF,KAAK,MAAM,CAAC,EAAE,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC1C,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;oBACxD,SAAQ;gBACV,CAAC;gBAED,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;oBACb,GAAG,IAAI;oBACP,GAAG,EAAE,SAAS;oBACd,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC;oBACrB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;iBAChC,CAAC;oBACA,wCAAwC;qBACvC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACX,mEAAmE;oBACnE,4CAA4C;oBAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBAChB,CAAC;gBACH,CAAC,CAAC,CAAA;YACN,CAAC;YAED,OAAO;gBACL,KAAK;gBACL,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAA;QACH,CAAC,CAAA;QAED,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YACb,GAAG,OAAO;YACV,GAAG;YACH,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,CAAC,GAAG,CAAC;SACZ,CAAC;aACC,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,sEAAsE;YACtE,yCAAyC;YACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAChB,CAAC;QACH,CAAC,CAAC,CAAA;QAEJ,IAAI,CAAC;YACH,KAAM,CAAC,CAAC,GAAG,CAAA;QACb,CAAC;gBAAS,CAAC;YACT,QAAQ,GAAG,IAAI,CAAA;YACf,mCAAmC;YACnC,KAAK,CAAC,KAAK,EAAE,CAAA;QACf,CAAC;IACH,CAAC;CAGF;AAED,MAAM,qBAAsB,SAAQ,mBAAmB;IACrD,QAAQ;QACN,OAAO,IAAI,KAAK,CAAuC;YACrD,WAAW,EAAE,CAAC;YACd,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACb,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBACxC,OAAO,CAAC,CAAA;gBACV,CAAC;gBAED,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBACtC,OAAO,CAAC,CAAA;gBACV,CAAC;gBAED,OAAO,CAAC,CAAC,CAAA;YACX,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,uBAAwB,SAAQ,mBAAmB;IACvD,QAAQ;QACN,OAAO,IAAI,KAAK,CAAuC;YACrD,WAAW,EAAE,CAAC;YACd,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACb,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBACxC,OAAO,CAAC,CAAA;gBACV,CAAC;gBAED,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBACtC,OAAO,CAAC,CAAC,CAAA;gBACX,CAAC;gBAED,OAAO,CAAC,CAAA;YACV,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helia/utils",
3
- "version": "2.1.1-760ed27f",
3
+ "version": "2.1.1-921696f9",
4
4
  "description": "Shared code that implements the Helia API",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/ipfs/helia/tree/main/packages/utils#readme",
@@ -47,7 +47,7 @@
47
47
  "test:electron-main": "aegir test -t electron-main"
48
48
  },
49
49
  "dependencies": {
50
- "@helia/interface": "6.0.0-760ed27f",
50
+ "@helia/interface": "6.0.0-921696f9",
51
51
  "@ipld/dag-cbor": "^9.2.5",
52
52
  "@ipld/dag-json": "^10.2.5",
53
53
  "@ipld/dag-pb": "^4.1.5",
@@ -23,7 +23,7 @@ export interface GraphNode <T = unknown, C extends number = number, A extends nu
23
23
  }
24
24
 
25
25
  export interface GraphWalker {
26
- walk <T = any> (cid: CID, options?: AbortOptions): AsyncGenerator<GraphNode<T>>
26
+ walk <T = any> (cid: CID, options?: WalkOptions<T>): AsyncGenerator<GraphNode<T>>
27
27
  }
28
28
 
29
29
  export function depthFirstWalker (components: GraphWalkerComponents, init: GraphWalkerInit = {}): GraphWalker {
@@ -40,6 +40,10 @@ interface JobOptions extends AbortOptions {
40
40
  path: CID[]
41
41
  }
42
42
 
43
+ export interface WalkOptions<T> extends AbortOptions {
44
+ includeChild?(child: CID, parent: BlockView<T, number, number, 0 | 1>): boolean
45
+ }
46
+
43
47
  abstract class AbstractGraphWalker {
44
48
  private readonly components: GraphWalkerComponents
45
49
 
@@ -47,14 +51,14 @@ abstract class AbstractGraphWalker {
47
51
  this.components = components
48
52
  }
49
53
 
50
- async * walk <T = any> (cid: CID, options?: AbortOptions): AsyncGenerator<GraphNode<T>> {
54
+ async * walk <T = any> (cid: CID, options?: WalkOptions<T>): AsyncGenerator<GraphNode<T>> {
51
55
  const queue = this.getQueue()
52
56
  const gen = filter(queue.toGenerator(options), (node) => node != null) as AsyncGenerator<GraphNode<T>>
53
57
  let finished = false
54
58
 
55
- const job = async (options: JobOptions): Promise<GraphNode<T> | undefined> => {
56
- const cid = options.cid
57
- const bytes = await toBuffer(this.components.blockstore.get(cid, options))
59
+ const job = async (opts: JobOptions): Promise<GraphNode<T> | undefined> => {
60
+ const cid = opts.cid
61
+ const bytes = await toBuffer(this.components.blockstore.get(cid, opts))
58
62
  const block = createUnsafe<T, number, number, 0 | 1>({
59
63
  cid,
60
64
  bytes,
@@ -62,11 +66,15 @@ abstract class AbstractGraphWalker {
62
66
  })
63
67
 
64
68
  for (const [, linkedCid] of block.links()) {
69
+ if (options?.includeChild?.(linkedCid, block) === false) {
70
+ continue
71
+ }
72
+
65
73
  queue.add(job, {
66
- ...options,
74
+ ...opts,
67
75
  cid: linkedCid,
68
- depth: options.depth + 1,
69
- path: [...options.path, linkedCid]
76
+ depth: opts.depth + 1,
77
+ path: [...opts.path, linkedCid]
70
78
  })
71
79
  // eslint-disable-next-line no-loop-func
72
80
  .catch(err => {
@@ -80,8 +88,8 @@ abstract class AbstractGraphWalker {
80
88
 
81
89
  return {
82
90
  block,
83
- depth: options.depth,
84
- path: options.path
91
+ depth: opts.depth,
92
+ path: opts.path
85
93
  }
86
94
  }
87
95