Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
@sumor/error
Advanced tools
A error handling library support multi-language, predefine error code and passing data.
A Sumor Cloud Tool.
More Documentation
A error handling library support multi-language, predefine error code and passing data.
npm i @sumor/error --save
Require Node.JS version 18.x or above
As this package is written in ES module,
please change the following code in your package.json
file:
{
"type": "module"
}
import defineError from '@sumor/error'
const MyError = defineError({
code: {
USER_NOT_FOUND: 'User not found',
USER_EXISTED: 'User {name} existed'
}
})
throw new MyError('USER_NOT_FOUND')
// output: Error: User not found
throw new MyError('USER_EXISTED', { name: 'Alice' })
// output: Error: User Alice existed
import defineError from '@sumor/error'
const MyError = defineError({
language: 'en', // default language
code: {
USER_NOT_FOUND: 'User not found',
USER_EXISTED: 'User {name} existed'
},
i18n: {
zh: {
USER_NOT_FOUND: '用户未找到',
USER_EXISTED: '用户 {name} 已存在'
}
}
})
const error = new MyError('USER_EXISTED', { name: 'Alice' })
error.language = 'en' // change Error language
console.log(error)
// output: Error: User Alice existed
error.language = 'zh' // change Error language
console.log(error)
// output: Error: 用户 Alice 已存在
import defineError from '@sumor/error'
const MyError = defineError({
code: {
USER_NOT_FOUND: 'User not found',
USER_EXISTED: 'User {name} existed'
}
})
const error = new MyError('USER_EXISTED', { name: 'Alice' })
console.log(error.json())
// output: {"code":"USER_EXISTED","message":"User Alice existed"}
import defineError from '@sumor/error'
const MyError = defineError({
code: {
FIELD_VERIFY_FAILED: 'Field verify failed',
FIELD_CANNOT_EMPTY: 'Field {name} cannot be empty',
FIELD_TOO_LONG: 'Field {name} is too long'
},
i18n: {
zh: {
FIELD_VERIFY_FAILED: '字段验证失败',
FIELD_CANNOT_EMPTY: '字段 {name} 不能为空',
FIELD_TOO_LONG: '字段 {name} 过长'
}
}
})
const error = new MyError('FIELD_VERIFY_FAILED', {}, [
new MyError('FIELD_CANNOT_EMPTY', { name: 'username' }),
new MyError('FIELD_TOO_LONG', { name: 'password' })
])
console.log(error.json())
/*
output:
{
"code":"FIELD_VERIFY_FAILED",
"message":"Field verify failed",
"errors":[
{
"code":"FIELD_CANNOT_EMPTY",
"message":"Field username cannot be empty"
},{
"code":"FIELD_TOO_LONG",
"message":"Field password is too long"
}
]
}
*/
error.language = 'zh'
console.log(error.json())
/*
output:
{
"code":"FIELD_VERIFY_FAILED",
"message":"字段验证失败",
"errors":[
{
"code":"FIELD_CANNOT_EMPTY",
"message":"字段 username 不能为空"
},{
"code":"FIELD_TOO_LONG",
"message":"字段 password 过长"
}
]
}
*/
import defineError from '@sumor/error'
const MyError = defineError({
code: {
FIELD_VERIFY_FAILED: 'Field verify failed',
FIELD_CANNOT_EMPTY: 'Field {name} cannot be empty',
FIELD_TOO_LONG: 'Field {name} is too long'
}
})
const error = new MyError('FIELD_VERIFY_FAILED', {}, [
new MyError('FIELD_CANNOT_EMPTY', { name: 'username' }),
new MyError('FIELD_TOO_LONG', { name: 'password' }),
new Error('Unknown Error')
])
console.log(error.json())
/*
output:
{
"code":"FIELD_VERIFY_FAILED",
"message":"Field verify failed",
"errors":[
{
"code":"FIELD_CANNOT_EMPTY",
"message":"Field username cannot be empty"
},{
"code":"FIELD_TOO_LONG",
"message":"Field password is too long"
},{
"code":"UNKNOWN_ERROR",
"message":"Unknown Error"
}
]
}
*/
FAQs
A error handling library support multi-language, predefine error code and passing data.
The npm package @sumor/error receives a total of 50,888 weekly downloads. As such, @sumor/error popularity was classified as popular.
We found that @sumor/error 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.
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
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.