@polkadot-api/ws-middleware 0.2.3 → 0.2.4-canary.5629cfc

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,20 +1,25 @@
1
- import { Observable } from 'rxjs';
1
+ import { Observable, Subscription } from 'rxjs';
2
2
 
3
3
  const withLatestFromBp = (latest$) => (base$) => new Observable((observer) => {
4
4
  let latest;
5
5
  let prev = [];
6
- const subscription = base$.subscribe({
7
- next(v) {
8
- if (prev) prev.push(v);
9
- else observer.next([latest, v]);
10
- },
11
- error(e) {
12
- observer.error(e);
13
- },
14
- complete() {
15
- observer.complete();
16
- }
17
- });
6
+ let finished = false;
7
+ const subscription = new Subscription();
8
+ subscription.add(
9
+ base$.subscribe({
10
+ next(v) {
11
+ if (prev) prev.push(v);
12
+ else observer.next([latest, v]);
13
+ },
14
+ error(e) {
15
+ observer.error(e);
16
+ },
17
+ complete() {
18
+ if (prev) finished = true;
19
+ else observer.complete();
20
+ }
21
+ })
22
+ );
18
23
  subscription.add(
19
24
  latest$.subscribe({
20
25
  next(v) {
@@ -24,6 +29,7 @@ const withLatestFromBp = (latest$) => (base$) => new Observable((observer) => {
24
29
  prev = null;
25
30
  copy.forEach((p) => observer.next([latest, p]));
26
31
  }
32
+ if (finished) observer.complete();
27
33
  },
28
34
  error(e) {
29
35
  observer.error(e);
@@ -1 +1 @@
1
- {"version":3,"file":"with-latest-from-bp.mjs","sources":["../../../../src/legacy/utils/with-latest-from-bp.ts"],"sourcesContent":["import { Observable } from \"rxjs\"\n\nexport const withLatestFromBp =\n <T, S>(latest$: Observable<T>) =>\n (base$: Observable<S>) =>\n new Observable<[T, S]>((observer) => {\n let latest: T\n let prev: S[] | null = []\n\n const subscription = base$.subscribe({\n next(v) {\n if (prev) prev.push(v)\n else observer.next([latest, v])\n },\n error(e) {\n observer.error(e)\n },\n complete() {\n observer.complete()\n },\n })\n\n subscription.add(\n latest$.subscribe({\n next(v) {\n latest = v\n if (prev) {\n const copy = [...prev]\n prev = null\n copy.forEach((p) => observer.next([latest, p]))\n }\n },\n error(e) {\n observer.error(e)\n },\n complete() {\n if (prev) observer.error(new Error(\"Empty complete\"))\n },\n }),\n )\n\n return subscription\n })\n"],"names":[],"mappings":";;AAEO,MAAM,gBAAA,GACX,CAAO,OAAA,KACP,CAAC,UACC,IAAI,UAAA,CAAmB,CAAC,QAAA,KAAa;AACnC,EAAA,IAAI,MAAA;AACJ,EAAA,IAAI,OAAmB,EAAC;AAExB,EAAA,MAAM,YAAA,GAAe,MAAM,SAAA,CAAU;AAAA,IACnC,KAAK,CAAA,EAAG;AACN,MAAA,IAAI,IAAA,EAAM,IAAA,CAAK,IAAA,CAAK,CAAC,CAAA;AAAA,WAChB,QAAA,CAAS,IAAA,CAAK,CAAC,MAAA,EAAQ,CAAC,CAAC,CAAA;AAAA,IAChC,CAAA;AAAA,IACA,MAAM,CAAA,EAAG;AACP,MAAA,QAAA,CAAS,MAAM,CAAC,CAAA;AAAA,IAClB,CAAA;AAAA,IACA,QAAA,GAAW;AACT,MAAA,QAAA,CAAS,QAAA,EAAS;AAAA,IACpB;AAAA,GACD,CAAA;AAED,EAAA,YAAA,CAAa,GAAA;AAAA,IACX,QAAQ,SAAA,CAAU;AAAA,MAChB,KAAK,CAAA,EAAG;AACN,QAAA,MAAA,GAAS,CAAA;AACT,QAAA,IAAI,IAAA,EAAM;AACR,UAAA,MAAM,IAAA,GAAO,CAAC,GAAG,IAAI,CAAA;AACrB,UAAA,IAAA,GAAO,IAAA;AACP,UAAA,IAAA,CAAK,OAAA,CAAQ,CAAC,CAAA,KAAM,QAAA,CAAS,KAAK,CAAC,MAAA,EAAQ,CAAC,CAAC,CAAC,CAAA;AAAA,QAChD;AAAA,MACF,CAAA;AAAA,MACA,MAAM,CAAA,EAAG;AACP,QAAA,QAAA,CAAS,MAAM,CAAC,CAAA;AAAA,MAClB,CAAA;AAAA,MACA,QAAA,GAAW;AACT,QAAA,IAAI,MAAM,QAAA,CAAS,KAAA,CAAM,IAAI,KAAA,CAAM,gBAAgB,CAAC,CAAA;AAAA,MACtD;AAAA,KACD;AAAA,GACH;AAEA,EAAA,OAAO,YAAA;AACT,CAAC;;;;"}
1
+ {"version":3,"file":"with-latest-from-bp.mjs","sources":["../../../../src/legacy/utils/with-latest-from-bp.ts"],"sourcesContent":["import { Observable, Subscription } from \"rxjs\"\n\nexport const withLatestFromBp =\n <T, S>(latest$: Observable<T>) =>\n (base$: Observable<S>) =>\n new Observable<[T, S]>((observer) => {\n let latest: T\n let prev: S[] | null = []\n let finished = false\n\n const subscription = new Subscription()\n subscription.add(\n base$.subscribe({\n next(v) {\n if (prev) prev.push(v)\n else observer.next([latest, v])\n },\n error(e) {\n observer.error(e)\n },\n complete() {\n if (prev) finished = true\n else observer.complete()\n },\n }),\n )\n\n subscription.add(\n latest$.subscribe({\n next(v) {\n latest = v\n if (prev) {\n const copy = [...prev]\n prev = null\n copy.forEach((p) => observer.next([latest, p]))\n }\n if (finished) observer.complete()\n },\n error(e) {\n observer.error(e)\n },\n complete() {\n if (prev) observer.error(new Error(\"Empty complete\"))\n },\n }),\n )\n\n return subscription\n })\n"],"names":[],"mappings":";;AAEO,MAAM,gBAAA,GACX,CAAO,OAAA,KACP,CAAC,UACC,IAAI,UAAA,CAAmB,CAAC,QAAA,KAAa;AACnC,EAAA,IAAI,MAAA;AACJ,EAAA,IAAI,OAAmB,EAAC;AACxB,EAAA,IAAI,QAAA,GAAW,KAAA;AAEf,EAAA,MAAM,YAAA,GAAe,IAAI,YAAA,EAAa;AACtC,EAAA,YAAA,CAAa,GAAA;AAAA,IACX,MAAM,SAAA,CAAU;AAAA,MACd,KAAK,CAAA,EAAG;AACN,QAAA,IAAI,IAAA,EAAM,IAAA,CAAK,IAAA,CAAK,CAAC,CAAA;AAAA,aAChB,QAAA,CAAS,IAAA,CAAK,CAAC,MAAA,EAAQ,CAAC,CAAC,CAAA;AAAA,MAChC,CAAA;AAAA,MACA,MAAM,CAAA,EAAG;AACP,QAAA,QAAA,CAAS,MAAM,CAAC,CAAA;AAAA,MAClB,CAAA;AAAA,MACA,QAAA,GAAW;AACT,QAAA,IAAI,MAAM,QAAA,GAAW,IAAA;AAAA,sBACP,QAAA,EAAS;AAAA,MACzB;AAAA,KACD;AAAA,GACH;AAEA,EAAA,YAAA,CAAa,GAAA;AAAA,IACX,QAAQ,SAAA,CAAU;AAAA,MAChB,KAAK,CAAA,EAAG;AACN,QAAA,MAAA,GAAS,CAAA;AACT,QAAA,IAAI,IAAA,EAAM;AACR,UAAA,MAAM,IAAA,GAAO,CAAC,GAAG,IAAI,CAAA;AACrB,UAAA,IAAA,GAAO,IAAA;AACP,UAAA,IAAA,CAAK,OAAA,CAAQ,CAAC,CAAA,KAAM,QAAA,CAAS,KAAK,CAAC,MAAA,EAAQ,CAAC,CAAC,CAAC,CAAA;AAAA,QAChD;AACA,QAAA,IAAI,QAAA,WAAmB,QAAA,EAAS;AAAA,MAClC,CAAA;AAAA,MACA,MAAM,CAAA,EAAG;AACP,QAAA,QAAA,CAAS,MAAM,CAAC,CAAA;AAAA,MAClB,CAAA;AAAA,MACA,QAAA,GAAW;AACT,QAAA,IAAI,MAAM,QAAA,CAAS,KAAA,CAAM,IAAI,KAAA,CAAM,gBAAgB,CAAC,CAAA;AAAA,MACtD;AAAA,KACD;AAAA,GACH;AAEA,EAAA,OAAO,YAAA;AACT,CAAC;;;;"}
@@ -1,24 +1,9 @@
1
- import { withLegacy } from './legacy/downstream/downstream.mjs';
1
+ import { hybridMiddleware } from './hybrid.mjs';
2
2
  import { methodsRouter } from './methods-router.mjs';
3
- import { modern } from './modern/modern.mjs';
4
- import './modern/fix-follow.mjs';
5
- import './modern/fix-premature-blocks.mjs';
6
- import './modern/fix-unordered-blocks.mjs';
7
- import './modern/fix-unordered-events.mjs';
8
- import './methods.mjs';
9
- import { apply } from './utils/utils.mjs';
10
3
  import { withNumericIds } from './numeric-ids.mjs';
4
+ import { apply } from './utils/utils.mjs';
11
5
 
12
- const modernGroups = [
13
- "chainHead",
14
- "transaction",
15
- "chainSpec"
16
- ].map((name) => `${name}_v1`);
17
- const isModern = (methods) => modernGroups.every((group) => methods.some((m) => m.startsWith(group)));
18
- const middleware = apply(
19
- withNumericIds,
20
- methodsRouter((methods) => isModern(methods) ? modern : withLegacy)
21
- );
6
+ const middleware = apply(withNumericIds, methodsRouter(hybridMiddleware));
22
7
 
23
8
  export { middleware };
24
9
  //# sourceMappingURL=middleware.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.mjs","sources":["../../src/middleware.ts"],"sourcesContent":["import { withLegacy } from \"./legacy\"\nimport { methodsRouter } from \"./methods-router\"\nimport { modern } from \"./modern\"\nimport { withNumericIds } from \"./numeric-ids\"\nimport { apply } from \"./utils\"\n\nconst modernGroups = [\n \"chainHead\",\n \"transaction\",\n \"chainSpec\" /*, \"archive\"*/,\n].map((name) => `${name}_v1`)\nconst isModern = (methods: string[]): boolean =>\n modernGroups.every((group) => methods.some((m) => m.startsWith(group)))\n\nexport const middleware = apply(\n withNumericIds,\n methodsRouter((methods) => (isModern(methods) ? modern : withLegacy)),\n)\n"],"names":[],"mappings":";;;;;;;;;;;AAMA,MAAM,YAAA,GAAe;AAAA,EACnB,WAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,CAAE,GAAA,CAAI,CAAC,IAAA,KAAS,CAAA,EAAG,IAAI,CAAA,GAAA,CAAK,CAAA;AAC5B,MAAM,QAAA,GAAW,CAAC,OAAA,KAChB,YAAA,CAAa,MAAM,CAAC,KAAA,KAAU,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,UAAA,CAAW,KAAK,CAAC,CAAC,CAAA;AAEjE,MAAM,UAAA,GAAa,KAAA;AAAA,EACxB,cAAA;AAAA,EACA,cAAc,CAAC,OAAA,KAAa,SAAS,OAAO,CAAA,GAAI,SAAS,UAAW;AACtE;;;;"}
1
+ {"version":3,"file":"middleware.mjs","sources":["../../src/middleware.ts"],"sourcesContent":["import { hybridMiddleware } from \"./hybrid\"\nimport { methodsRouter } from \"./methods-router\"\nimport { withNumericIds } from \"./numeric-ids\"\nimport { apply } from \"./utils\"\n\nexport const middleware = apply(withNumericIds, methodsRouter(hybridMiddleware))\n"],"names":[],"mappings":";;;;;AAKO,MAAM,UAAA,GAAa,KAAA,CAAM,cAAA,EAAgB,aAAA,CAAc,gBAAgB,CAAC;;;;"}