Skip to content

Commit 2fa4704

Browse files
authored
feat: simplify types treating key and payload always as optional (#380)
Utilizing [TypeScript intersection](microsoft/TypeScript#31838) to simplify config types. Config keys and payload can now always be `undefined`.
1 parent 025dc33 commit 2fa4704

File tree

4 files changed

+12
-12
lines changed

4 files changed

+12
-12
lines changed

packages/node-sdk/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@bucketco/node-sdk",
3-
"version": "1.6.3",
3+
"version": "1.6.4",
44
"license": "MIT",
55
"repository": {
66
"type": "git",

packages/node-sdk/src/types.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ export type FeatureRemoteConfig =
148148
* Describes a feature
149149
*/
150150
export interface Feature<
151-
TConfig extends FeatureType["config"] | undefined = EmptyFeatureRemoteConfig,
151+
TConfig extends FeatureType["config"] = EmptyFeatureRemoteConfig,
152152
> {
153153
/**
154154
* The key of the feature.
@@ -163,11 +163,11 @@ export interface Feature<
163163
/*
164164
* Optional user-defined configuration.
165165
*/
166-
config: TConfig extends undefined
167-
? EmptyFeatureRemoteConfig
168-
: TConfig & {
166+
config:
167+
| ({
169168
key: string;
170-
};
169+
} & TConfig)
170+
| EmptyFeatureRemoteConfig;
171171

172172
/**
173173
* Track feature usage in Bucket.

packages/react-sdk/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@bucketco/react-sdk",
3-
"version": "3.1.3",
3+
"version": "3.1.4",
44
"license": "MIT",
55
"repository": {
66
"type": "git",

packages/react-sdk/src/index.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ export type FeatureRemoteConfig =
6262
* Describes a feature
6363
*/
6464
export interface Feature<
65-
TConfig extends FeatureType["config"] | undefined = EmptyFeatureRemoteConfig,
65+
TConfig extends FeatureType["config"] = EmptyFeatureRemoteConfig,
6666
> {
6767
/**
6868
* The key of the feature.
@@ -82,11 +82,11 @@ export interface Feature<
8282
/*
8383
* Optional user-defined configuration.
8484
*/
85-
config: TConfig extends undefined
86-
? EmptyFeatureRemoteConfig
87-
: TConfig & {
85+
config:
86+
| ({
8887
key: string;
89-
};
88+
} & TConfig)
89+
| EmptyFeatureRemoteConfig;
9090

9191
/**
9292
* Track feature usage in Bucket.

0 commit comments

Comments
 (0)