UNPKG

@whook/whook

Version:

Build strong and efficient REST web services.

33 lines 1.42 kB
import { location, autoService } from 'knifecycle'; import { qsStrict as strictQs, } from 'strict-qs'; import { ensureResolvedObject, } from 'ya-open-api-types'; export const DEFAULT_QUERY_PARSER_OPTIONS = {}; async function initQueryParserBuilder({ QUERY_PARSER_OPTIONS = DEFAULT_QUERY_PARSER_OPTIONS, API, log, }) { log('warning', `⌨️ - Initializing the basic query parser.`); return async (parameters) => { // TODO: Update strict qs to provide strings only const retroCompatibleQueryParameters = []; for (const parameter of parameters || []) { if (parameter.in !== 'query') { continue; } const schema = { ...(await ensureResolvedObject(API, 'schema' in parameter && typeof parameter.schema === 'object' ? parameter.schema : {})), }; if ('items' in schema) { schema.items = await ensureResolvedObject(API, schema.items); } retroCompatibleQueryParameters.push({ ...parameter, ...schema, }); } return (search) => { return strictQs(QUERY_PARSER_OPTIONS, retroCompatibleQueryParameters, search); }; }; } export default location(autoService(initQueryParserBuilder), import.meta.url); //# sourceMappingURL=queryParserBuilder.js.map