feat: improved zod handling
Some checks failed
Build and release / Build (push) Failing after 2m41s
Build and release / update-release-draft (push) Has been skipped
Build and release / Release (push) Has been skipped

This commit is contained in:
Morten Olsen
2025-12-11 08:36:40 +01:00
parent 3c475ab5d6
commit 68abe3ce79
10 changed files with 66 additions and 39 deletions

View File

@@ -1,3 +1,4 @@
export * from './query-parser.schemas.js';
export { QueryParser } from './query-parser.js';
export { QueryParser, queryParser } from './query-parser.js';
export * from './utils.filter.js';
export * from './query-parser.codec.js';

View File

@@ -0,0 +1,20 @@
import { z } from 'zod';
import { queryFilterSchema } from './query-parser.schemas.js';
import { queryParser } from './query-parser.js';
const queryStringSchema: typeof queryFilterSchema = z
.codec(z.string(), queryFilterSchema, {
encode: (filter) => {
return queryParser.stringify(filter);
},
decode: (input) => {
return queryParser.parse(input);
},
// eslint-disable-next-line
}).meta({ id: 'QueryString', examples: ["metadata.foo = 'bar'"] }) as any;
// eslint-disable-next-line
const querySchema: typeof queryFilterSchema = z.union([queryStringSchema, queryFilterSchema]) as any
export { querySchema };

View File

@@ -19,4 +19,6 @@ class QueryParser {
};
}
export { QueryParser };
const queryParser = new QueryParser();
export { QueryParser, queryParser };