You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

fastify-xml-body-parser

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fastify-xml-body-parser

Fastify plugin to parse XML payload into JS object

1.0.4
Source
npmnpm
Version published
Weekly downloads
8.7K
5.6%
Maintainers
1
Weekly downloads
 
Created
Source

fastify-xml-body-parser

Fastify plugin / module to parse XML payload / body into JS object

Code Climate fastify-xml-body-parser donate button

Known Vulnerabilities NPM quality Travis ci Build Status Coverage Status bitHound Dev Dependencies bitHound Overall Score

Usage

  • Include in package.json
$npm install fastify-xml-body-parser
#or
$yarn add fastify-xml-body-parser
  • Then import in your code and register with fastify

Sample POST body / payload

<sample>data</sample>

const fastify = require('fastify')()

fastify.register(require('fastify-xml-body-parser'))

fastify.post('/', (req, reply) => {
  console.log(req.body.sample)//data
  reply.send(req.body)
})

fastify.listen(8000, (err) => {
  if (err) throw err
})

The sent reply would be the object:

{
  sample: 'data'
}

Options

This plugin use fast-xml-parser to parse the XML payload. So it accepts all the options supported by fast-xml-parser.


var options = {
    attributeNamePrefix : "@_",
    attrNodeName: "attr", //default is 'false'
    textNodeName : "#text",
    ignoreAttributes : true,
    ignoreNameSpace : false,
    allowBooleanAttributes : false,
    parseNodeValue : true,
    parseAttributeValue : false,
    trimValues: true,
    decodeHTMLchar: false,
    cdataTagName: "__cdata", //default is 'false'
    cdataPositionChar: "\\c",
};

const fastify = require('fastify')()

fastify.register(require('fastify-xml-body-parser'), options)

Additionaly, it supports following options

  • validate: If it is set to true, this plugin validate the payload for valid XML syntax before parsing.
  • contentType: It accepts a string or an array of content types. By default it is set to ["text/xml", "application/xml", "application/rss+xml"].

Note: I've not included body size limit to this plugin because of following reasons

  • I believe it's good to use API gateway to handle non-functional requirements, like security.
  • There are already some plugins which verifies for body length. It'll be a performance degrade if all the plugins are doing the same thing.

License

MIT License

Worth to mention

Don't forget to check my other projects

  • BigBit standard) : A standard to reprent any number in the universe in comparitively less space and without precision loss. A standard to save space to represent any text string in comparision of UTF encoding.
  • imglab : Speedup and simplify image labeling / annotation. Supports multiple formats, one click annotation, easy interface and much more. There are more than 20k images are annotated every month.
  • अनुमार्गक (anumargak) : The fastest and simple router for node js web frameworks with many unique features.
  • stubmatic : A stub server to mock behaviour of HTTP(s) / REST / SOAP services. You can also mock binary formats.
  • मुनीम (Muneem) : A webframework made for all team members.
  • शब्दावली (shabdawali) : Amazing human like typing effects beyond your imagination.
  • fast-lorem-ipsum : Generate lorem ipsum words, sentences, paragraph very quickly. Better than any generater. Works with NPM, browser, and CLI.

Keywords

fastify

FAQs

Package last updated on 04 Jan 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.