@peerbit/program 2.0.0 → 2.2.0

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.
@@ -58,7 +58,7 @@ export declare class Handler<T extends Manageable<any>> {
58
58
  }) => Promise<T | undefined>;
59
59
  shouldMonitor: (thing: any) => boolean;
60
60
  };
61
- items: Map<string, Manageable<any>>;
61
+ items: Map<string, T>;
62
62
  private _openQueue;
63
63
  constructor(properties: {
64
64
  client: {
@@ -101,12 +101,12 @@ export class Handler {
101
101
  if (this.properties.shouldMonitor(p) &&
102
102
  p.parents.length === 1 &&
103
103
  !p.parents[0]) {
104
- return this._onProgramOpen(p, options?.existing);
104
+ return this._onProgramOpen(p, options?.existing); // TODO types
105
105
  }
106
106
  },
107
107
  onClose: (p) => {
108
108
  if (this.properties.shouldMonitor(p)) {
109
- return this._onProgamClose(p);
109
+ return this._onProgamClose(p); // TODO types
110
110
  }
111
111
  },
112
112
  onDrop: (p) => {
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/handler.ts"],"names":[],"mappings":"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"}
@@ -72,3 +72,5 @@ export declare abstract class Program<Args = any, Events extends ProgramEvents =
72
72
  }): Promise<P | undefined>;
73
73
  static open<T extends Program<Args>, Args = any>(this: Constructor<T>, address: Address, node: ProgramClient, options?: ProgramInitializationOptions<Args, T>): Promise<T>;
74
74
  }
75
+ export declare const getProgramFromVariants: <T extends Program<any, ProgramEvents>>() => Constructor<T>[];
76
+ export declare const getProgramFromVariant: <T extends Program<any, ProgramEvents>>(variant: string) => Constructor<T> | undefined;
@@ -329,4 +329,11 @@ export let Program = Program_1 = class Program {
329
329
  Program = Program_1 = __decorate([
330
330
  variant(0)
331
331
  ], Program);
332
+ export const getProgramFromVariants = () => {
333
+ const deps = Program.prototype[1000]; /// TODO improve BORSH lib to provide all necessary utility methods
334
+ return (deps || []);
335
+ };
336
+ export const getProgramFromVariant = (variant) => {
337
+ return getProgramFromVariants().filter((x) => getSchema(x).variant === variant)[0];
338
+ };
332
339
  //# sourceMappingURL=program.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/program.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/program",
3
- "version": "2.0.0",
3
+ "version": "2.2.0",
4
4
  "description": "Program interface",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -30,10 +30,10 @@
30
30
  "license": "MIT",
31
31
  "dependencies": {
32
32
  "@dao-xyz/borsh": "^5.1.5",
33
- "@peerbit/blocks-interface": "^1.0.5",
34
- "@peerbit/crypto": "1.0.4",
33
+ "@peerbit/blocks-interface": "^1.0.6",
34
+ "@peerbit/crypto": "1.0.5",
35
35
  "@peerbit/lazy-level": "^1.0.2",
36
- "@peerbit/pubsub-interface": "^1.0.5"
36
+ "@peerbit/pubsub-interface": "^1.1.0"
37
37
  },
38
- "gitHead": "32f61ad9f3d5906e13d46f2a80f61c1826a3e817"
38
+ "gitHead": "464e807d679e24b897b7811ac99d6f85fbd756f9"
39
39
  }
package/src/handler.ts CHANGED
@@ -18,7 +18,7 @@ export type OpenOptions<Args, T extends Manageable<Args>> = {
18
18
  timeout?: number;
19
19
  existing?: ProgramMergeStrategy;
20
20
  /*
21
- reset?: boolean; */
21
+ reset?: boolean; */
22
22
  } & ProgramInitializationOptions<Args, T>;
23
23
 
24
24
  export type WithArgs<Args> = { args?: Args };
@@ -61,7 +61,7 @@ export type ProgramInitializationOptions<Args, T extends Manageable<Args>> = {
61
61
  EventOptions;
62
62
 
63
63
  export class Handler<T extends Manageable<any>> {
64
- items: Map<string, Manageable<any>>;
64
+ items: Map<string, T>;
65
65
  private _openQueue: PQueue;
66
66
 
67
67
  constructor(
@@ -97,7 +97,7 @@ export class Handler<T extends Manageable<any>> {
97
97
  }
98
98
 
99
99
  private async _onProgramOpen(
100
- program: Manageable<any>,
100
+ program: T,
101
101
  mergeSrategy?: ProgramMergeStrategy
102
102
  ) {
103
103
  const programAddress = program.address?.toString();
@@ -211,12 +211,12 @@ export class Handler<T extends Manageable<any>> {
211
211
  p.parents.length === 1 &&
212
212
  !p.parents[0]
213
213
  ) {
214
- return this._onProgramOpen(p, options?.existing);
214
+ return this._onProgramOpen(p as T, options?.existing); // TODO types
215
215
  }
216
216
  },
217
217
  onClose: (p) => {
218
218
  if (this.properties.shouldMonitor(p)) {
219
- return this._onProgamClose(p as Manageable<any>);
219
+ return this._onProgamClose(p as T); // TODO types
220
220
  }
221
221
  },
222
222
  onDrop: (p) => {
package/src/program.ts CHANGED
@@ -468,3 +468,18 @@ export abstract class Program<
468
468
  return p as T;
469
469
  }
470
470
  }
471
+
472
+ export const getProgramFromVariants = <
473
+ T extends Program
474
+ >(): Constructor<T>[] => {
475
+ const deps = Program.prototype[1000]; /// TODO improve BORSH lib to provide all necessary utility methods
476
+ return (deps || []) as Constructor<T>[];
477
+ };
478
+
479
+ export const getProgramFromVariant = <T extends Program>(
480
+ variant: string
481
+ ): Constructor<T> | undefined => {
482
+ return getProgramFromVariants().filter(
483
+ (x) => getSchema(x).variant === variant
484
+ )[0] as Constructor<T>;
485
+ };