
Security News
Browserslist-rs Gets Major Refactor, Cutting Binary Size by Over 1MB
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
strong-parameter
Advanced tools
Rails-style strong parameters for javascript projects. (e.g. Express, Koa)
Rails-style implementation of strong parameters. It supports Express, Koa and also can be used as standalone. The middleware adds the parameters
object to the Express request (or ctx.parameters
for Koa context) which returns an object, built from query string
, request body
and route params
data. The returned object has some useful methods allows for data requiring
and filtering
.
The implementation of strong parameters was previously forked from koa-strong-params but now has it's own implementation. Along with this change only
, except
and merge
methods have been dropped from the API as they do not exist in Rails Strong Parameters API.
Install the npm package.
npm install strong-parameter --save
var express = require('express')
var params = require('strong-parameter')
app.use(params.expressMiddleware())
var koa = require('koa')
var params = require('strong-parameter')
var app = new koa()
app.use(params.koaMiddleware())
app.use(function (req, res, next) {
var params = req.parameters
})
app.use(function (ctx, next) {
var params = ctx.parameters
})
var Parameters = require('strong-parameter').Parameters
var params = Parameters({
id: '13',
name: 'Bob',
age: '13',
hobbies: ['skydiving', 'football', 'photographing'],
address: {
country: 'US',
street: '261 West'
},
contacts: [
{
type: 'e-mail',
value: 'bob@random.rnd'
}, {
type: 'mobile',
value: '+123987456'
}
]
})
// All available params
params.all()
// -> { id: '13', name: 'Bob', age: '13', hobbies: ['skydiving', 'football', 'photographing'], address: { country: 'US', street: '261 West' }, contacts: [{ type: 'e-mail', value: 'bob@random.rnd' }, { type: 'mobile', value: '+123987456' }] }
// Only selected params
params.permit('name', 'age').value()
// -> { name: 'Bob', age: '13' }
params.permit('id', 'name', {hobbies: []}).value()
// -> { id: '13', name: 'Bob', hobbies: ['skydiving', 'football', 'photographing'] }
params.permit('id', 'name', {contacts: []}).value()
// -> { id: '13', name: 'Bob', contacts: [] }
params.permit('id', 'name', {contacts: ['type', 'value']}).value()
// -> { id: '13', name: 'Bob', contacts: [{ type: 'e-mail', value: 'bob@random.rnd' }, { type: 'mobile', value: '+123987456' }] }
// All params of a sub-object
params.require('address').all()
// -> { country: 'US', street: '261 West' }
// All params of a sub-object
params.require('contacts').permit('type', 'value').value()
// -> [{ type: 'e-mail', value: 'bob@random.rnd' }, { type: 'mobile', value: '+123987456' }]
// ParameterMissingError
try {
params.require('missingKey')
} catch(err) {
err instanceof ParameterMissingError // -> true
err instanceof Error // -> true
}
Look Rails Strong Parameters specification for more information.
Please follow Contributing
FAQs
Rails-style strong parameters for javascript projects. (e.g. Express, Koa)
The npm package strong-parameter receives a total of 22 weekly downloads. As such, strong-parameter popularity was classified as not popular.
We found that strong-parameter 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
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
Research
Security News
Eight new malicious Firefox extensions impersonate games, steal OAuth tokens, hijack sessions, and exploit browser permissions to spy on users.
Security News
The official Go SDK for the Model Context Protocol is in development, with a stable, production-ready release expected by August 2025.