@odata-filter/fastify
v1.0.1
Published
Fastify plugin for parsing and validating OData filter expressions for comprehensive OData support in Fastify applications.
Downloads
243
Maintainers
Readme
OData Filter Fastify Plugin
Installation
See INSTALL.md for full instructions.
Usage
Package Installation
npm i @odata-filter/core @odata-filter/validation @odata-filter/fastify --saveBasic Example
import Fastify from 'fastify';
import { fastifyPlugin } from '@odata-filter/fastify';
const fastify = Fastify();
fastify.addSchema({
$id: 'qs',
type: 'object',
properties: {
country: {
type: 'string',
},
},
});
fastify.register(async (instance) => {
fastifyPlugin(instance, {
schemaId: 'qs',
});
// HTTP GET /?filter=country+eq+%27US%27
instance.get('/', async ({ query: { filter, filterParsed } }: FastifyRequest) => {
console.log("Raw: ", filter);
console.log("Parsed: ", filterParsed);
});
});
// Raw: "country eq 'US'"
/* Parsed: {
type: 'comparison_operator',
value: 'eq',
left: { type: 'field', value: 'country' },
right: { type: 'string_value', value: 'US' }
}*/Format Options
fastify.register(async (instance) => {
fastifyPlugin(instance, {
schemaId: 'qs',
format: 'mongo-json',
});
// HTTP GET /?filter=country+eq+%27US%27
instance.get('/', async ({ query: { filter, filterParsed } }: FastifyRequest) => {
console.log("Raw: ", filter);
console.log("Parsed: ", filterParsed);
});
});
// Raw: "country eq 'US'"
/* Parsed: { country: 'US' } */Contributing
See CONTRIBUTING.md for full instructions.
License
See LICENSE for licensing information.
