rate-limit-policy
v1.0.1
Published
Simple RateLimit-Policy Header Parser.
Readme
RateLimit-Policy
Simple IETF RateLimit-Policy (ver. 11) parser.
This module will parse a given RateLimit-Policy header value into it's different components. A formatter is also provided to put them all back together again.
Installation
This is a Node.js module available through the npm registry. To install just run:
npm install rate-limit-policyAPI
const rateLimitPolicy = require("rate-limit-policy");rateLimitPolicy.parse(string)
const objArray = rateLimitPolicy.parse('"default";q=100;qu="content-bytes";w=10;pk=:sdfjLJUOUH==:');Parses a valid RateLimit-Policy Header string. An array of objects, each object representing an individual policy. Each policy MAY have the following properties:
identifier: (REQUIRED) Identifier of the Quota Policy Item. Example:'default'quota: (REQUIRED) Quota allocated by this policy measured in quota units. Example:100quotaUnits: (OPTIONAL) Quota units associated to theqparameter. Example:'content-bytes'window: (OPTIONAL) Time Window for the policy. Example:10partitionKey: (OPTIONAL) Partition Key associated to the corresponding request. Example:':sdfjLJUOUH==:'
The parse function will also support any properly vendor prefixed parameters, if provided.
If the given string is invalid, then a TypeError is thrown.
rateLimitPolicy.format(object|Array)
const str = rateLimitPolicy.format({
identifier: "default",
quota: 100,
quotaUnits: "content-bytes",
window: 10,
partitionKey: ":sdfjLJUOUH==:"
});Format a Policy object, or array of Policy objects, into a valid RateLimit-Policy header.
Properties for this object are documented in rateLimitPolicy.parse(string).
rateLimitPolicy.test(string)
const valid = rateLimitPolicy.test('"default";q=100;w=10');Validate a RateLimit-Policy header. This will return true if the string is valid, or false otherwise.
