3.1.1 • Published 2 months ago

@metamask/safe-event-emitter v3.1.1

Weekly downloads
9,814
License
ISC
Repository
github
Last release
2 months ago

safe-event-emitter

An EventEmitter that isolates the emitter from errors in handlers. If an error is thrown in a handler it is caught and re-thrown inside of a setTimeout so as to not interrupt the emitter's code flow.

The API is the same as a core EventEmitter.

Install

$ yarn add '@metamask/safe-event-emitter'

Usage

import SafeEventEmitter from '@metamask/safe-event-emitter';

const ee = new SafeEventEmitter();
ee.on('boom', () => { throw new Error(); });
ee.emit('boom'); // No error here

// Error is thrown after setTimeout

Release & Publishing

The project follows the same release process as the other libraries in the MetaMask organization:

  1. Create a release branch
    • For a typical release, this would be based on master
    • To update an older maintained major version, base the release branch on the major version branch (e.g. 1.x)
  2. Update the changelog
  3. Update version in package.json file (e.g. yarn version --minor --no-git-tag-version)
  4. Create a pull request targeting the base branch (e.g. master or 1.x)
  5. Code review and QA
  6. Once approved, the PR is squashed & merged
  7. The commit on the base branch is tagged
  8. The tag can be published as needed

Running tests

yarn test
@lilpacy/torus-embed@everything-registry/sub-chunk-597json-rpc-middleware-streamjson-rpc-engineklip-web3-provider-mobilemetatronproviderseth-block-trackerforked-metamask-providerseth-json-rpc-filters-forketh-json-rpc-middlewareeth-json-rpc-filtersomnisimpeditmoso-inpage-providerprotico-sdkquaelaboriosamquasexplicaborepellatquamtoken-trackertotamdoloribussimple-test-observable-storesing-wallet-inpage-providersparrow-providers@make-software/csprclick-core-types@prajjawal/qrl_providers@newki/web3-provider-adapter@newki_pheasant/web3-provider-adapter@nixjs23n6/block-tracker@nixjs23n6/aptos-block-tracker@extrawallet/providers@extrawallet/obs-store@mm-snap/controllers@metamask/providers@mfers/eth-token-tracker@metamask-previews/eth-json-rpc-provider@metamask-previews/json-rpc-engine@metamask-previews/json-rpc-middleware-stream@metamask/inpage-provider@metamask/json-rpc-engine@metamask/json-rpc-middleware-stream@metamask/multichain-provider@metamask/obs-store@metamask/eth-json-rpc-provider@metamask/eth-token-tracker@metis.io/middleware-client@gasnow/inpage-providerweb3-provider-adapter-with-signwalletlink@kanalabs/transfer-widget@klaytn/klip-web3-provider@klaytn/kaikas-web3-provider@jccdex/providers@adilchain/providers@alphacarbon/inpage-provider@subwallet/extension-base@subwallet/extension-koni-base@taynguyen/inpage-provider@syspollum/sysweb3-keyring@voyage-finance/json-rpc-middleware-stream@voyage-finance/providers@arcana/auth@cardstack/web-client@cedelabs/providers@cedelabs/widgets-universal@bitget-wallet/web3-sdk@blockits/obs-store@starcoin/stc-inpage-providers@starcoin-org/stc-block-tracker@starcoin-org/stc-inpage-provider@starcoin/stc-block-tracker@starcoin/stc-inpage-provider@shiyuan/web3-sdk@skilm/providers@soul-wallet/extension-base@theqrl/qrl_providers@atomrigslab/providers@clover-network/inpage-provider@clover-network/web-wallet-sdk@zhouhancheng/inpage-providerabdolores@coinbase/wallet-mobile-sdk@cloud-cryptographic-wallet/web3-provider-adapter@colligence/abc-web3-provider@colligence/klip-web3-providerconsequaturnullacorruptiestcorporisnemobiport-test-keyring-controllerbitski-providercesargdm-coinbase-wallet-sdkdekey-eth-json-rpc-filtersdekey-eth-json-rpc-middlewaredekey-providersdolorumlaborum
3.1.1

2 months ago

3.1.0

2 months ago

3.0.0

1 year ago

2.0.0

4 years ago