{"id":19425520,"url":"https://github.com/doneee/validate-request-parameters","last_synced_at":"2026-04-13T06:03:59.583Z","repository":{"id":57109193,"uuid":"460628355","full_name":"doneee/validate-request-parameters","owner":"doneee","description":"The purpose of this module is to enable configurable query parameter validation from HTTP request events, such as API Gateway Events or Express Routes.","archived":false,"fork":false,"pushed_at":"2022-02-25T20:40:45.000Z","size":36,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-18T19:52:51.440Z","etag":null,"topics":["api-gateway","express-js","lambda","node","query-string-parameters","query-validation","type-coercion"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/doneee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-02-17T22:25:36.000Z","updated_at":"2022-02-18T00:41:07.000Z","dependencies_parsed_at":"2022-08-20T17:41:00.667Z","dependency_job_id":null,"html_url":"https://github.com/doneee/validate-request-parameters","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/doneee/validate-request-parameters","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doneee%2Fvalidate-request-parameters","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doneee%2Fvalidate-request-parameters/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doneee%2Fvalidate-request-parameters/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doneee%2Fvalidate-request-parameters/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/doneee","download_url":"https://codeload.github.com/doneee/validate-request-parameters/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doneee%2Fvalidate-request-parameters/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261565370,"owners_count":23177753,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-gateway","express-js","lambda","node","query-string-parameters","query-validation","type-coercion"],"created_at":"2024-11-10T14:03:49.955Z","updated_at":"2026-04-13T06:03:59.544Z","avatar_url":"https://github.com/doneee.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# validate-request-parameters\nThe purpose of this module is to enable configurable query parameter validation from HTTP request\nevents, such as API Gateway Events or Express Routes.\n\n## Key Features\n* Type Coercion\n* Type Enforcement\n* Default Values\n* Defined Value Options\n* Regular Expression Matching\n* Apply Transforms to Values\n* Numeric Value Ranges\n* String Length Ranges\n\n## Working\n* AWS APIGatewayEvent Handling (Lambda)\n* Query String Parameter Validation\n\n# Not Working, yet\n* Multi Value Query String Parameters\n* Request Body JSON Validation\n* Express.js Support\n\n## Lambda API Gateway Example\n```typescript\n// https://.../query?searchTerm=code\u0026limit=10\u0026offset=10\u0026order=asc\u0026orderBy=name\n\nimport {\n  validateAPIGatewayEvent,\n  QueryStringValueTypes,\n} from '@doneee/validate-request-parameters';\n\nimport { toUpperCase, toLowerCase } from '@doneee/composable-transform-functions';\n\nconst config = {\n\tqueryStringParameters: {\n\t\toffset: {\n\t\t\ttype: QueryStringValueTypes.Integer,\n\t\t\tmin: 0,\n\t\t\tdefaultValue: 0,\n\t\t},\n\t\tlimit: {\n\t\t\ttype: QueryStringValueTypes.Integer,\n\t\t\tmin: 1,\n\t\t\tmax: 100,\n\t\t\tdefaultValue: 10,\n\t\t},\n\t\tsearchTerm: {\n\t\t\ttype: QueryStringValueTypes.String,\n\t\t\tregex: /[a-z0-9]+/gi,\n\t\t\tmin: 4,\n\t\t\tmax: 75,\n\t\t},\n\t\torder: {\n\t\t\ttype: QueryStringValueTypes.String,\n\t\t\toptions: ['ASC', 'DESC'],\n\t\t\tdefaultValue: 'ASC',\n\t\t\ttransforms: [ toUpperCase ],\n\t\t},\n\t\torderBy: {\n\t\t\ttype: QueryStringValueTypes.String,\n\t\t\ttransforms: [ toLowerCase ],\n\t\t\toptions: [\n\t\t\t\t'name',\n\t\t\t\t'date',\n\t\t\t],\n\t\t\tdefaultValue: 'name',\n\t\t},\n\t},\n};\n\nexports.handler = (event) =\u003e {\n  const [ params, paramErrors ] = validateAPIGatewayEvent(event, config);\n  \n  // params = {\n  //  queryStringParameters: {\n  //    offset: 10,\n  //    limit: 10,\n  //    searchTerm: 'code',\n  //    order: 'ASC',\n  //    orderBy: 'name',\n  //   },\n  // };\n\n  // Use params without needing to do additional type checks or validation\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoneee%2Fvalidate-request-parameters","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoneee%2Fvalidate-request-parameters","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoneee%2Fvalidate-request-parameters/lists"}