Releases: configcat/react-sdk
Releases · configcat/react-sdk
v3.1.1
v3.1.0
New features and improvements:
- Provide a way to synchronously evaluate of feature flags/settings: consumers can create a snapshot of the client by
IConfigCatClient.snapshot()
, which captures the client's state (including the latest config fetched), then, using the returned object, they can execute synchronous evaluation operations. - Add a state parameter to the
clientReady
hook, by means of which consumers can get information about the initialization state of the client. - Minor performance improvements.
Bug fixes:
- Fix error logging of
getValueAsync
/getValueDetailsAsync
calls. - Fix JSDoc documentation of
Comparator.Contains/NotContains
.
v3.0.2
- Update
configcat-common
dependency tov8.0.2
.
Release notes for configcat-common v8.0.2
v3.0.1
v3.0.0
Please note that this version comes with several breaking changes, so you may need to adjust your code when upgrading, especially if you're using deprecated APIs or a custom logger and/or cache implementation. You can find the detailed list of breaking changes below.
New features and improvements:
- Complete overhaul of SDK logging:
- Simplify the logger interface (
IConfigCatLogger
) to make it easier to write custom implementations/adapters to logger frameworks. - Enable structured logging.
- Include event IDs in log messages to make identification of log events easier.
- Revise log messages and make them consistent across the ConfigCat SDKs.
- Simplify the logger interface (
- Revise caching of downloaded config data:
- Change the cache interface (
IConfigCatCache
, formerlyICache
) to get and set the cache payload as a plain string to make it easier to write custom implementations by removing the burden of data serialization from implementers. - Use a standardized config cache key generation algorithm and cache payload format to allow shared caches to be used by SDKs of different platforms.
- Change the cache interface (
- Revise JSDoc documentation.
- Improve the performance of the "IS (NOT) ONE OF (sensitive)" operators by hashing the value once (configcat/common-js#80).
Bug fixes:
- Fix checks which ensure that
IAutoPollOptions.pollIntervalSeconds
,IAutoPollOptions.maxInitWaitTimeSeconds
andILazyLoadingOptions.cacheTimeToLiveSeconds
settings are in the valid range. (Also, make infinite init wait possible in the case of Auto Polling.) - Fix
... is not a function
bug which can occur in Auto Polling mode, whenIAutoPollOptions.maxInitWaitTimeSeconds
is set to 0.
Breaking changes (listed in the order of expected impact):
- Remove all callback-style evaluation methods (e.g.
getValue
,getValueDetails
, etc.) fromIConfigCatClient
. Alternative:get*Async(...).then(result => ...)
- Remove the callback-style
forceRefresh
method fromIConfigCatClient
. Alternative:forceRefreshAsync(...).then(result => ...)
- Remove the
IAutoPollOptions.configChanged
callback. Alternative:options.setupHooks = hooks => hooks.on("configChanged", ...)
. - Changes the type of the
newConfig
argument fromProjectConfig
toIConfig
in theconfigChanged
hook. - Remove the
debug
,info
,warn
anderror
methods fromIConfigCatLogger
and change the signature of thelog
method, which is now the single method that needs to be implemented for custom logging. - Remove the
ICache
interface. Alternative:IConfigCatCache
. - Remove the
getVariationIdAsync
andgetAllVariationIdsAsync
methods fromIConfigCatClient
/ConfigCatClient
. Alternative:getValueDetailsAsync
andgetAllValueDetailsAsync
. - Improve type safety of setting evaluation methods by making
GetValueType
anduseFeatureFlag
generic to enforce that the compile-time type of default value and return value match - Slightly change the behavior of flag overrides so default value is returned instead of an unsupported value.
- Slightly change the behavior of
getValuesAsync
andgetValuesDetailsAsync
to fail early with exception when these methods are called with invalid parameters:Error
whenkey
is empty.TypeError
whendefaultValue
is not of an allowed type (string
,boolean
,number
,null
andundefined
).
- Remove the
IOverrideDataSource
interface and theFlagOverrides
andMapOverrideDataSource
classes from the public API. - Remove the
ProjectConfig
,RolloutRule
andRolloutPercentageItem
classes from the public API. - Change the type of the
MatchedEvaluationRule
toITargetingRule
andMatchedEvaluationPercentageRule
toIPercentageOption
inIEvaluationDetails
. - Change the algorithm used to generate the config cache key and the format of the cache payload.
v2.3.0
v2.2.1
v2.2.0
Fixed auto polling issues related to strict mode in development.
v2.1.0
Possible state problem fix (Can't call setState on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application.)