@streamlayer/sdk-web-interfaces 1.5.5 → 1.6.1
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 +6 -10
- package/lib/feature.js +16 -3
- package/lib/store/map.d.ts +7 -3
- package/package.json +4 -4
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 =
|
|
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 =
|
|
17
|
-
case: 'inplay'
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
|
|
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
|
}
|
package/lib/store/map.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
17
|
-
export type MapStoreListeners<StoreInstance extends NMapStore<StoreInterface>, StoreInterface extends
|
|
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.
|
|
3
|
+
"version": "1.6.1",
|
|
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": "^
|
|
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.
|
|
23
|
-
"@streamlayer/sdk-web-types": "^1.
|
|
22
|
+
"@streamlayer/sdk-web-logger": "^1.0.63",
|
|
23
|
+
"@streamlayer/sdk-web-types": "^1.12.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"tslib": "^2.7.0"
|