Nectar of the Programming Masses
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    veilpublic

    Veil: Convert email or HTTP messages to Javascript objects

    Veil turns this

    Subject: Hello, Veil!
    Date: Tue Jan 17 2012 09:06:59 GMT+0700 (ICT)
    From: jhs@iriscouch.com
    
    Hello, Veil. Welcome to the party.
    

    into this.

    { Date: Tue, 17 Jan 2012 02:06:59 GMT,
      From: 'jhs@iriscouch.com',
      Subject: 'Hello, Veil!',
      body: 'Hello, Veil. Welcome to the party.' }

    You can use it, for example, to edit blog posts in a useful Markdown style but load them as Javascript objects.

    Veil is available as an NPM module.

    $ npm install veil
    

    Follow (upper-case F) comes from an internal Iris Couch project used in production for over a year. It works in the browser (beta) and is available as an NPM module.

    $ npm install follow
    

    Example

    var veil = require('veil')
     
    var message = 'Date: Tue, 17 Jan 2012 02:11:48 GMT\n'
                + 'Subject: This is the example\n'
                + '\n'
                + 'This is the body'
     
    message = veil.parse(message)
    console.dir(message)

    Output:

    { Date: Tue, 17 Jan 2012 02:11:48 GMT,
      Subject: 'This is the example'
      body: 'This is the body' }
    

    Options

    Veil is defaultable. Customize its major behaviors by setting its default options:

    // Stock behavior
    var veil = require('veil')
     
    // Modified behavior, with inheritance.
    var better_veil = veil.defaults({ keys: 'underscore' })
      , best_veil = better_veil.defaults({ dates: true
                                         , numbers: true
                                         })

    API Overview

    Veil has one function:

    parse(message, [options]) | Return an object representing the message, with optional extra options.

    Options

    The options to parse() are the same as those for .defaults().

    • keys | If this is "underscore", convert keys like "Content-Type" to "content_type"
    • dates | Enable this to convert timestamp values into Date objects
    • numbers | Enable this to convert numeric values to Numbers

    Tests

    Veil uses node-tap. If you clone this Git repository, tap is included.

    $ ./node_modules/.bin/tap test
    XXX
    
    ok
    

    License

    Apache 2.0

    Keywords

    none

    install

    npm i veil

    Downloadsweekly downloads

    1

    version

    0.1.0

    license

    none

    repository

    githubgithub

    last publish

    collaborators

    • avatar