Skip to content

v9.6.0

Latest
Compare
Choose a tag to compare
@adams85 adams85 released this 26 May 16:07
53bcc68

Improvements:

  • Include the SDK Key in log message of error 1100 ("Your SDK Key seems to be wrong...") (configcat/common-js#112)
  • Mask SDK Key (keep only the last 6 characters visible) when writing it to the log.
  • If available, use monitonic clock (performance.now) instead of system clock (new Date()) for scheduling poll iterations in Auto Polling mode for improved precision and resistance to system clock adjustments (time sync, user initiated clock adjustments, etc.)
  • Correct the internal cache refresh behavior in offline mode: if the client uses an external cache, a synchronization should happen in every case where a fetch operation would happen in online mode. (For example, in Auto Polling mode, the background polling loop should sync with the external cache even when it doesn't initiate config fetch operations.)
  • Eliminate race condition between concurrent cache synchronizations.
  • Emit configChanged once per config refresh operation, eliminate race conditions around cache write, and improve performance in high concurrency situations by deduplicating config refresh instead of config fetch operation only.
  • Correct the intellisense docs for some config caching/refreshing-related APIs.

Bug fixes:

  • Fix a bug that causes an error when user-provided logger, config cache, etc. implementation contains a circular reference. (configcat/common-js#111, configcat/common-js#112)
  • Fix a minor bug in setting type mismatch check. (Type mismatch should also be reported for allowed flag override values.)
  • Fix a minor bug in formatting errors. (Some JS runtimes doesn't include the error message in the stack trace.)
  • Fix a minor bug in FetchError. (Name property should be set to the class name.)

Breaking changes:

  • Change forceRefreshAsync to report failure and log a warning in offline mode only when the client is not configured to use an external cache. (Very low impact expected.) (configcat/common-js#112)
  • Make the clientReady event consistent with other SDKs in Auto Polling mode. When the client is offline, clientReady is emitted as soon as the initial sync with the external cache completes. (Low impact expected.)
  • Make changes to also emit the configChanged event when the local cache is updated as a result of synchronization with the external cache. (Low impact expected.)