Skip to content

Releases: configcat/js-sdk

v8.0.1

26 Jun 13:47
36a9887
Compare
Choose a tag to compare

Bug fixes:

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

v8.0.0

13 Jun 15:00
22c3bf5
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 the createClient, createClientWithAutoPoll, createClientWithManualPoll and createClientWithLazyLoad factory functions. Alternative: getClient.
  • 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.
  • 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.

v7.0.1

26 Apr 16:37
a7f9b33
Compare
Choose a tag to compare

Fix client setup in getClient to use the correct cache implementation. (Potentially, this will reduce the number of necessary config JSON downloads, so it's highly recommended to upgrade to this version in case you've started to use the new getClient API).

v7.0.0

04 Jan 15:50
fdfc060
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.

v6.0.1

21 Nov 15:00
Compare
Choose a tag to compare

Fixed

  • When the flagOverrides was set, the { [name: string]: Setting } map transformation of the remote settings didn't work properly.

v6.0.0

02 Jun 09:06
c4458a5
Compare
Choose a tag to compare
  • Move SDK version to query parameter.
  • Let the browser send the If-None-Match and If-Modified-Since headers.

v5.10.0

01 Jun 09:21
3df5ed7
Compare
Choose a tag to compare

Adding polyfill for Object.fromEntries to support older browsers.
Adding tests for multiple browsers with different versions.

v5.9.0

31 May 14:36
f341b8e
Compare
Choose a tag to compare

Passing the real SDK version to common-js instead of using common-js version.

v5.8.0

19 May 09:47
a5ae664
Compare
Choose a tag to compare
  • Export factory function for flag overrides.

v5.7.4

05 May 15:50
Compare
Choose a tag to compare

Updating configcat-common to latest.