@metamask/polling-controller 10.0.0 → 11.0.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.
Files changed (75) hide show
  1. package/CHANGELOG.md +29 -1
  2. package/dist/AbstractPollingController.cjs +87 -0
  3. package/dist/AbstractPollingController.cjs.map +1 -0
  4. package/dist/AbstractPollingController.d.cts +21 -0
  5. package/dist/AbstractPollingController.d.cts.map +1 -0
  6. package/dist/AbstractPollingController.d.mts +21 -0
  7. package/dist/AbstractPollingController.d.mts.map +1 -0
  8. package/dist/AbstractPollingController.mjs +84 -7
  9. package/dist/AbstractPollingController.mjs.map +1 -1
  10. package/dist/BlockTrackerPollingController.cjs +72 -0
  11. package/dist/BlockTrackerPollingController.cjs.map +1 -0
  12. package/dist/BlockTrackerPollingController.d.cts +54 -0
  13. package/dist/BlockTrackerPollingController.d.cts.map +1 -0
  14. package/dist/BlockTrackerPollingController.d.mts +54 -0
  15. package/dist/BlockTrackerPollingController.d.mts.map +1 -0
  16. package/dist/BlockTrackerPollingController.mjs +64 -10
  17. package/dist/BlockTrackerPollingController.mjs.map +1 -1
  18. package/dist/StaticIntervalPollingController.cjs +82 -0
  19. package/dist/StaticIntervalPollingController.cjs.map +1 -0
  20. package/dist/StaticIntervalPollingController.d.cts +52 -0
  21. package/dist/StaticIntervalPollingController.d.cts.map +1 -0
  22. package/dist/StaticIntervalPollingController.d.mts +52 -0
  23. package/dist/StaticIntervalPollingController.d.mts.map +1 -0
  24. package/dist/StaticIntervalPollingController.mjs +74 -10
  25. package/dist/StaticIntervalPollingController.mjs.map +1 -1
  26. package/dist/index.cjs +12 -0
  27. package/dist/index.cjs.map +1 -0
  28. package/dist/index.d.cts +4 -0
  29. package/dist/index.d.cts.map +1 -0
  30. package/dist/index.d.mts +4 -0
  31. package/dist/index.d.mts.map +1 -0
  32. package/dist/index.mjs +2 -19
  33. package/dist/index.mjs.map +1 -1
  34. package/dist/types.cjs +3 -0
  35. package/dist/types.cjs.map +1 -0
  36. package/dist/types.d.cts +21 -0
  37. package/dist/types.d.cts.map +1 -0
  38. package/dist/types.d.mts +21 -0
  39. package/dist/types.d.mts.map +1 -0
  40. package/dist/types.mjs +1 -0
  41. package/dist/types.mjs.map +1 -1
  42. package/package.json +15 -10
  43. package/dist/AbstractPollingController.js +0 -9
  44. package/dist/AbstractPollingController.js.map +0 -1
  45. package/dist/BlockTrackerPollingController.js +0 -12
  46. package/dist/BlockTrackerPollingController.js.map +0 -1
  47. package/dist/StaticIntervalPollingController.js +0 -12
  48. package/dist/StaticIntervalPollingController.js.map +0 -1
  49. package/dist/chunk-E2WT3D73.mjs +0 -94
  50. package/dist/chunk-E2WT3D73.mjs.map +0 -1
  51. package/dist/chunk-JCXUPRTT.js +0 -94
  52. package/dist/chunk-JCXUPRTT.js.map +0 -1
  53. package/dist/chunk-JVLLYBTK.js +0 -69
  54. package/dist/chunk-JVLLYBTK.js.map +0 -1
  55. package/dist/chunk-L32FFEZO.mjs +0 -71
  56. package/dist/chunk-L32FFEZO.mjs.map +0 -1
  57. package/dist/chunk-RD6EX3RW.js +0 -71
  58. package/dist/chunk-RD6EX3RW.js.map +0 -1
  59. package/dist/chunk-YETJAOVF.mjs +0 -69
  60. package/dist/chunk-YETJAOVF.mjs.map +0 -1
  61. package/dist/index.js +0 -20
  62. package/dist/index.js.map +0 -1
  63. package/dist/tsconfig.build.tsbuildinfo +0 -1
  64. package/dist/types/AbstractPollingController.d.ts +0 -22
  65. package/dist/types/AbstractPollingController.d.ts.map +0 -1
  66. package/dist/types/BlockTrackerPollingController.d.ts +0 -47
  67. package/dist/types/BlockTrackerPollingController.d.ts.map +0 -1
  68. package/dist/types/StaticIntervalPollingController.d.ts +0 -58
  69. package/dist/types/StaticIntervalPollingController.d.ts.map +0 -1
  70. package/dist/types/index.d.ts +0 -4
  71. package/dist/types/index.d.ts.map +0 -1
  72. package/dist/types/types.d.ts +0 -22
  73. package/dist/types/types.d.ts.map +0 -1
  74. package/dist/types.js +0 -1
  75. package/dist/types.js.map +0 -1
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.StaticIntervalPollingControllerV1 = exports.StaticIntervalPollingController = exports.StaticIntervalPollingControllerOnly = void 0;
15
+ const base_controller_1 = require("@metamask/base-controller");
16
+ const AbstractPollingController_1 = require("./AbstractPollingController.cjs");
17
+ /**
18
+ * StaticIntervalPollingControllerMixin
19
+ * A polling controller that polls on a static interval.
20
+ *
21
+ * @param Base - The base class to mix onto.
22
+ * @returns The composed class.
23
+ */
24
+ // TODO: Either fix this lint violation or explain why it's necessary to ignore.
25
+ // eslint-disable-next-line @typescript-eslint/naming-convention
26
+ function StaticIntervalPollingControllerMixin(Base) {
27
+ var _StaticIntervalPollingController_intervalIds, _StaticIntervalPollingController_intervalLength;
28
+ class StaticIntervalPollingController extends (0, AbstractPollingController_1.AbstractPollingControllerBaseMixin)(Base) {
29
+ constructor() {
30
+ super(...arguments);
31
+ _StaticIntervalPollingController_intervalIds.set(this, {});
32
+ _StaticIntervalPollingController_intervalLength.set(this, 1000);
33
+ }
34
+ setIntervalLength(intervalLength) {
35
+ __classPrivateFieldSet(this, _StaticIntervalPollingController_intervalLength, intervalLength, "f");
36
+ }
37
+ getIntervalLength() {
38
+ return __classPrivateFieldGet(this, _StaticIntervalPollingController_intervalLength, "f");
39
+ }
40
+ _startPolling(input) {
41
+ if (!__classPrivateFieldGet(this, _StaticIntervalPollingController_intervalLength, "f")) {
42
+ throw new Error('intervalLength must be defined and greater than 0');
43
+ }
44
+ const key = (0, AbstractPollingController_1.getKey)(input);
45
+ const existingInterval = __classPrivateFieldGet(this, _StaticIntervalPollingController_intervalIds, "f")[key];
46
+ this._stopPollingByPollingTokenSetId(key);
47
+ // eslint-disable-next-line no-multi-assign
48
+ const intervalId = (__classPrivateFieldGet(this, _StaticIntervalPollingController_intervalIds, "f")[key] = setTimeout(
49
+ // TODO: Either fix this lint violation or explain why it's necessary to ignore.
50
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
51
+ async () => {
52
+ try {
53
+ await this._executePoll(input);
54
+ }
55
+ catch (error) {
56
+ console.error(error);
57
+ }
58
+ if (intervalId === __classPrivateFieldGet(this, _StaticIntervalPollingController_intervalIds, "f")[key]) {
59
+ this._startPolling(input);
60
+ }
61
+ }, existingInterval ? __classPrivateFieldGet(this, _StaticIntervalPollingController_intervalLength, "f") : 0));
62
+ }
63
+ _stopPollingByPollingTokenSetId(key) {
64
+ const intervalId = __classPrivateFieldGet(this, _StaticIntervalPollingController_intervalIds, "f")[key];
65
+ if (intervalId) {
66
+ clearTimeout(intervalId);
67
+ delete __classPrivateFieldGet(this, _StaticIntervalPollingController_intervalIds, "f")[key];
68
+ }
69
+ }
70
+ }
71
+ _StaticIntervalPollingController_intervalIds = new WeakMap(), _StaticIntervalPollingController_intervalLength = new WeakMap();
72
+ return StaticIntervalPollingController;
73
+ }
74
+ class Empty {
75
+ }
76
+ const StaticIntervalPollingControllerOnly = () => StaticIntervalPollingControllerMixin(Empty);
77
+ exports.StaticIntervalPollingControllerOnly = StaticIntervalPollingControllerOnly;
78
+ const StaticIntervalPollingController = () => StaticIntervalPollingControllerMixin(base_controller_1.BaseController);
79
+ exports.StaticIntervalPollingController = StaticIntervalPollingController;
80
+ const StaticIntervalPollingControllerV1 = () => StaticIntervalPollingControllerMixin(base_controller_1.BaseControllerV1);
81
+ exports.StaticIntervalPollingControllerV1 = StaticIntervalPollingControllerV1;
82
+ //# sourceMappingURL=StaticIntervalPollingController.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticIntervalPollingController.cjs","sourceRoot":"","sources":["../src/StaticIntervalPollingController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAA6E;AAG7E,+EAGqC;AAOrC;;;;;;GAMG;AACH,gFAAgF;AAChF,gEAAgE;AAChE,SAAS,oCAAoC,CAG3C,IAAW;;IACX,MAAe,+BACb,SAAQ,IAAA,8DAAkC,EAAsB,IAAI,CAAC;QADvE;;YAIW,uDAA0D,EAAE,EAAC;YAEtE,0DAAsC,IAAI,EAAC;QA4C7C,CAAC;QA1CC,iBAAiB,CAAC,cAAsB;YACtC,uBAAA,IAAI,mDAAmB,cAAc,MAAA,CAAC;QACxC,CAAC;QAED,iBAAiB;YACf,OAAO,uBAAA,IAAI,uDAAgB,CAAC;QAC9B,CAAC;QAED,aAAa,CAAC,KAAmB;YAC/B,IAAI,CAAC,uBAAA,IAAI,uDAAgB,EAAE;gBACzB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;aACtE;YAED,MAAM,GAAG,GAAG,IAAA,kCAAM,EAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,gBAAgB,GAAG,uBAAA,IAAI,oDAAa,CAAC,GAAG,CAAC,CAAC;YAChD,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,CAAC;YAE1C,2CAA2C;YAC3C,MAAM,UAAU,GAAG,CAAC,uBAAA,IAAI,oDAAa,CAAC,GAAG,CAAC,GAAG,UAAU;YACrD,gFAAgF;YAChF,kEAAkE;YAClE,KAAK,IAAI,EAAE;gBACT,IAAI;oBACF,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;iBAChC;gBAAC,OAAO,KAAK,EAAE;oBACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBACtB;gBACD,IAAI,UAAU,KAAK,uBAAA,IAAI,oDAAa,CAAC,GAAG,CAAC,EAAE;oBACzC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBAC3B;YACH,CAAC,EACD,gBAAgB,CAAC,CAAC,CAAC,uBAAA,IAAI,uDAAgB,CAAC,CAAC,CAAC,CAAC,CAC5C,CAAC,CAAC;QACL,CAAC;QAED,+BAA+B,CAAC,GAAsB;YACpD,MAAM,UAAU,GAAG,uBAAA,IAAI,oDAAa,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,UAAU,EAAE;gBACd,YAAY,CAAC,UAAU,CAAC,CAAC;gBACzB,OAAO,uBAAA,IAAI,oDAAa,CAAC,GAAG,CAAC,CAAC;aAC/B;QACH,CAAC;KACF;;IAED,OAAO,+BAA+B,CAAC;AACzC,CAAC;AAED,MAAM,KAAK;CAAG;AAEP,MAAM,mCAAmC,GAAG,GAE/C,EAAE,CAAC,oCAAoC,CAA6B,KAAK,CAAC,CAAC;AAFlE,QAAA,mCAAmC,uCAE+B;AAExE,MAAM,+BAA+B,GAAG,GAA8B,EAAE,CAC7E,oCAAoC,CAClC,gCAAc,CACf,CAAC;AAHS,QAAA,+BAA+B,mCAGxC;AAEG,MAAM,iCAAiC,GAAG,GAE7C,EAAE,CACJ,oCAAoC,CAClC,kCAAgB,CACjB,CAAC;AALS,QAAA,iCAAiC,qCAK1C","sourcesContent":["import { BaseController, BaseControllerV1 } from '@metamask/base-controller';\nimport type { Json } from '@metamask/utils';\n\nimport {\n AbstractPollingControllerBaseMixin,\n getKey,\n} from './AbstractPollingController';\nimport type {\n Constructor,\n IPollingController,\n PollingTokenSetId,\n} from './types';\n\n/**\n * StaticIntervalPollingControllerMixin\n * A polling controller that polls on a static interval.\n *\n * @param Base - The base class to mix onto.\n * @returns The composed class.\n */\n// TODO: Either fix this lint violation or explain why it's necessary to ignore.\n// eslint-disable-next-line @typescript-eslint/naming-convention\nfunction StaticIntervalPollingControllerMixin<\n TBase extends Constructor,\n PollingInput extends Json,\n>(Base: TBase) {\n abstract class StaticIntervalPollingController\n extends AbstractPollingControllerBaseMixin<TBase, PollingInput>(Base)\n implements IPollingController<PollingInput>\n {\n readonly #intervalIds: Record<PollingTokenSetId, NodeJS.Timeout> = {};\n\n #intervalLength: number | undefined = 1000;\n\n setIntervalLength(intervalLength: number) {\n this.#intervalLength = intervalLength;\n }\n\n getIntervalLength() {\n return this.#intervalLength;\n }\n\n _startPolling(input: PollingInput) {\n if (!this.#intervalLength) {\n throw new Error('intervalLength must be defined and greater than 0');\n }\n\n const key = getKey(input);\n const existingInterval = this.#intervalIds[key];\n this._stopPollingByPollingTokenSetId(key);\n\n // eslint-disable-next-line no-multi-assign\n const intervalId = (this.#intervalIds[key] = setTimeout(\n // TODO: Either fix this lint violation or explain why it's necessary to ignore.\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n async () => {\n try {\n await this._executePoll(input);\n } catch (error) {\n console.error(error);\n }\n if (intervalId === this.#intervalIds[key]) {\n this._startPolling(input);\n }\n },\n existingInterval ? this.#intervalLength : 0,\n ));\n }\n\n _stopPollingByPollingTokenSetId(key: PollingTokenSetId) {\n const intervalId = this.#intervalIds[key];\n if (intervalId) {\n clearTimeout(intervalId);\n delete this.#intervalIds[key];\n }\n }\n }\n\n return StaticIntervalPollingController;\n}\n\nclass Empty {}\n\nexport const StaticIntervalPollingControllerOnly = <\n PollingInput extends Json,\n>() => StaticIntervalPollingControllerMixin<typeof Empty, PollingInput>(Empty);\n\nexport const StaticIntervalPollingController = <PollingInput extends Json>() =>\n StaticIntervalPollingControllerMixin<typeof BaseController, PollingInput>(\n BaseController,\n );\n\nexport const StaticIntervalPollingControllerV1 = <\n PollingInput extends Json,\n>() =>\n StaticIntervalPollingControllerMixin<typeof BaseControllerV1, PollingInput>(\n BaseControllerV1,\n );\n"]}
@@ -0,0 +1,52 @@
1
+ import { BaseController, BaseControllerV1 } from "@metamask/base-controller";
2
+ import type { Json } from "@metamask/utils";
3
+ import type { PollingTokenSetId } from "./types.cjs";
4
+ declare class Empty {
5
+ }
6
+ export declare const StaticIntervalPollingControllerOnly: <PollingInput extends Json>() => (abstract new (...args: any[]) => {
7
+ readonly "__#784842@#intervalIds": Record<PollingTokenSetId, NodeJS.Timeout>;
8
+ "__#784842@#intervalLength": number | undefined;
9
+ setIntervalLength(intervalLength: number): void;
10
+ getIntervalLength(): number | undefined;
11
+ _startPolling(input: PollingInput): void;
12
+ _stopPollingByPollingTokenSetId(key: PollingTokenSetId): void;
13
+ readonly "__#784834@#pollingTokenSets": Map<string, Set<string>>;
14
+ "__#784834@#callbacks": Map<string, Set<(input: PollingInput) => void>>;
15
+ _executePoll(input: PollingInput): Promise<void>;
16
+ startPolling(input: PollingInput): string;
17
+ stopAllPolling(): void;
18
+ stopPollingByPollingToken(pollingToken: string): void;
19
+ onPollingComplete(input: PollingInput, callback: (input: PollingInput) => void): void;
20
+ }) & typeof Empty;
21
+ export declare const StaticIntervalPollingController: <PollingInput extends Json>() => (abstract new (...args: any[]) => {
22
+ readonly "__#784842@#intervalIds": Record<PollingTokenSetId, NodeJS.Timeout>;
23
+ "__#784842@#intervalLength": number | undefined;
24
+ setIntervalLength(intervalLength: number): void;
25
+ getIntervalLength(): number | undefined;
26
+ _startPolling(input: PollingInput): void;
27
+ _stopPollingByPollingTokenSetId(key: PollingTokenSetId): void;
28
+ readonly "__#784834@#pollingTokenSets": Map<string, Set<string>>;
29
+ "__#784834@#callbacks": Map<string, Set<(input: PollingInput) => void>>;
30
+ _executePoll(input: PollingInput): Promise<void>;
31
+ startPolling(input: PollingInput): string;
32
+ stopAllPolling(): void;
33
+ stopPollingByPollingToken(pollingToken: string): void;
34
+ onPollingComplete(input: PollingInput, callback: (input: PollingInput) => void): void;
35
+ }) & typeof BaseController;
36
+ export declare const StaticIntervalPollingControllerV1: <PollingInput extends Json>() => (abstract new (...args: any[]) => {
37
+ readonly "__#784842@#intervalIds": Record<PollingTokenSetId, NodeJS.Timeout>;
38
+ "__#784842@#intervalLength": number | undefined;
39
+ setIntervalLength(intervalLength: number): void;
40
+ getIntervalLength(): number | undefined;
41
+ _startPolling(input: PollingInput): void;
42
+ _stopPollingByPollingTokenSetId(key: PollingTokenSetId): void;
43
+ readonly "__#784834@#pollingTokenSets": Map<string, Set<string>>;
44
+ "__#784834@#callbacks": Map<string, Set<(input: PollingInput) => void>>;
45
+ _executePoll(input: PollingInput): Promise<void>;
46
+ startPolling(input: PollingInput): string;
47
+ stopAllPolling(): void;
48
+ stopPollingByPollingToken(pollingToken: string): void;
49
+ onPollingComplete(input: PollingInput, callback: (input: PollingInput) => void): void;
50
+ }) & typeof BaseControllerV1;
51
+ export {};
52
+ //# sourceMappingURL=StaticIntervalPollingController.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticIntervalPollingController.d.cts","sourceRoot":"","sources":["../src/StaticIntervalPollingController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,kCAAkC;AAC7E,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAM5C,OAAO,KAAK,EAGV,iBAAiB,EAClB,oBAAgB;AAsEjB,cAAM,KAAK;CAAG;AAEd,eAAO,MAAM,mCAAmC;uCArDrB,OAAO,iBAAiB,EAAE,OAAO,OAAO,CAAC;iCAE/C,MAAM,GAAG,SAAS;sCAED,MAAM;;;yCAmCH,iBAAiB;;;;;;;;iBAgBoB,CAAC;AAE/E,eAAO,MAAM,+BAA+B;uCAzDjB,OAAO,iBAAiB,EAAE,OAAO,OAAO,CAAC;iCAE/C,MAAM,GAAG,SAAS;sCAED,MAAM;;;yCAmCH,iBAAiB;;;;;;;;0BAqBvD,CAAC;AAEJ,eAAO,MAAM,iCAAiC;uCA9DnB,OAAO,iBAAiB,EAAE,OAAO,OAAO,CAAC;iCAE/C,MAAM,GAAG,SAAS;sCAED,MAAM;;;yCAmCH,iBAAiB;;;;;;;;4BA4BvD,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { BaseController, BaseControllerV1 } from "@metamask/base-controller";
2
+ import type { Json } from "@metamask/utils";
3
+ import type { PollingTokenSetId } from "./types.mjs";
4
+ declare class Empty {
5
+ }
6
+ export declare const StaticIntervalPollingControllerOnly: <PollingInput extends Json>() => (abstract new (...args: any[]) => {
7
+ readonly "__#784842@#intervalIds": Record<PollingTokenSetId, NodeJS.Timeout>;
8
+ "__#784842@#intervalLength": number | undefined;
9
+ setIntervalLength(intervalLength: number): void;
10
+ getIntervalLength(): number | undefined;
11
+ _startPolling(input: PollingInput): void;
12
+ _stopPollingByPollingTokenSetId(key: PollingTokenSetId): void;
13
+ readonly "__#784834@#pollingTokenSets": Map<string, Set<string>>;
14
+ "__#784834@#callbacks": Map<string, Set<(input: PollingInput) => void>>;
15
+ _executePoll(input: PollingInput): Promise<void>;
16
+ startPolling(input: PollingInput): string;
17
+ stopAllPolling(): void;
18
+ stopPollingByPollingToken(pollingToken: string): void;
19
+ onPollingComplete(input: PollingInput, callback: (input: PollingInput) => void): void;
20
+ }) & typeof Empty;
21
+ export declare const StaticIntervalPollingController: <PollingInput extends Json>() => (abstract new (...args: any[]) => {
22
+ readonly "__#784842@#intervalIds": Record<PollingTokenSetId, NodeJS.Timeout>;
23
+ "__#784842@#intervalLength": number | undefined;
24
+ setIntervalLength(intervalLength: number): void;
25
+ getIntervalLength(): number | undefined;
26
+ _startPolling(input: PollingInput): void;
27
+ _stopPollingByPollingTokenSetId(key: PollingTokenSetId): void;
28
+ readonly "__#784834@#pollingTokenSets": Map<string, Set<string>>;
29
+ "__#784834@#callbacks": Map<string, Set<(input: PollingInput) => void>>;
30
+ _executePoll(input: PollingInput): Promise<void>;
31
+ startPolling(input: PollingInput): string;
32
+ stopAllPolling(): void;
33
+ stopPollingByPollingToken(pollingToken: string): void;
34
+ onPollingComplete(input: PollingInput, callback: (input: PollingInput) => void): void;
35
+ }) & typeof BaseController;
36
+ export declare const StaticIntervalPollingControllerV1: <PollingInput extends Json>() => (abstract new (...args: any[]) => {
37
+ readonly "__#784842@#intervalIds": Record<PollingTokenSetId, NodeJS.Timeout>;
38
+ "__#784842@#intervalLength": number | undefined;
39
+ setIntervalLength(intervalLength: number): void;
40
+ getIntervalLength(): number | undefined;
41
+ _startPolling(input: PollingInput): void;
42
+ _stopPollingByPollingTokenSetId(key: PollingTokenSetId): void;
43
+ readonly "__#784834@#pollingTokenSets": Map<string, Set<string>>;
44
+ "__#784834@#callbacks": Map<string, Set<(input: PollingInput) => void>>;
45
+ _executePoll(input: PollingInput): Promise<void>;
46
+ startPolling(input: PollingInput): string;
47
+ stopAllPolling(): void;
48
+ stopPollingByPollingToken(pollingToken: string): void;
49
+ onPollingComplete(input: PollingInput, callback: (input: PollingInput) => void): void;
50
+ }) & typeof BaseControllerV1;
51
+ export {};
52
+ //# sourceMappingURL=StaticIntervalPollingController.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticIntervalPollingController.d.mts","sourceRoot":"","sources":["../src/StaticIntervalPollingController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,kCAAkC;AAC7E,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAM5C,OAAO,KAAK,EAGV,iBAAiB,EAClB,oBAAgB;AAsEjB,cAAM,KAAK;CAAG;AAEd,eAAO,MAAM,mCAAmC;uCArDrB,OAAO,iBAAiB,EAAE,OAAO,OAAO,CAAC;iCAE/C,MAAM,GAAG,SAAS;sCAED,MAAM;;;yCAmCH,iBAAiB;;;;;;;;iBAgBoB,CAAC;AAE/E,eAAO,MAAM,+BAA+B;uCAzDjB,OAAO,iBAAiB,EAAE,OAAO,OAAO,CAAC;iCAE/C,MAAM,GAAG,SAAS;sCAED,MAAM;;;yCAmCH,iBAAiB;;;;;;;;0BAqBvD,CAAC;AAEJ,eAAO,MAAM,iCAAiC;uCA9DnB,OAAO,iBAAiB,EAAE,OAAO,OAAO,CAAC;iCAE/C,MAAM,GAAG,SAAS;sCAED,MAAM;;;yCAmCH,iBAAiB;;;;;;;;4BA4BvD,CAAC"}
@@ -1,12 +1,76 @@
1
- import {
2
- StaticIntervalPollingController,
3
- StaticIntervalPollingControllerOnly,
4
- StaticIntervalPollingControllerV1
5
- } from "./chunk-L32FFEZO.mjs";
6
- import "./chunk-E2WT3D73.mjs";
7
- export {
8
- StaticIntervalPollingController,
9
- StaticIntervalPollingControllerOnly,
10
- StaticIntervalPollingControllerV1
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
6
  };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ import { BaseController, BaseControllerV1 } from "@metamask/base-controller";
13
+ import { AbstractPollingControllerBaseMixin, getKey } from "./AbstractPollingController.mjs";
14
+ /**
15
+ * StaticIntervalPollingControllerMixin
16
+ * A polling controller that polls on a static interval.
17
+ *
18
+ * @param Base - The base class to mix onto.
19
+ * @returns The composed class.
20
+ */
21
+ // TODO: Either fix this lint violation or explain why it's necessary to ignore.
22
+ // eslint-disable-next-line @typescript-eslint/naming-convention
23
+ function StaticIntervalPollingControllerMixin(Base) {
24
+ var _StaticIntervalPollingController_intervalIds, _StaticIntervalPollingController_intervalLength;
25
+ class StaticIntervalPollingController extends AbstractPollingControllerBaseMixin(Base) {
26
+ constructor() {
27
+ super(...arguments);
28
+ _StaticIntervalPollingController_intervalIds.set(this, {});
29
+ _StaticIntervalPollingController_intervalLength.set(this, 1000);
30
+ }
31
+ setIntervalLength(intervalLength) {
32
+ __classPrivateFieldSet(this, _StaticIntervalPollingController_intervalLength, intervalLength, "f");
33
+ }
34
+ getIntervalLength() {
35
+ return __classPrivateFieldGet(this, _StaticIntervalPollingController_intervalLength, "f");
36
+ }
37
+ _startPolling(input) {
38
+ if (!__classPrivateFieldGet(this, _StaticIntervalPollingController_intervalLength, "f")) {
39
+ throw new Error('intervalLength must be defined and greater than 0');
40
+ }
41
+ const key = getKey(input);
42
+ const existingInterval = __classPrivateFieldGet(this, _StaticIntervalPollingController_intervalIds, "f")[key];
43
+ this._stopPollingByPollingTokenSetId(key);
44
+ // eslint-disable-next-line no-multi-assign
45
+ const intervalId = (__classPrivateFieldGet(this, _StaticIntervalPollingController_intervalIds, "f")[key] = setTimeout(
46
+ // TODO: Either fix this lint violation or explain why it's necessary to ignore.
47
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
48
+ async () => {
49
+ try {
50
+ await this._executePoll(input);
51
+ }
52
+ catch (error) {
53
+ console.error(error);
54
+ }
55
+ if (intervalId === __classPrivateFieldGet(this, _StaticIntervalPollingController_intervalIds, "f")[key]) {
56
+ this._startPolling(input);
57
+ }
58
+ }, existingInterval ? __classPrivateFieldGet(this, _StaticIntervalPollingController_intervalLength, "f") : 0));
59
+ }
60
+ _stopPollingByPollingTokenSetId(key) {
61
+ const intervalId = __classPrivateFieldGet(this, _StaticIntervalPollingController_intervalIds, "f")[key];
62
+ if (intervalId) {
63
+ clearTimeout(intervalId);
64
+ delete __classPrivateFieldGet(this, _StaticIntervalPollingController_intervalIds, "f")[key];
65
+ }
66
+ }
67
+ }
68
+ _StaticIntervalPollingController_intervalIds = new WeakMap(), _StaticIntervalPollingController_intervalLength = new WeakMap();
69
+ return StaticIntervalPollingController;
70
+ }
71
+ class Empty {
72
+ }
73
+ export const StaticIntervalPollingControllerOnly = () => StaticIntervalPollingControllerMixin(Empty);
74
+ export const StaticIntervalPollingController = () => StaticIntervalPollingControllerMixin(BaseController);
75
+ export const StaticIntervalPollingControllerV1 = () => StaticIntervalPollingControllerMixin(BaseControllerV1);
12
76
  //# sourceMappingURL=StaticIntervalPollingController.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"file":"StaticIntervalPollingController.mjs","sourceRoot":"","sources":["../src/StaticIntervalPollingController.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,kCAAkC;AAG7E,OAAO,EACL,kCAAkC,EAClC,MAAM,EACP,wCAAoC;AAOrC;;;;;;GAMG;AACH,gFAAgF;AAChF,gEAAgE;AAChE,SAAS,oCAAoC,CAG3C,IAAW;;IACX,MAAe,+BACb,SAAQ,kCAAkC,CAAsB,IAAI,CAAC;QADvE;;YAIW,uDAA0D,EAAE,EAAC;YAEtE,0DAAsC,IAAI,EAAC;QA4C7C,CAAC;QA1CC,iBAAiB,CAAC,cAAsB;YACtC,uBAAA,IAAI,mDAAmB,cAAc,MAAA,CAAC;QACxC,CAAC;QAED,iBAAiB;YACf,OAAO,uBAAA,IAAI,uDAAgB,CAAC;QAC9B,CAAC;QAED,aAAa,CAAC,KAAmB;YAC/B,IAAI,CAAC,uBAAA,IAAI,uDAAgB,EAAE;gBACzB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;aACtE;YAED,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,gBAAgB,GAAG,uBAAA,IAAI,oDAAa,CAAC,GAAG,CAAC,CAAC;YAChD,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,CAAC;YAE1C,2CAA2C;YAC3C,MAAM,UAAU,GAAG,CAAC,uBAAA,IAAI,oDAAa,CAAC,GAAG,CAAC,GAAG,UAAU;YACrD,gFAAgF;YAChF,kEAAkE;YAClE,KAAK,IAAI,EAAE;gBACT,IAAI;oBACF,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;iBAChC;gBAAC,OAAO,KAAK,EAAE;oBACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBACtB;gBACD,IAAI,UAAU,KAAK,uBAAA,IAAI,oDAAa,CAAC,GAAG,CAAC,EAAE;oBACzC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBAC3B;YACH,CAAC,EACD,gBAAgB,CAAC,CAAC,CAAC,uBAAA,IAAI,uDAAgB,CAAC,CAAC,CAAC,CAAC,CAC5C,CAAC,CAAC;QACL,CAAC;QAED,+BAA+B,CAAC,GAAsB;YACpD,MAAM,UAAU,GAAG,uBAAA,IAAI,oDAAa,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,UAAU,EAAE;gBACd,YAAY,CAAC,UAAU,CAAC,CAAC;gBACzB,OAAO,uBAAA,IAAI,oDAAa,CAAC,GAAG,CAAC,CAAC;aAC/B;QACH,CAAC;KACF;;IAED,OAAO,+BAA+B,CAAC;AACzC,CAAC;AAED,MAAM,KAAK;CAAG;AAEd,MAAM,CAAC,MAAM,mCAAmC,GAAG,GAE/C,EAAE,CAAC,oCAAoC,CAA6B,KAAK,CAAC,CAAC;AAE/E,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAA8B,EAAE,CAC7E,oCAAoC,CAClC,cAAc,CACf,CAAC;AAEJ,MAAM,CAAC,MAAM,iCAAiC,GAAG,GAE7C,EAAE,CACJ,oCAAoC,CAClC,gBAAgB,CACjB,CAAC","sourcesContent":["import { BaseController, BaseControllerV1 } from '@metamask/base-controller';\nimport type { Json } from '@metamask/utils';\n\nimport {\n AbstractPollingControllerBaseMixin,\n getKey,\n} from './AbstractPollingController';\nimport type {\n Constructor,\n IPollingController,\n PollingTokenSetId,\n} from './types';\n\n/**\n * StaticIntervalPollingControllerMixin\n * A polling controller that polls on a static interval.\n *\n * @param Base - The base class to mix onto.\n * @returns The composed class.\n */\n// TODO: Either fix this lint violation or explain why it's necessary to ignore.\n// eslint-disable-next-line @typescript-eslint/naming-convention\nfunction StaticIntervalPollingControllerMixin<\n TBase extends Constructor,\n PollingInput extends Json,\n>(Base: TBase) {\n abstract class StaticIntervalPollingController\n extends AbstractPollingControllerBaseMixin<TBase, PollingInput>(Base)\n implements IPollingController<PollingInput>\n {\n readonly #intervalIds: Record<PollingTokenSetId, NodeJS.Timeout> = {};\n\n #intervalLength: number | undefined = 1000;\n\n setIntervalLength(intervalLength: number) {\n this.#intervalLength = intervalLength;\n }\n\n getIntervalLength() {\n return this.#intervalLength;\n }\n\n _startPolling(input: PollingInput) {\n if (!this.#intervalLength) {\n throw new Error('intervalLength must be defined and greater than 0');\n }\n\n const key = getKey(input);\n const existingInterval = this.#intervalIds[key];\n this._stopPollingByPollingTokenSetId(key);\n\n // eslint-disable-next-line no-multi-assign\n const intervalId = (this.#intervalIds[key] = setTimeout(\n // TODO: Either fix this lint violation or explain why it's necessary to ignore.\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n async () => {\n try {\n await this._executePoll(input);\n } catch (error) {\n console.error(error);\n }\n if (intervalId === this.#intervalIds[key]) {\n this._startPolling(input);\n }\n },\n existingInterval ? this.#intervalLength : 0,\n ));\n }\n\n _stopPollingByPollingTokenSetId(key: PollingTokenSetId) {\n const intervalId = this.#intervalIds[key];\n if (intervalId) {\n clearTimeout(intervalId);\n delete this.#intervalIds[key];\n }\n }\n }\n\n return StaticIntervalPollingController;\n}\n\nclass Empty {}\n\nexport const StaticIntervalPollingControllerOnly = <\n PollingInput extends Json,\n>() => StaticIntervalPollingControllerMixin<typeof Empty, PollingInput>(Empty);\n\nexport const StaticIntervalPollingController = <PollingInput extends Json>() =>\n StaticIntervalPollingControllerMixin<typeof BaseController, PollingInput>(\n BaseController,\n );\n\nexport const StaticIntervalPollingControllerV1 = <\n PollingInput extends Json,\n>() =>\n StaticIntervalPollingControllerMixin<typeof BaseControllerV1, PollingInput>(\n BaseControllerV1,\n );\n"]}
package/dist/index.cjs ADDED
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StaticIntervalPollingControllerV1 = exports.StaticIntervalPollingController = exports.StaticIntervalPollingControllerOnly = exports.BlockTrackerPollingControllerV1 = exports.BlockTrackerPollingController = exports.BlockTrackerPollingControllerOnly = void 0;
4
+ var BlockTrackerPollingController_1 = require("./BlockTrackerPollingController.cjs");
5
+ Object.defineProperty(exports, "BlockTrackerPollingControllerOnly", { enumerable: true, get: function () { return BlockTrackerPollingController_1.BlockTrackerPollingControllerOnly; } });
6
+ Object.defineProperty(exports, "BlockTrackerPollingController", { enumerable: true, get: function () { return BlockTrackerPollingController_1.BlockTrackerPollingController; } });
7
+ Object.defineProperty(exports, "BlockTrackerPollingControllerV1", { enumerable: true, get: function () { return BlockTrackerPollingController_1.BlockTrackerPollingControllerV1; } });
8
+ var StaticIntervalPollingController_1 = require("./StaticIntervalPollingController.cjs");
9
+ Object.defineProperty(exports, "StaticIntervalPollingControllerOnly", { enumerable: true, get: function () { return StaticIntervalPollingController_1.StaticIntervalPollingControllerOnly; } });
10
+ Object.defineProperty(exports, "StaticIntervalPollingController", { enumerable: true, get: function () { return StaticIntervalPollingController_1.StaticIntervalPollingController; } });
11
+ Object.defineProperty(exports, "StaticIntervalPollingControllerV1", { enumerable: true, get: function () { return StaticIntervalPollingController_1.StaticIntervalPollingControllerV1; } });
12
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qFAIyC;AAHvC,kJAAA,iCAAiC,OAAA;AACjC,8IAAA,6BAA6B,OAAA;AAC7B,gJAAA,+BAA+B,OAAA;AAGjC,yFAI2C;AAHzC,sJAAA,mCAAmC,OAAA;AACnC,kJAAA,+BAA+B,OAAA;AAC/B,oJAAA,iCAAiC,OAAA","sourcesContent":["export {\n BlockTrackerPollingControllerOnly,\n BlockTrackerPollingController,\n BlockTrackerPollingControllerV1,\n} from './BlockTrackerPollingController';\n\nexport {\n StaticIntervalPollingControllerOnly,\n StaticIntervalPollingController,\n StaticIntervalPollingControllerV1,\n} from './StaticIntervalPollingController';\n\nexport type { IPollingController } from './types';\n"]}
@@ -0,0 +1,4 @@
1
+ export { BlockTrackerPollingControllerOnly, BlockTrackerPollingController, BlockTrackerPollingControllerV1, } from "./BlockTrackerPollingController.cjs";
2
+ export { StaticIntervalPollingControllerOnly, StaticIntervalPollingController, StaticIntervalPollingControllerV1, } from "./StaticIntervalPollingController.cjs";
3
+ export type { IPollingController } from "./types.cjs";
4
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAC7B,+BAA+B,GAChC,4CAAwC;AAEzC,OAAO,EACL,mCAAmC,EACnC,+BAA+B,EAC/B,iCAAiC,GAClC,8CAA0C;AAE3C,YAAY,EAAE,kBAAkB,EAAE,oBAAgB"}
@@ -0,0 +1,4 @@
1
+ export { BlockTrackerPollingControllerOnly, BlockTrackerPollingController, BlockTrackerPollingControllerV1, } from "./BlockTrackerPollingController.mjs";
2
+ export { StaticIntervalPollingControllerOnly, StaticIntervalPollingController, StaticIntervalPollingControllerV1, } from "./StaticIntervalPollingController.mjs";
3
+ export type { IPollingController } from "./types.mjs";
4
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAC7B,+BAA+B,GAChC,4CAAwC;AAEzC,OAAO,EACL,mCAAmC,EACnC,+BAA+B,EAC/B,iCAAiC,GAClC,8CAA0C;AAE3C,YAAY,EAAE,kBAAkB,EAAE,oBAAgB"}
package/dist/index.mjs CHANGED
@@ -1,20 +1,3 @@
1
- import {
2
- BlockTrackerPollingController,
3
- BlockTrackerPollingControllerOnly,
4
- BlockTrackerPollingControllerV1
5
- } from "./chunk-YETJAOVF.mjs";
6
- import {
7
- StaticIntervalPollingController,
8
- StaticIntervalPollingControllerOnly,
9
- StaticIntervalPollingControllerV1
10
- } from "./chunk-L32FFEZO.mjs";
11
- import "./chunk-E2WT3D73.mjs";
12
- export {
13
- BlockTrackerPollingController,
14
- BlockTrackerPollingControllerOnly,
15
- BlockTrackerPollingControllerV1,
16
- StaticIntervalPollingController,
17
- StaticIntervalPollingControllerOnly,
18
- StaticIntervalPollingControllerV1
19
- };
1
+ export { BlockTrackerPollingControllerOnly, BlockTrackerPollingController, BlockTrackerPollingControllerV1 } from "./BlockTrackerPollingController.mjs";
2
+ export { StaticIntervalPollingControllerOnly, StaticIntervalPollingController, StaticIntervalPollingControllerV1 } from "./StaticIntervalPollingController.mjs";
20
3
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAC7B,+BAA+B,EAChC,4CAAwC;AAEzC,OAAO,EACL,mCAAmC,EACnC,+BAA+B,EAC/B,iCAAiC,EAClC,8CAA0C","sourcesContent":["export {\n BlockTrackerPollingControllerOnly,\n BlockTrackerPollingController,\n BlockTrackerPollingControllerV1,\n} from './BlockTrackerPollingController';\n\nexport {\n StaticIntervalPollingControllerOnly,\n StaticIntervalPollingController,\n StaticIntervalPollingControllerV1,\n} from './StaticIntervalPollingController';\n\nexport type { IPollingController } from './types';\n"]}
package/dist/types.cjs ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Json } from '@metamask/utils';\n\nexport type PollingTokenSetId = string;\n\nexport type IPollingController<PollingInput extends Json> = {\n startPolling(input: PollingInput): string;\n\n stopAllPolling(): void;\n\n stopPollingByPollingToken(pollingToken: string): void;\n\n onPollingComplete(\n input: PollingInput,\n callback: (input: PollingInput) => void,\n ): void;\n\n _executePoll(input: PollingInput): Promise<void>;\n _startPolling(input: PollingInput): void;\n _stopPollingByPollingTokenSetId(key: PollingTokenSetId): void;\n};\n\n/**\n * TypeScript enforces this type for mixin constructors.\n *\n * Removing the `any` type results in the following error:\n * 'A mixin class must have a constructor with a single rest parameter of type 'any[]'.ts(2545)'\n *\n * A potential future refactor that removes the mixin pattern may be able to fix this.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type Constructor = new (...args: any[]) => object;\n"]}
@@ -0,0 +1,21 @@
1
+ import type { Json } from "@metamask/utils";
2
+ export type PollingTokenSetId = string;
3
+ export type IPollingController<PollingInput extends Json> = {
4
+ startPolling(input: PollingInput): string;
5
+ stopAllPolling(): void;
6
+ stopPollingByPollingToken(pollingToken: string): void;
7
+ onPollingComplete(input: PollingInput, callback: (input: PollingInput) => void): void;
8
+ _executePoll(input: PollingInput): Promise<void>;
9
+ _startPolling(input: PollingInput): void;
10
+ _stopPollingByPollingTokenSetId(key: PollingTokenSetId): void;
11
+ };
12
+ /**
13
+ * TypeScript enforces this type for mixin constructors.
14
+ *
15
+ * Removing the `any` type results in the following error:
16
+ * 'A mixin class must have a constructor with a single rest parameter of type 'any[]'.ts(2545)'
17
+ *
18
+ * A potential future refactor that removes the mixin pattern may be able to fix this.
19
+ */
20
+ export type Constructor = new (...args: any[]) => object;
21
+ //# sourceMappingURL=types.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEvC,MAAM,MAAM,kBAAkB,CAAC,YAAY,SAAS,IAAI,IAAI;IAC1D,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAAC;IAE1C,cAAc,IAAI,IAAI,CAAC;IAEvB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtD,iBAAiB,CACf,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GACtC,IAAI,CAAC;IAER,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IACzC,+BAA+B,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAC/D,CAAC;AAEF;;;;;;;GAOG;AAEH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { Json } from "@metamask/utils";
2
+ export type PollingTokenSetId = string;
3
+ export type IPollingController<PollingInput extends Json> = {
4
+ startPolling(input: PollingInput): string;
5
+ stopAllPolling(): void;
6
+ stopPollingByPollingToken(pollingToken: string): void;
7
+ onPollingComplete(input: PollingInput, callback: (input: PollingInput) => void): void;
8
+ _executePoll(input: PollingInput): Promise<void>;
9
+ _startPolling(input: PollingInput): void;
10
+ _stopPollingByPollingTokenSetId(key: PollingTokenSetId): void;
11
+ };
12
+ /**
13
+ * TypeScript enforces this type for mixin constructors.
14
+ *
15
+ * Removing the `any` type results in the following error:
16
+ * 'A mixin class must have a constructor with a single rest parameter of type 'any[]'.ts(2545)'
17
+ *
18
+ * A potential future refactor that removes the mixin pattern may be able to fix this.
19
+ */
20
+ export type Constructor = new (...args: any[]) => object;
21
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEvC,MAAM,MAAM,kBAAkB,CAAC,YAAY,SAAS,IAAI,IAAI;IAC1D,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAAC;IAE1C,cAAc,IAAI,IAAI,CAAC;IAEvB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtD,iBAAiB,CACf,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GACtC,IAAI,CAAC;IAER,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IACzC,+BAA+B,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAC/D,CAAC;AAEF;;;;;;;GAOG;AAEH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC"}
package/dist/types.mjs CHANGED
@@ -1 +1,2 @@
1
+ export {};
1
2
  //# sourceMappingURL=types.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Json } from '@metamask/utils';\n\nexport type PollingTokenSetId = string;\n\nexport type IPollingController<PollingInput extends Json> = {\n startPolling(input: PollingInput): string;\n\n stopAllPolling(): void;\n\n stopPollingByPollingToken(pollingToken: string): void;\n\n onPollingComplete(\n input: PollingInput,\n callback: (input: PollingInput) => void,\n ): void;\n\n _executePoll(input: PollingInput): Promise<void>;\n _startPolling(input: PollingInput): void;\n _stopPollingByPollingTokenSetId(key: PollingTokenSetId): void;\n};\n\n/**\n * TypeScript enforces this type for mixin constructors.\n *\n * Removing the `any` type results in the following error:\n * 'A mixin class must have a constructor with a single rest parameter of type 'any[]'.ts(2545)'\n *\n * A potential future refactor that removes the mixin pattern may be able to fix this.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type Constructor = new (...args: any[]) => object;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask/polling-controller",
3
- "version": "10.0.0",
3
+ "version": "11.0.0",
4
4
  "description": "Polling Controller is the base for controllers that polling by networkClientId",
5
5
  "keywords": [
6
6
  "MetaMask",
@@ -18,19 +18,24 @@
18
18
  "sideEffects": false,
19
19
  "exports": {
20
20
  ".": {
21
- "import": "./dist/index.mjs",
22
- "require": "./dist/index.js",
23
- "types": "./dist/types/index.d.ts"
21
+ "import": {
22
+ "types": "./dist/index.d.mts",
23
+ "default": "./dist/index.mjs"
24
+ },
25
+ "require": {
26
+ "types": "./dist/index.d.cts",
27
+ "default": "./dist/index.cjs"
28
+ }
24
29
  },
25
30
  "./package.json": "./package.json"
26
31
  },
27
- "main": "./dist/index.js",
28
- "types": "./dist/types/index.d.ts",
32
+ "main": "./dist/index.cjs",
33
+ "types": "./dist/index.d.cts",
29
34
  "files": [
30
35
  "dist/"
31
36
  ],
32
37
  "scripts": {
33
- "build": "tsup --config ../../tsup.config.ts --tsconfig ./tsconfig.build.json --clean",
38
+ "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references",
34
39
  "build:docs": "typedoc",
35
40
  "changelog:update": "../../scripts/update-changelog.sh @metamask/polling-controller",
36
41
  "changelog:validate": "../../scripts/validate-changelog.sh @metamask/polling-controller",
@@ -42,8 +47,8 @@
42
47
  "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch"
43
48
  },
44
49
  "dependencies": {
45
- "@metamask/base-controller": "^7.0.0",
46
- "@metamask/controller-utils": "^11.2.0",
50
+ "@metamask/base-controller": "^7.0.1",
51
+ "@metamask/controller-utils": "^11.3.0",
47
52
  "@metamask/utils": "^9.1.0",
48
53
  "@types/uuid": "^8.3.0",
49
54
  "fast-json-stable-stringify": "^2.1.0",
@@ -51,7 +56,7 @@
51
56
  },
52
57
  "devDependencies": {
53
58
  "@metamask/auto-changelog": "^3.4.4",
54
- "@metamask/network-controller": "^21.0.0",
59
+ "@metamask/network-controller": "^21.1.0",
55
60
  "@types/jest": "^27.4.1",
56
61
  "deepmerge": "^4.2.2",
57
62
  "jest": "^27.5.1",
@@ -1,9 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
-
4
- var _chunkJCXUPRTTjs = require('./chunk-JCXUPRTT.js');
5
-
6
-
7
-
8
- exports.AbstractPollingControllerBaseMixin = _chunkJCXUPRTTjs.AbstractPollingControllerBaseMixin; exports.getKey = _chunkJCXUPRTTjs.getKey;
9
- //# sourceMappingURL=AbstractPollingController.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,12 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
-
4
-
5
- var _chunkJVLLYBTKjs = require('./chunk-JVLLYBTK.js');
6
- require('./chunk-JCXUPRTT.js');
7
-
8
-
9
-
10
-
11
- exports.BlockTrackerPollingController = _chunkJVLLYBTKjs.BlockTrackerPollingController; exports.BlockTrackerPollingControllerOnly = _chunkJVLLYBTKjs.BlockTrackerPollingControllerOnly; exports.BlockTrackerPollingControllerV1 = _chunkJVLLYBTKjs.BlockTrackerPollingControllerV1;
12
- //# sourceMappingURL=BlockTrackerPollingController.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,12 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
-
4
-
5
- var _chunkRD6EX3RWjs = require('./chunk-RD6EX3RW.js');
6
- require('./chunk-JCXUPRTT.js');
7
-
8
-
9
-
10
-
11
- exports.StaticIntervalPollingController = _chunkRD6EX3RWjs.StaticIntervalPollingController; exports.StaticIntervalPollingControllerOnly = _chunkRD6EX3RWjs.StaticIntervalPollingControllerOnly; exports.StaticIntervalPollingControllerV1 = _chunkRD6EX3RWjs.StaticIntervalPollingControllerV1;
12
- //# sourceMappingURL=StaticIntervalPollingController.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}