@streamlayer/feature-polymarket 0.1.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.
package/README.md ADDED
@@ -0,0 +1,6 @@
1
+ # feature-polymarket
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Building
6
+ Run `nx build feature-polymarket` to build the library.
package/lib/api.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import type { Transport } from '@streamlayer/sdk-web-api';
2
+ import { ReadableAtom } from 'nanostores';
3
+ export declare const $marketWithSeries: ($eventId: ReadableAtom<string | undefined>, $userId: ReadableAtom<string | undefined>, transport: Transport) => import("@nanostores/query").FetcherStore<import("@streamlayer/sl-eslib/polymarket/sportsClient_pb").EventWithSeries | undefined, any>;
package/lib/api.js ADDED
@@ -0,0 +1,24 @@
1
+ import { PolymarketSportsClient, Timeframe } from '@streamlayer/sl-eslib/polymarket/sportsClient_pb';
2
+ export const $marketWithSeries = ($eventId, $userId, transport) => {
3
+ const { client, queryKey } = transport.createPromiseClient(PolymarketSportsClient, {
4
+ method: 'getMarketWithSeries',
5
+ params: [$eventId, $userId],
6
+ });
7
+ return transport.nanoquery.createFetcherStore(queryKey, {
8
+ fetcher: async (_, __, eventId, userId) => {
9
+ if (!userId) {
10
+ return undefined;
11
+ }
12
+ try {
13
+ const res = await client.getMarketWithSeries({
14
+ eventId: eventId,
15
+ timeframe: Timeframe.TIMEFRAME_ALL,
16
+ });
17
+ return res.event;
18
+ }
19
+ catch (_err) {
20
+ return undefined;
21
+ }
22
+ },
23
+ });
24
+ };
package/lib/index.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ import { StreamLayerContext } from '@streamlayer/sdk-web-interfaces';
2
+ export { type Polymarket } from './polymarket';
3
+ declare module '@streamlayer/sdk-web-interfaces' {
4
+ interface StreamLayerSDK {
5
+ polymarket: import('./polymarket').Polymarket;
6
+ }
7
+ }
8
+ export declare const polymarket: (instance: StreamLayerContext, _opts: unknown, done: () => void) => void;
package/lib/index.js ADDED
@@ -0,0 +1,11 @@
1
+ import { Polymarket } from './polymarket';
2
+ export const polymarket = (instance, _opts, done) => {
3
+ instance.sdk.polymarket = new Polymarket(instance);
4
+ instance.sdk.onMount({ name: 'polymarket' }, () => {
5
+ instance.sdk.polymarket.connect();
6
+ return () => {
7
+ instance.sdk.polymarket.disconnect();
8
+ };
9
+ });
10
+ done();
11
+ };
@@ -0,0 +1,3 @@
1
+ import { StreamLayerContext } from '@streamlayer/sdk-web-interfaces';
2
+ import '@streamlayer/sdk-web-core/store';
3
+ export declare const marketWithSeries: (instance: StreamLayerContext) => import("@nanostores/query").FetcherStore<import("@streamlayer/sl-eslib/polymarket/sportsClient_pb").EventWithSeries | undefined, any>;
@@ -0,0 +1,7 @@
1
+ import '@streamlayer/sdk-web-core/store';
2
+ import { $marketWithSeries } from './api';
3
+ export const marketWithSeries = (instance) => {
4
+ const slStreamId = instance.stores.slStreamId.getAtomStore();
5
+ const userId = instance.stores.user.getAtomStore();
6
+ return $marketWithSeries(slStreamId, userId, instance.transport);
7
+ };
@@ -0,0 +1,9 @@
1
+ import { AbstractFeatureUnit, StreamLayerContext } from '@streamlayer/sdk-web-interfaces';
2
+ import { marketWithSeries } from './marketWithSeries';
3
+ export declare class Polymarket extends AbstractFeatureUnit {
4
+ marketWithSeries: ReturnType<typeof marketWithSeries>;
5
+ private log;
6
+ constructor(instance: StreamLayerContext);
7
+ connect: () => void;
8
+ disconnect: () => void;
9
+ }
@@ -0,0 +1,19 @@
1
+ import { AbstractFeatureUnit } from '@streamlayer/sdk-web-interfaces';
2
+ import { createLogger } from '@streamlayer/sdk-web-logger';
3
+ import { marketWithSeries } from './marketWithSeries';
4
+ export class Polymarket extends AbstractFeatureUnit {
5
+ marketWithSeries;
6
+ log;
7
+ constructor(instance) {
8
+ super();
9
+ this.log = createLogger('polymarket');
10
+ this.marketWithSeries = marketWithSeries(instance);
11
+ }
12
+ connect = () => {
13
+ this.log.debug('connect');
14
+ };
15
+ disconnect = () => {
16
+ this.marketWithSeries.off();
17
+ this.log.debug('disconnect');
18
+ };
19
+ }
package/package.json ADDED
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "@streamlayer/feature-polymarket",
3
+ "version": "0.1.0",
4
+ "peerDependencies": {
5
+ "@streamlayer/sl-eslib": "^5.228.0",
6
+ "nanostores": "^1.1.0",
7
+ "@streamlayer/sdk-web-core": "^1.19.0",
8
+ "@streamlayer/sdk-web-api": "^1.15.0",
9
+ "@streamlayer/sdk-web-interfaces": "^1.9.0",
10
+ "@streamlayer/sdk-web-types": "^1.16.9",
11
+ "@streamlayer/sdk-web-logger": "^1.0.94"
12
+ },
13
+ "type": "module",
14
+ "main": "./lib/index.js",
15
+ "typings": "./lib/index.d.ts",
16
+ "files": [
17
+ "lib/",
18
+ "package.json"
19
+ ]
20
+ }