Veil turns this
Subject: Hello, Veil!
Date: Tue Jan 17 2012 09:06:59 GMT+0700 (ICT)
From: [email protected]
Hello, Veil. Welcome to the party.
into this.
{ Date: Tue, 17 Jan 2012 02:06:59 GMT,
From: '[email protected]',
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
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' }
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
})
Veil has one function:
parse(message, [options])
| Return an object representing the message, with optional extra 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 intoDate
objectsnumbers
| Enable this to convert numeric values toNumber
s
Veil uses node-tap. If you clone this Git repository, tap is included.
$ ./node_modules/.bin/tap test
XXX
ok
Apache 2.0