
Security News
Another Round of TEA Protocol Spam Floods npm, But It’s Not a Worm
Recent coverage mislabels the latest TEA protocol spam as a worm. Here’s what’s actually happening.
@teamhive/node-common
Advanced tools
This repo houses our shared node functions and node handlers
This decorator will wrap your whole function into a try/catch and you can pass an optional custom error class for it to throw! If you only want to handle the error and not throw an excxeption, you can pass in handleOnly: true. When using this option, it will emit an event with the error through the TryCatchEmitter, which you should use to listen and handle these errors in your application. If you want to sanitize the error itself, like in case of taking unecessary propereties off of it, you can pass in a class that accepts an error as a parameter to errorWrapperClass or even have that class be the first parameter
// Main file, right after bootstrap of application **caught error will be handled here**
import { TryCatchEmitter } from '@teamhive/node-common';
// This will setup any baseExceptions that may get thrown that you dont want to wrap with the wrapping class
TryCatchEmitter.baseException = [MyBaseException, HttpException];
TryCatchEmitter.listen((error) => errorHandler.captureException(error));
// Options interface
interface TryCatchOptions {
handleOnly?: boolean;
customResponseMessage?: string;
errorWrapperClass?: { new (param1: Error) };
isSynchronous?: boolean;
}
// Only pass in exception (this will throw an SqlException)
@TryCatch(SqlException)
async fetchAll() {
return await this.usersRepository.fetchAll()
}
OR
// Only pass in options (this will not throw but only report the SqlExceptionError)
@TryCatch({ handleOnly: true, errorWrapperClass: SqlExceptionError })
async fetchAll() {
return await this.usersRepository.fetchAll()
}
OR
// Pass in exception with options
@TryCatch(SqlException, { handleOnly: true, customResponseMessage: 'error creating content' })
async fetchAll() {
return await this.usersRepository.fetchAll()
}
This statis class is designed to help you catch unhandled promise rejections and uncaught exceptions from the highest node process event listeners. You can als pass in a function to handle these exceptions gracefully.
At the very beginning in your index file you should setup our very basic event listeners
'use strict'
// setup uncaught exception handling
try {
const NodeEventHandler = require('@teamhive/node-common').NodeEventHandler;
NodeEventHandler.logUncaughtException();
NodeEventHandler.logUnhandleRejection();
} catch (error) {
console.error('ERROR SETTING UP EVENT HANDLER: ' + error);
process.exit(1);
}
// start application
require('./dist/main');
Once your app bootstraps and you have access to your error handler, you can pass that to it
import { NodeEventHandler } from '@teamhive/node-common';
// Get you errorHandler our of Reflector or whereever it is constructed
NodeEventHandler.handleUnhandledRejection(errorHandler);
NodeEventHandler.handleUncaughtException(errorHandler);
npm pack
npm version (major|minor|patch)
npm publish
Note: This will also automatically push changes and tags post-publish
FAQs
This repo houses our shared node functions and node handlers
We found that @teamhive/node-common demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 10 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Recent coverage mislabels the latest TEA protocol spam as a worm. Here’s what’s actually happening.

Security News
PyPI adds Trusted Publishing support for GitLab Self-Managed as adoption reaches 25% of uploads

Research
/Security News
A malicious Chrome extension posing as an Ethereum wallet steals seed phrases by encoding them into Sui transactions, enabling full wallet takeover.