http-tag

2.0.0 • Public • Published

HTTPTag

Description

The HTTPTag is a Template literal tag to easily write HTTP Message texts.

const HTTPTag = require('http-tag')

const xHeader = 'Custom-Header'

socket.write(
    HTTPTag`
    GET / HTTP/1.1
    X-Header: ${xHeader}
    
    `
)

Installation

Simple as: npm install --save http-tag

Usage

Well, as you see above, its very simple to use:

HTTPTag`
    GET / HTTP/1.1
    X-Header: ${xHeader}
    
`

You dont need to manually handle CR and LF characters before end of heade (start of body) section of a message.

Before End Of A Message Head, all global CRLF, CR and LF characters, i.e. that are not provided as expressions to tagged template, will be replaced with a CRLF each, including their trailing spaces (considered only sequences of ' ' characters).

Leading Whitespace Characters - \n, \r \t ' ' ... of a hall string will be trimed:

HTTPTag`
    \r\n    \t // this will be trimed
    HTTP/1.1 200 OK
 
`

Note that We do not handle exactly the format of HTTP Messages, instead we support its light-writing, so the comments above considered as valid input.

As Globaly all CR's and LF's before end of a message head will be replaced by CRLF's, you need a way to also pass this characters Without Any Modification to the HTTP message head section, and maybe also some trailing spaces, for this scenario you need to pass them in expressions to tagged template:

HTTPTag`
    GET / HTTP/1.1
    ${'  ' + 'This CR will not be merged with followed by \n character: \r'}
 
`

This Tagged Templates MUST conform to Rules Of Escape Sequences defined for Template Literals, otherwise SyntaxError will be thrown.

And Finally if after processing of a string the end of a head section is not encountered, we will add final CRLF(s) for you.

Package Sidebar

Install

npm i http-tag

Weekly Downloads

0

Version

2.0.0

License

ISC

Unpacked Size

6.17 kB

Total Files

3

Last publish

Collaborators

  • ando_ghevian