@streamlayer/sdk-web-interfaces 1.5.5 → 1.6.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/lib/feature.d.ts CHANGED
@@ -1,5 +1,4 @@
1
- import { FeatureConfig as SdkOverlay, SdkOverlaySettings } from '@streamlayer/sdk-web-types';
2
- import { PlainMessage } from '@bufbuild/protobuf';
1
+ import { FeatureConfig as SdkOverlay, SdkOverlaySettings, PlainMessage } from '@streamlayer/sdk-web-types';
3
2
  import { WritableAtom } from 'nanostores';
4
3
  import { MapStore } from './store/map';
5
4
  type FeatureListener = {
@@ -7,19 +6,16 @@ type FeatureListener = {
7
6
  enabled: boolean;
8
7
  onEvent: (...args: unknown[]) => void;
9
8
  };
10
- export type FeatureProps = PlainMessage<SdkOverlay>;
9
+ export type FeatureProps = SdkOverlay;
11
10
  export declare enum FeatureSource {
12
11
  ORGANIZATION = "ORGANIZATION",
13
12
  STREAM = "STREAM"
14
13
  }
15
14
  type FeatureConfig = Omit<FeatureProps, 'settings'>;
16
- type FeatureSettings = Exclude<PlainMessage<SdkOverlaySettings>['overlaySettings'], {
17
- case: 'inplay';
18
- } | {
19
- case: 'getstream';
20
- } | {
21
- case: undefined;
22
- }>;
15
+ type FeatureSettings = {
16
+ case: Exclude<SdkOverlaySettings['overlaySettings']['case'], 'inplay' | 'getstream' | undefined>;
17
+ value: PlainMessage<Exclude<SdkOverlaySettings['overlaySettings']['value'], undefined>>;
18
+ };
23
19
  export declare enum FeatureStatus {
24
20
  Ready = "ready",
25
21
  Suspended = "suspended"
package/lib/feature.js CHANGED
@@ -17,6 +17,17 @@ export var FeatureStatus;
17
17
  FeatureStatus["Ready"] = "ready";
18
18
  FeatureStatus["Suspended"] = "suspended";
19
19
  })(FeatureStatus || (FeatureStatus = {}));
20
+ const IGNORE_KEYS = new Set([
21
+ 'equals',
22
+ 'clone',
23
+ 'fromBinary',
24
+ 'fromJson',
25
+ 'fromJsonString',
26
+ 'toBinary',
27
+ 'toJson',
28
+ 'toJsonString',
29
+ 'getType',
30
+ ]);
20
31
  export class AbstractFeature {
21
32
  status;
22
33
  source;
@@ -60,10 +71,12 @@ export class AbstractFeature {
60
71
  const newSettings = settings.overlaySettings.value;
61
72
  if (newSettings !== undefined) {
62
73
  let key;
63
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
64
- // @ts-ignore
65
74
  for (key in newSettings) {
66
- if (newSettings[key] !== 0 && newSettings[key] !== '') {
75
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
76
+ // @ts-expect-error
77
+ if (!IGNORE_KEYS.has(key) && newSettings[key]) {
78
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
79
+ // @ts-expect-error
67
80
  this.settings.setValue(key, newSettings[key]);
68
81
  }
69
82
  }
@@ -1,9 +1,12 @@
1
1
  import { type MapStoreKeys, type MapStore as NMapStore } from 'nanostores';
2
2
  import { AbstractStore } from './abstract';
3
+ interface MapStoreObj {
4
+ [k: string]: any;
5
+ }
3
6
  /**
4
7
  * Wrapper for nanostores MapStore
5
8
  */
6
- export declare class MapStore<StoreInterface extends object, StoreInstance extends NMapStore<StoreInterface> = NMapStore<StoreInterface>> extends AbstractStore<StoreInstance> {
9
+ export declare class MapStore<StoreInterface extends MapStoreObj, StoreInstance extends NMapStore<StoreInterface> = NMapStore<StoreInterface>> extends AbstractStore<StoreInstance> {
7
10
  getValues: () => StoreInterface;
8
11
  getValue: (key: MapStoreKeys<StoreInstance>) => StoreInterface[MapStoreKeys<StoreInstance>];
9
12
  setValue: <Key extends MapStoreKeys<StoreInstance>>(path: Key, value: StoreInterface[Key]) => void;
@@ -13,7 +16,8 @@ export declare class MapStore<StoreInterface extends object, StoreInstance exten
13
16
  /**
14
17
  * create map store from nanostores
15
18
  */
16
- export declare const createMapStore: <Data extends object>(initialData: Data) => import("nanostores").PreinitializedMapStore<Data> & object;
17
- export type MapStoreListeners<StoreInstance extends NMapStore<StoreInterface>, StoreInterface extends object> = {
19
+ export declare const createMapStore: <Data extends MapStoreObj>(initialData: Data) => import("nanostores").PreinitializedMapStore<Data> & object;
20
+ export type MapStoreListeners<StoreInstance extends NMapStore<StoreInterface>, StoreInterface extends MapStoreObj> = {
18
21
  [T in MapStoreKeys<StoreInstance>]: (value: StoreInterface[T]) => void;
19
22
  };
23
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamlayer/sdk-web-interfaces",
3
- "version": "1.5.5",
3
+ "version": "1.6.0",
4
4
  "type": "module",
5
5
  "main": "./lib/index.js",
6
6
  "typings": "./lib/index.d.ts",
@@ -16,11 +16,11 @@
16
16
  }
17
17
  },
18
18
  "peerDependencies": {
19
- "@bufbuild/protobuf": "^1.10.0",
19
+ "@bufbuild/protobuf": "^2.2.2",
20
20
  "@nanostores/query": "^0.2.10",
21
21
  "nanostores": "^0.11.4",
22
- "@streamlayer/sdk-web-logger": "^1.0.61",
23
- "@streamlayer/sdk-web-types": "^1.10.18"
22
+ "@streamlayer/sdk-web-logger": "^1.0.62",
23
+ "@streamlayer/sdk-web-types": "^1.11.0"
24
24
  },
25
25
  "devDependencies": {
26
26
  "tslib": "^2.7.0"