Security News
Cloudflare Adds Security.txt Setup Wizard
Cloudflare has launched a setup wizard allowing users to easily create and manage a security.txt file for vulnerability disclosure on their websites.
@anandsuresh/smart-error
Advanced tools
A SmartError
is a wrapper around the JavaScript Error
class providing a few additional fields:
code
: A unique code identifying the errormetadata
: Optional metadata useful for debugging (e.g. the arguments passed to the function that threw the error)cause
: An optional error that is being wrapped by the SmartError
const {create} = require('@anandsuresh/smart-error')
const MyError = create('MyError', {
Unexpected: 'An unexpected error occurred.',
BadArguments: 'One or more arguments passed were invalid.',
TimedOut: 'A timeout occurred waiting for the operation to complete.'
})
function isOddNumber(number) {
if (typeof number !== 'number')
throw MyError.BadArguments(number)
return (number % 2 === 0)
}
try {
console.log(`isOddNumber(3) = ${isOddNumber(3)}`)
} catch (e) {
if (e.isBadArguments) {
console.error(`The argument $(e.metadata) is not a number!`)
} else {
console.error(e.toDetailedString())
}
}
create(errorName, errors)
create
takes 2 arguments:
errorName
: the name of the error. E.g. 'MyError'
errors
: an object mapping error codes to error messages. E.g. {Unexpected: 'An unexpected error occurred'}
The create()
function creates a static function for each error code and an getter function to check if that is the specific error wrapped by the SmartError
. Consider the following example:
const {create} = require('@anandsuresh/smart-error')
const MyError = create('MyError', {
Unexpected: 'An unexpected error occurred.',
BadArguments: 'One or more arguments passed were invalid.',
TimedOut: 'A timeout occurred waiting for the operation to complete.'
})
The newly created MyError
class will inherit from the JavaScript Error
class and have the following instance properties:
name
: The name of the error, in this case 'MyError'
code
: The unique code of the error (Unexpected
, BadArguments
, TimedOut
)message
: A human-readable error messagemetadata
: Optional metadata associated with the error (e.g. the arguments passed to the function that threw the error)cause
: An optional error that is being wrapped by the SmartError
stack
: The stack-trace generated by the errorisSmartError
: Helper property that wraps an instanceof
check to return whether or not the instance is a SmartError
isUnexpected
: Helper property that returns true
if the MyError
instance has the code Unexpected
isBadArguments
: Helper property that returns true
if the MyError
instance has the code BadArguments
isTimedOut
: Helper property that returns true
if the MyError
instance has the code TimedOut
MyError
will also receive the following set of class methods:
Unexpected(metadata, cause)
: Creates an returns an instance of MyError
with the code
property set to Unexpected
BadArguments(metadata, cause)
: Creates an returns an instance of MyError
with the code
property set to BadArguments
TimedOut(metadata, cause)
: Creates an returns an instance of MyError
with the code
property set to TimedOut
FAQs
A smart error implementation
We found that @anandsuresh/smart-error demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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
Cloudflare has launched a setup wizard allowing users to easily create and manage a security.txt file for vulnerability disclosure on their websites.
Security News
The Socket Research team breaks down a malicious npm package targeting the legitimate DOMPurify library. It uses obfuscated code to hide that it is exfiltrating browser and crypto wallet data.
Security News
ENISA’s 2024 report highlights the EU’s top cybersecurity threats, including rising DDoS attacks, ransomware, supply chain vulnerabilities, and weaponized AI.