Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Places_devkit | 88 | 6 years ago | 2 | other | MATLAB | |||||
Development kit for the data of the Places365-Standard and Places365-Challenge | ||||||||||
Koa Context Validator | 51 | 12 | 4 | 2 months ago | 12 | August 24, 2021 | 1 | mit | TypeScript | |
A robust context validator for koajs. Use Joi behind the scenes. | ||||||||||
Miniplaces | 49 | a year ago | other | Python | ||||||
MiniPlaces Challenge: an Educational Tool for Deep Learning in Computer Vision | ||||||||||
Unity Asset Validator | 21 | 3 years ago | mit | C# | ||||||
The Asset Validator is an editor tool for validating assets in the project and in scenes. | ||||||||||
Scene Validation | 20 | 5 years ago | 2 | mit | C# | |||||
A scene validator UI for unity | ||||||||||
Rio10 | 17 | a year ago | Python | |||||||
Egg Validate Plus Next | 9 | 2 years ago | 3 | January 02, 2021 | mit | JavaScript | ||||
this is egg validate plus next | ||||||||||
Skal | 9 | a year ago | 2 | Python | ||||||
SKAL for remote sensing scene image classification | ||||||||||
Sc Tutorial Manager | 3 | 2 years ago | mit | C# | ||||||
A tutorial system for creating tutorials in game without or only with minimal coding. | ||||||||||
Pdfvalidate | 3 | 3 years ago | mit | PHP | ||||||
A very simple PDF Validator |
A robust context validator for koajs. Use
Joi
behind the scenes.
$ npm install koa-context-validator joi
query
Validationimport Koa from 'koa';
import validator, { Joi } from 'koa-context-validator';
const app = new Koa();
app.use(
validator({
query: Joi.object().keys({
username: Joi.string().required(),
}),
}),
);
body
Validationimport Koa from 'koa';
import bodyParser from 'koa-bodyparser';
import validator, { Joi } from 'koa-context-validator';
const app = new Koa();
app.use(bodyParser());
app.use(
validator({
body: Joi.object().keys({
username: Joi.string().required(),
age: Joi.number().required(),
}),
}),
);
headers
Validationimport Koa from 'koa';
import validator, { Joi } from 'koa-context-validator';
const app = new Koa();
app.use(
validator({
headers: Joi.object()
.keys({
username: Joi.string().required(),
})
.unknown(),
}),
);
koa-compose
import Koa from 'koa';
import compose from 'koa-compose';
import validator, { Joi } from 'koa-context-validator';
const app = new Koa();
app.use(
compose([
validator({
query: Joi.object().keys({
username: Joi.string().required(),
}),
}),
async (ctx) => {
ctx.body = ctx.request.query;
},
]),
);
koa-mount
import Koa from 'koa';
import mount from 'koa-mount';
import validator, { Joi } from 'koa-context-validator';
const app = new Koa();
app.use(
mount(
'/api',
validator({
query: Joi.object().keys({
username: Joi.string().required(),
}),
}),
),
);
@koa/router
import Koa from 'koa';
import Router from '@koa/router';
import validator, { Joi } from 'koa-context-validator';
const router = new Router();
router.get(
'/api/:username',
validator({
params: Joi.object().keys({
username: Joi.string().required(),
}),
}),
async (ctx) => {
ctx.body = ctx.params;
},
);
const app = new Koa();
app.use(router.middleware());
options
import Koa from 'koa';
import validator, { Joi } from 'koa-context-validator';
app.use(
validator(
{
query: Joi.object().keys({
username: Joi.string().required(),
}),
},
{
abortEarly: true,
allowUnknown: false,
cache: true,
stripUnknown: true,
debug: false,
},
),
);
import Koa from 'koa';
import validator, { Joi } from 'koa-context-validator';
const lookup = async (username) => {
const user = await db.get('user', username);
if (!user) {
throw new Error('Invalid username');
}
};
app.use(
validator({
body: Joi.object().keys({
username: Joi.string().external(lookup),
}),
}),
);
Joi.ref
import Koa from 'koa';
import validator, { Joi } from 'koa-context-validator';
app.use(
validator({
body: Joi.object().keys({
username: Joi.string().default(Joi.ref('$defaultUsername')),
age: Joi.number().default(Joi.ref('$defaultAge')),
}),
}),
);
Use convert.back
from koa-convert
.
import koa from 'koa'; // koa 1.x
import convert from 'koa-convert';
import validator, { Joi } from 'koa-context-validator';
const app = koa();
app.use(
convert.back(
validator({
query: Joi.object().keys({
username: Joi.string().required(),
}),
}),
),
);
Required
Type: object
A object which has optional query
, body
, headers
and params
schema to validate.
Just be passed to Joi's validate function as options:
https://joi.dev/api/?v=17.4.2#anyvalidatevalue-options
The Joi
object from the joi package.
As of version 1.0.0 we've added initial support for TypeScript.
MIT © C.T. Lin