
Security News
Official Go SDK for MCP in Development, Stable Release Expected in August
The official Go SDK for the Model Context Protocol is in development, with a stable, production-ready release expected by August 2025.
assert-args
Advanced tools
Validate and format function arguments ( handles types and optionals)
Validate and format function arguments ( handles types and optionals).
npm install --save assert-args
Assert argument types and format arguments into an object
function something (foo, bar, baz, qux, corge) {
var args = assertArgs(arguments, {
'foo': 'object', // foo is required and must be a object
'[bar]': SomeClass, // bar is optional and must be an instance of 'SomeClass'
'baz' : someTest // baz must pass someTest (someTest should throw an error if it fails)
'qux': ['string', 'number'] // qux is required and must be a string or number
'...corge': 'function' // corge is required and captures multiple arguments that must be functions
})
foo = args.foo
bar = args.bar
baz = args.baz
qux = args.qux
corge = args.corge // will be an array
/// ...
}
Check out the examples below.
// Type example
var args = assertArgs(arguments, {
'foo': 'string' // required string _or_ number arguments
})
/*
Will throw an error if it does not pass:
TypeError: "foo" must be a string
*/
// Multi-type example
var args = assertArgs(arguments, {
'foo': ['string', 'number'] // requires string or number argument
})
/*
Will throw an error if it does not pass:
TypeError: "foo" must be a string or number
*/
// Class example
var args = assertArgs(arguments, {
'foo': Array // required Array argument
})
/*
Will throw an error if it does not pass:
TypeError: "foo" must be an instance of Array
*/
var args = assertArgs(arguments, {
'foo': customValidation
})
// custom validation should throw an error if the value is invalid
function customValidation (value) {
if (!value.bar) {
throw new Error('"bar" is required')
}
}
/*
If `foo` does not pass it will throw:
Error: "foo" is invalid: "bar" is required
*/
var args = assertArgs(arguments, {
'foo': 'string' // required string argument
})
var args = assertArgs(arguments, {
'[foo]': 'string' // optional string argument
})
var args = assertArgs(arguments, {
'...foo': 'string', // captures multiple arguments
'cb': 'function'
})
var args = assertArgs(['str', {}, function () {}], {
'foo': 'string',
'[bar]': 'object',
'qux': 'function'
})
/*
args = {
foo: 'str',
bar: {},
qux: function () {}
}
*/
var args = assertArgs(['str', function () {}], {
'foo': 'string',
'[bar]': 'object',
'qux': 'function'
})
/*
args = {
foo: 'str',
bar: undefined,
qux: function () {}
}
*/
var args = assertArgs([], {
'foo': 'string',
'[bar]': 'object',
'qux': 'function'
})
/*
TypeError: "foo" is required
*/
var args = assertArgs(['str'], {
'foo': 'string',
'[bar]': 'object',
'qux': 'function'
})
/*
TypeError: "qux" is required
*/
var args = assertArgs([10, {}], {
'foo': 'string',
'[bar]': 'object',
'qux': 'function'
})
/*
TypeError: "foo" must be a string
*/
var args = assertArgs(['str', 10], {
'foo': 'string',
'[bar]': 'object',
'qux': 'function'
})
/*
TypeError: "qux" must be a function
*/
var args = assertArgs(['str', {}], {
'foo': 'string',
'[bar]': 'object',
'qux': 'function'
})
/*
TypeError: "qux" is required
*/
var args = assertArgs(['one', 'two', 'three', function () {}], {
'...foo': 'string',
'bar': 'function'
})
/*
args = {
foo: ['one', 'two', 'three'],
bar: function () {}
}
*/
var args = assertArgs([function () {}], {
'...foo': 'string',
'bar': 'function'
})
/*
TypeError: "...foo" is required
*/
var args = assertArgs([null, function () {}], {
'...foo': 'string',
'bar': 'function'
})
/*
TypeError: "...foo" must be strings
*/
// Check out the tests for more examples...
MIT
FAQs
Validate and format function arguments ( handles types and optionals)
The npm package assert-args receives a total of 15,838 weekly downloads. As such, assert-args popularity was classified as popular.
We found that assert-args 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
The official Go SDK for the Model Context Protocol is in development, with a stable, production-ready release expected by August 2025.
Security News
New research reveals that LLMs often fake understanding, passing benchmarks but failing to apply concepts or stay internally consistent.
Security News
Django has updated its security policies to reject AI-generated vulnerability reports that include fabricated or unverifiable content.