@popovmp/request-parser
v1.2.0
Published
Request parsing helper
Downloads
9
Readme
Request Parser
Helper functions to parse and validate request data.
Parse URL path parameters
function parsePathParams(path, template)
It matches the URL path with a template and returns the path parameters.
Supported types:
:
- alphanumeric, "-" and "_"w:
- alphanumeric and "_" (word characters)d:
- digitsb:
- booleanb64:
- base64*:
- any except "/". It decodes the parameter to a string.
import {parsePathParams} from "@popovmp/request-parser";
const path = "/users/trial/true/42";
const template = "/users/:kind/b:isTrial/d:count";
const pathParams = parsePathParams(path, template);
console.log(pathParams); // { kind: "trial", isTrial: true, count: 42 }
Parse request body
function parseRequestBody(body, contentType)
It parses the request body based on the content type.
import {parseRequestBody} from "@popovmp/request-parser";
const dto = {hello: "Hello, World!", answer: 42};
const text = JSON.stringify(dto);
const bytes = new TextEncoder().encode(text);
const body = Buffer.from(bytes);
const result = parseRequestBody(body, "application/json");
console.log(result); // { hello: "Hello, World!", answer: 42 }
Parse Form Data
function parseFormData(formText)
import {parseFormData} from "@popovmp/request-parser";
const formText = "hello=Hello%2C+World%21&answer=42";
const result = parseFormData(formText);
console.log(result); // { hello: "Hello, World!", answer: 42 }
Parse Query String
function parseQueryParams(queryText)
import {parseQueryParams} from "@popovmp/request-parser";
const queryText = "hello=Hello%2C+World%21&answer=42";
const result = parseQueryParams(queryText);
console.log(result); // { hello: "Hello, World!", answer: 42 }
Parse JSON value
function parseValue(valueText)
import {parseValue} from "@popovmp/request-parser";
const valueText = "42";
const result = parseValue(valueText);
console.log(result); // 42
Split Authorization Header
function splitAuthToken(authorization, split, partsCount)
import {splitAuthToken} from "@popovmp/request-parser";
const authorization = "Bearer foo;bar;42";
const [header, payload, signature] = splitAuthToken(authorization, ";", 3);
console.log(header); // "foo"
console.log(payload); // "bar"
console.log(signature); // "42"