3.1.2 • Published 9 months ago

@metamask/safe-event-emitter v3.1.2

Weekly downloads
9,814
License
ISC
Repository
github
Last release
9 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-597walletlinkweb3-provider-adapter-with-signsparrow-providers@clover-network/inpage-provider@clover-network/web-wallet-sdk@colligence/klip-web3-provider@colligence/abc-web3-provider@blockits/obs-store@prajjawal/qrl_providersjson-rpc-enginejson-rpc-middleware-streamklip-web3-provider-mobilemetatronproviderstoken-trackertotamdoloribus@arcana/auth@atomrigslab/providers@alphacarbon/inpage-provider@bitget-wallet/web3-sdk@cardstack/web-client@cedelabs/providers@cedelabs/widgets-universal@cloud-cryptographic-wallet/web3-provider-adapter@adilchain/providers@coinbase/wallet-mobile-sdk@gasnow/inpage-provider@make-software/csprclick-core-types@metis.io/middleware-client@mfers/eth-token-tracker@newki/web3-provider-adapter@newki_pheasant/web3-provider-adapter@nixjs23n6/aptos-block-tracker@nixjs23n6/block-tracker@extrawallet/obs-store@extrawallet/providers@metamask/obs-store@metamask/providers@metamask/multichain-provider@metamask-previews/json-rpc-engine@metamask-previews/json-rpc-middleware-stream@metamask-previews/eth-json-rpc-provider@metamask/eth-block-tracker@metamask/eth-json-rpc-filters@metamask/eth-json-rpc-provider@metamask/eth-token-tracker@metamask/inpage-provider@metamask/json-rpc-engine@metamask/json-rpc-middleware-stream@mm-snap/controllers@klaytn/kaikas-web3-provider@jccdex/providers@klaytn/klip-web3-provider@kanalabs/transfer-widgetmoso-inpage-provideromnisimpeditproviders-forkprotico-sdkpolkamarkets-jsrepellatquamquasexplicaboquaelaboriosamsimple-test-observable-storesing-wallet-inpage-provider@wepin/solana-wallet-adapter@wepin/common@wepin/provider-js@wepin/sdk-js@theqrl/qrl_providers@voyage-finance/json-rpc-middleware-stream@voyage-finance/providers@temidaio/json-rpc-engine@temidaio/providers@zhouhancheng/inpage-providerabdolorescesargdm-coinbase-wallet-sdkconsequaturnullacorruptiestcorporisnemodekey-eth-json-rpc-filtersdekey-eth-json-rpc-middlewaredekey-providersbiport-test-keyring-controllerbitski-providerdolorumlaborumeth-trackerethblk-trackerethblock-trackreth-block-trackereth-json-rpc-middlewareeth-json-rpc-filterseth-json-rpc-filters-forkforked-metamask-providers@shiyuan/web3-sdk@starcoin-org/stc-block-tracker@starcoin-org/stc-inpage-provider@starcoin/stc-block-tracker@starcoin/stc-inpage-provider@starcoin/stc-inpage-providers
3.1.2

9 months ago

3.1.1

1 year ago

3.1.0

1 year ago

3.0.0

2 years ago

2.0.0

5 years ago