
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
@ebec/http
Advanced tools
This library provides HTTP base error classes (NotFoundError, InternalServerError, ...),
which can simply be extended.
Table of Contents
npm install @ebec/http --save
The usage is pretty easy, just import one of the client or server error classes and use them
in throw- & catch- statements.
Basic
import {
InternalServerError,
NotFoundError
} from "@ebec/http";
const clientError = new NotFoundError();
console.log(clientError.getOption('statusCode'));
// 404
console.log(clientError.getOption('logMessage'));
// false
console.log(clientError.getOption('code'));
// NOT_FOUND
// ------------------------------------
const serverError = new InternalServerError({
logLevel: 'warning'
});
console.log(serverError.getOption('statusCode'));
// 500
console.log(serverError.getOption('logMessage'));
// true
console.log(serverError.getOption('code'));
// INTERNAL_SERVER_ERROR
console.log(serverError.getOption('logLevel'));
// warning
Another way to use the predefined error classes is to extend them,
with own options.
Extend
import {
Options,
mergeOptions,
NotFoundError
} from "@ebec/http";
class UserNotFound extends NotFoundError {
constructor(options?: Options) {
super(mergeOptions(
{
message: 'The user was not found.',
code: 'USER_NOT_FOUND'
},
...(options ? options : {})
));
}
}
The following HTTP classes are predefined:
BadRequestErrorUnauthorizedErrorForbiddenErrorNotFoundErrorMethodNotAllowedErrorNotAcceptableErrorProxyAuthenticationRequiredErrorRequesTimeoutErrorConflictErrorGoneErrorLengthRequiredErrorPreconditionFailedErrorRequestEntityTooLargeErrorRequestUriTooLongErrorUnsupportedMediaTypeErrorRequestRangeNotSatisfiedErrorExpectationFailedErrorImATeapotErrorEnhanceYourCalmErrorUnprocessableEntityErrorLockedErrorFailedDependencyErrorUnorderedCollectionErrorUpgradeRequiredErrorPreconditionRequiredErrorTooManyRequestErrorRequestHeaderFieldsTooLargeErrorNoResponseErrorRetryWithErrorBlockedByWindowsParentErrorClientClosedRequestErrorInternalServerErrorNotImplementedErrorBadGatewayErrorServiceUnavailableErrorGatewayTimeoutErrorHTTPVersionNotSupportedErrorVariantAlsoNegotiatesInsufficientStorageErrorLoopDetectedErrorBandwidthLimitExceededErrorNotExtendedErrorNetworkAuthenticationRequiredErrorFAQs
43 pre-built HTTP error classes (4xx/5xx) with status codes, status messages, and duck-typed type guards.
We found that @ebec/http demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.