Skip to content

Releases: configcat/react-sdk

v3.1.1

04 Aug 17:08
a922b94
Compare
Choose a tag to compare

Improvements:

  • For better compatibility, restrict the TypeScript language features used to those which are available in v4.1 by downgrading the TypeScript compiler version.

v3.1.0

26 Jul 15:08
b278e4f
Compare
Choose a tag to compare

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

21 Jul 12:24
570b440
Compare
Choose a tag to compare

v3.0.1

26 Jun 13:48
3a3b681
Compare
Choose a tag to compare

Bug fixes:

  • Fix return value of getAllValues when one or more settings evaluate with error.

v3.0.0

14 Jun 17:39
b5096f5
Compare
Choose a tag to compare

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.
  • Revise caching of downloaded config data:
    • Change the cache interface (IConfigCatCache, formerly ICache) 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.
  • 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 and ILazyLoadingOptions.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, when IAutoPollOptions.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.) from IConfigCatClient. Alternative: get*Async(...).then(result => ...)
  • Remove the callback-style forceRefresh method from IConfigCatClient. Alternative: forceRefreshAsync(...).then(result => ...)
  • Remove the IAutoPollOptions.configChanged callback. Alternative: options.setupHooks = hooks => hooks.on("configChanged", ...).
  • Changes the type of the newConfig argument from ProjectConfig to IConfig in the configChanged hook.
  • Remove the debug, info, warn and error methods from IConfigCatLogger and change the signature of the log method, which is now the single method that needs to be implemented for custom logging.
  • Remove the ICache interface. Alternative: IConfigCatCache.
  • Remove the getVariationIdAsync and getAllVariationIdsAsync methods from IConfigCatClient/ConfigCatClient. Alternative: getValueDetailsAsync and getAllValueDetailsAsync.
  • Improve type safety of setting evaluation methods by making GetValueType and useFeatureFlag 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 and getValuesDetailsAsync to fail early with exception when these methods are called with invalid parameters:
    • Error when key is empty.
    • TypeError when defaultValue is not of an allowed type (string, boolean, number, null and undefined).
  • Remove the IOverrideDataSource interface and the FlagOverrides and MapOverrideDataSource classes from the public API.
  • Remove the ProjectConfig, RolloutRule and RolloutPercentageItem classes from the public API.
  • Change the type of the MatchedEvaluationRule to ITargetingRule and MatchedEvaluationPercentageRule to IPercentageOption in IEvaluationDetails.
  • Change the algorithm used to generate the config cache key and the format of the cache payload.

v2.3.0

26 Apr 06:40
ab9eee4
Compare
Choose a tag to compare

Fixing the #27 issue.

v2.2.1

21 Mar 10:58
e7abeb9
Compare
Choose a tag to compare

Fix package dependencies (move eslint-plugin-import from dependencies to devDependencies)

v2.2.0

09 Mar 12:51
2d3b234
Compare
Choose a tag to compare

Fixed auto polling issues related to strict mode in development.

v2.1.0

07 Mar 11:10
02fd55b
Compare
Choose a tag to compare

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.)

v2.0.0

27 Jan 11:56
ccc621d
Compare
Choose a tag to compare
  • Update library to the new major version (v7.0) of configcat-common. You can find the detailed list of changes here.
  • Re-export all public API types from configcat-common.