Exceptionless.JavaScript Versions Save

Exceptionless JavaScript client

v3.1.0

1 month ago

What's Changed

We've attended to some maintenance tasks and wired up linting and formatting and upgraded dependencies while we were at it.

BREAKING

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!

v3.0.5

6 months ago

This release focused on fixing a bug (#140) where the NodeJS client could throw an error on startup when trying to configure the localStorage polyfill. This was detected when running inside of an AWS Lambda function.

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!

v3.0.4

7 months ago

This release focused on fixing a bug where SimpleError type was not exported.

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!

v3.0.3

8 months ago

This release focused on improving the experience around logging.

Improvements

  • Added LogLevel type for better auto completion

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!

v3.0.2

9 months ago

This release focused on improving the experience around unhandledRejection errors.

Improvements

  • Added additional checks for unhandledRejection errors
  • Updated toError to not define an error stack when creating new error instances.
  • Added ability to handle errors that have no stack

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!

v3.0.1

1 year ago

This release added support for capturing request info headers!

New Features

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!

v3.0.0

1 year ago

This release focused on clearing the entire JavaScript client GitHub backlog and adding awesome new capabilities! We now have a super robust prune implementation that we think it's the best implementation out there that supports all JavaScript types! This allows us to finally respect max depth when sending custom event data. We also greatly improved the client behavior to terminate gracefully if when the last app statement executes, leading to a much-improved CLI / Lambda experience.

New Features

Bug Fixes

Breaking changes

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!

v2.0.1

1 year ago

This is a maintenance release that improved the npm workspaces story, fixed some minor bugs and added a new SvelteKit sample app.

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!

v2.0.0

2 years ago

We have put a ton of work into modernizing the JavaScript client to take advantage of the latest JavaScript features. When we first started writing the JavaScript client we could only target ES3. A lot has changed since then, so we wanted update the client to embrace the future while removing blocking issues that was preventing us from supporting newer technologies such as react native.

New Features

  • Source map support for browsers (@exceptionless/browser npm package) !
  • ECMAScript Modules (ESM) Support. This allows for smaller package sizes via tree shaking and increased support for new environments (e.g., React). This also allowed us to remove side effects and singletons from our codebase that can make it harder to create customized clients.
  • Simplified client startup for ease of use and removed configuration (useSessions(), useReferenceIds()) that could be inferred at runtime.
  • Fully async idiomatic API. We got rid of callbacks and drastically simplified the codebase. This will make it much easier to consume from modern applications.
  • We rewrote our storage and submission implementations to be compatible across many different runtimes by closely aligning with the fetch and local storage APIs.
  • React support via the @exceptionless/react npm package. We've included an example application showing how easy it is to configure.
  • Vue support via the @exceptionless/vue npm package. We've included an example application showing how easy it is to configure.

Development Improvements

  • We've spent quite a bit of time improving the development tool chain to use npm 7 workspaces. This will improve over time but really cuts down on global tooling to work with the client.
  • We added recommended linting rules and enabled TypeScript strict mode. This will reduce the chances of bugs getting into the code base while following best practices.
  • Every commit is now actively tested against multiple operating systems.

Breaking changes

  • Packages are now only hosted on npm (packages will no longer be pushed to bower) and are also available on the GitHub Registry.
  • The exceptionless npm package has been deprecated. We recommend upgrading to the @exceptionless/browser or @exceptionless/node packages respectively.
  • All packages now exclusively target ECMAScript Modules (ESM). This allows for smaller package sizes via tree shaking and increased support for new environments (e.g., React). This may also mean you will need to be using Node 15+ which supports ESM.
  • Please see the documentation for configuring the client as script imports and client initialization code has changed.
  • The client configuration object has been simplified a bit.
    • We've moved services (lastReferenceIdManager, log, storage, queue, submissionClient) into a services property and removed services (environmentInfoCollector, errorParser, moduleCollector, requestInfoCollector) that made more sense as a plugin or were no longer needed.
    • The following items have been removed: submissionAdapter, submissionClient, useSessions(), useReferenceIds(), defaults. The client will automatically handle sessions and reference ids based on usage.
  • We removed the addRequestInfo fluent EventBuilder API function. This was platform specific to node and didn't make sense in most cases. We replaced it with setContextProperty(key, value) which can be used to set data on the EventBuilder context to be consumed in a plugin. If you were using addRequestInfo(req) you should now call setContextProperty(KnownEventDataKeys.RequestInfo, req)

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!

v2.0.0-beta4

2 years ago

We have put a ton of work into modernizing the JavaScript client to take advantage of the latest JavaScript features. When we first started writing the JavaScript client we could only target ES3. A lot has changed since then, so we wanted update the client to embrace the future while removing blocking issues that was preventing us from supporting newer technologies such as react native.

New Features

  • Source map support for browsers (@exceptionless/browser npm package) !
  • ECMAScript Modules (ESM) Support. This allows for smaller package sizes via tree shaking and increased support for new environments (e.g., React). This also allowed us to remove side effects and singletons from our codebase that can make it harder to create customized clients.
  • Simplified client startup for ease of use and removed configuration (useSessions(), useReferenceIds()) that could be inferred at runtime.
  • Fully async idiomatic API. We got rid of callbacks and drastically simplified the codebase. This will make it much easier to consume from modern applications.
  • We rewrote our storage and submission implementations to be compatible across many different runtimes by closely aligning with the fetch and local storage APIs.
  • React support via the @exceptionless/react npm package. We've included an example application showing how easy it is to configure.
  • Vue support via the @exceptionless/vue npm package. We've included an example application showing how easy it is to configure.

Development Improvements

  • We've spent quite a bit of time improving the development tool chain to use npm 7 workspaces. This will improve over time but really cuts down on global tooling to work with the client.
  • We added recommended linting rules and enabled TypeScript strict mode. This will reduce the chances of bugs getting into the code base while following best practices.
  • Every commit is now actively tested against multiple operating systems.

Breaking changes

  • Packages are now only hosted on npm (packages will no longer be pushed to bower) and are also available on the GitHub Registry.
  • The exceptionless npm package has been deprecated. We recommend upgrading to the @exceptionless/browser or @exceptionless/node packages respectively.
  • All packages now exclusively target ECMAScript Modules (ESM). This allows for smaller package sizes via tree shaking and increased support for new environments (e.g., React). This may also mean you will need to be using Node 15+ which supports ESM.
  • Please see the documentation for configuring the client as script imports and client initialization code has changed.
  • The client configuration object has been simplified a bit.
    • We've moved services (lastReferenceIdManager, log, storage, queue, submissionClient) into a services property and removed services (environmentInfoCollector, errorParser, moduleCollector, requestInfoCollector) that made more sense as a plugin or were no longer needed.
    • The following items have been removed: submissionAdapter, submissionClient, useSessions(), useReferenceIds(), defaults. The client will automatically handle sessions and reference ids based on usage.
  • We removed the addRequestInfo fluent EventBuilder API function. This was platform specific to node and didn't make sense in most cases. We replaced it with setContextProperty(key, value) which can be used to set data on the EventBuilder context to be consumed in a plugin. If you were using addRequestInfo(req) you should now call setContextProperty(KnownEventDataKeys.RequestInfo, req)

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!