Motivation: JSON doesn't support serializing functions, dates, or regular expressions. I wanted a quick and simple way to push trusted data structures with code from Node down to the browser.
This should make it easier to share code and modules between the server and client.
npm install tosource
The following code:
var toSource = require'tosource'console.logtoSource4 5 6 "hello"a:2'b':3'1':4'if':5yes:trueno:falsenan:NaNinfinity:Infinity'':'null':nullconsole.log"woo! a is "+aconsole.log"and bar is "+bar/we$/gi"Wed, 09 Aug 1995 00:00:00 GMT"
456"hello""1":4a:2b:3"if":5yes:trueno:falsenan:NaNinfinity:Infinity"":"null":nullconsole.log"woo! a is "+aconsole.log"and bar is "+bar/we$/gi807926400000
See test.js for more examples.
- Array literals
- object literals
- RegExp literals
- Functions are serialized with
func.toString(), no closure properties are serialized
- Multiple references to the same object become copies
- Circular references are encoded as
toSource is open source software under the zlib license.