{"_id":"toSrc","_rev":"438737","name":"toSrc","description":"Turns every JavaScript object or primitive into valid source code.","dist-tags":{"latest":"0.1.4"},"maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"}],"time":{"modified":"2021-08-05T06:28:37.000Z","created":"2012-02-14T00:49:15.660Z","0.1.4":"2014-06-30T08:52:08.192Z","0.1.3":"2012-07-05T00:12:11.473Z","0.1.2":"2012-06-04T01:11:02.936Z","0.1.1":"2012-02-14T01:20:43.906Z","0.1.0":"2012-02-14T00:49:15.660Z"},"users":{},"author":{"name":"Johannes Ewald","email":"mail@johannesewald.de","url":"http://johannesewald.de"},"repository":{"type":"git","url":"git://github.com/jhnns/toSrc.git"},"versions":{"0.1.4":{"name":"toSrc","description":"Turns every JavaScript object or primitive into valid source code.","version":"0.1.4","homepage":"http://jhnns.github.com/toSrc","repository":{"type":"git","url":"git://github.com/jhnns/toSrc.git"},"author":{"name":"Johannes Ewald","email":"mail@johannesewald.de","url":"http://johannesewald.de"},"main":"./lib/toSrc.js","keywords":["toSource","toSrc","source","object","serialization","stringify","JSON","eval","vm","obj2src"],"bugs":{"url":"http://github.com/jhnns/toSrc/issues","email":"mail@johannesewald.de"},"dependencies":{},"devDependencies":{},"scripts":{"test":"node test/test.js"},"_id":"toSrc@0.1.4","_shasum":"a57b60b9e002e1c580d3250fea1c95f22207a9a6","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"jhnns","email":"mail@johannesewald.de"},"maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"}],"dist":{"shasum":"a57b60b9e002e1c580d3250fea1c95f22207a9a6","size":7051,"noattachment":false,"key":"/toSrc/-/toSrc-0.1.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/toSrc/download/toSrc-0.1.4.tgz"},"directories":{},"publish_time":1404118328192,"_cnpm_publish_time":1404118328192,"_hasShrinkwrap":false},"0.1.3":{"name":"toSrc","description":"Turns every JavaScript object or primitive into valid source code.","version":"0.1.3","homepage":"http://jhnns.github.com/toSrc","repository":{"type":"git","url":"git://github.com/jhnns/toSrc.git"},"author":{"name":"Johannes Ewald","email":"mail@johannesewald.de","url":"http://johannesewald.de"},"main":"./lib/toSrc.js","keywords":["toSource","toSrc","source","object","serialization","stringify","JSON","eval","vm","obj2src"],"bugs":{"url":"http://github.com/jhnns/toSrc/issues","email":"mail@johannesewald.de"},"dependencies":{},"devDependencies":{},"engines":{"node":"< 0.9.x"},"scripts":{"test":"node test/test.js"},"_id":"toSrc@0.1.3","dist":{"shasum":"e8e8cdf3d3628980ff2386ad1bcdf56f79ab4d1a","size":5893,"noattachment":false,"key":"/toSrc/-/toSrc-0.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/toSrc/download/toSrc-0.1.3.tgz"},"maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"}],"directories":{},"publish_time":1341447131473,"_cnpm_publish_time":1341447131473,"_hasShrinkwrap":false},"0.1.2":{"name":"toSrc","description":"Turns every JavaScript object or primitive into valid source code.","version":"0.1.2","homepage":"http://jhnns.github.com/toSrc","repository":{"type":"git","url":"git://github.com/jhnns/toSrc.git"},"author":{"name":"Johannes Ewald","email":"mail@johannesewald.de","url":"http://johannesewald.de"},"main":"./lib/toSrc.js","keywords":["toSource","toSrc","source","object","serialization","stringify","JSON","eval","vm","obj2src"],"bugs":{"email":"mail@johannesewald.de","url":"http://github.com/jhnns/toSrc/issues"},"dependencies":{},"devDependencies":{},"engines":{"node":"0.6.x"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"jhnns","email":"mail@johannesewald.de"},"_id":"toSrc@0.1.2","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.12","_nodeVersion":"v0.6.14","_defaultsLoaded":true,"dist":{"shasum":"37973d26a3d87b3e68aabfdc8f5d819f0f386489","size":5907,"noattachment":false,"key":"/toSrc/-/toSrc-0.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/toSrc/download/toSrc-0.1.2.tgz"},"maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"}],"directories":{},"publish_time":1338772262936,"_cnpm_publish_time":1338772262936,"_hasShrinkwrap":false},"0.1.1":{"name":"toSrc","description":"Turns every JavaScript object or primitive into valid source code.","version":"0.1.1","homepage":"https://github.com/pandaa/toSrc","repository":{"type":"git","url":"git://github.com/pandaa/toSrc.git"},"author":{"name":"Johannes Ewald","email":"mail@johannesewald.de"},"main":"./lib/toSrc.js","keywords":["toSource","toSrc","source","object","serialization","stringify","JSON","eval","vm","obj2src"],"dependencies":{},"devDependencies":{},"engines":{"node":"0.6.x"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"jhnns","email":"mail@johannesewald.de"},"_id":"toSrc@0.1.1","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.0-3","_nodeVersion":"v0.6.9","_defaultsLoaded":true,"dist":{"shasum":"9d1d539120dcec2d9ba10ca519e1064a1ce5ee80","size":5003,"noattachment":false,"key":"/toSrc/-/toSrc-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/toSrc/download/toSrc-0.1.1.tgz"},"maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"}],"directories":{},"publish_time":1329182443906,"_cnpm_publish_time":1329182443906,"_hasShrinkwrap":false},"0.1.0":{"name":"toSrc","description":"Turns every JavaScript object or primitive into valid source code.","version":"0.1.0","homepage":"http://github.com/jhnns/toSrc","repository":{"type":"git","url":"git://github.com/jhnns/toSrc.git"},"author":{"name":"Johannes Ewald","email":"mail@johannesewald.de"},"main":"./lib/toSrc.js","keywords":["toSource","toSrc","source","object","serialization","stringify","JSON","eval","vm","obj2src"],"dependencies":{},"devDependencies":{},"engines":{"node":"0.6.x"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"jhnns","email":"mail@johannesewald.de"},"_id":"toSrc@0.1.0","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.0-3","_nodeVersion":"v0.6.9","_defaultsLoaded":true,"dist":{"shasum":"248164b251010a128c204cc5aecaf8f60f4f2392","size":4916,"noattachment":false,"key":"/toSrc/-/toSrc-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/toSrc/download/toSrc-0.1.0.tgz"},"maintainers":[{"name":"jhnns","email":"mail@johannesewald.de"}],"directories":{},"publish_time":1329180555660,"_cnpm_publish_time":1329180555660,"_hasShrinkwrap":false}},"readme":"**toSrc** [![Build Status](https://secure.travis-ci.org/jhnns/toSrc.png?branch=master)](http://travis-ci.org/jhnns/toSrc)\r\n========\r\n\r\n**Turns every JavaScript object or primitive into valid source\r\ncode that can be evaled again.**\r\n\r\nYou can use it to serialize classes, modules or other programming objects\r\nand reuse them in an other environment such as a browser. JSON.stringify doesnt work with programming objects (that contain functions, dates, etc.) because they're no legal JSONs.\r\n\r\n<br />\r\n\r\nInstallation\r\n------------\r\n`npm install toSrc`\r\n\r\n<br />\r\n\r\nExamples\r\n-----\r\n\r\n```javascript\r\n\r\n    var toSrc = require(\"toSrc\");\r\n    \r\n    // Primitives\r\n    ///////////////////////////////////////\r\n    toSrc(1); // = '1'\r\n    toSrc(true); // = 'true'\r\n    toSrc(undefined); // = 'undefined'\r\n    tOSrc(null); // = null\r\n    toSrc(\"1\"); // = '\"1\"'\r\n    toSrc('1'); // = '\"1\"' toSrc always uses double-quotes    \r\n\r\n    // Constants\r\n    ///////////////////////////////////////\r\n    toSrc(Math.PI); // = 'Math.PI'\r\n    toSrc(NaN); // = 'NaN'\r\n\r\n    // RegExp\r\n    ///////////////////////////////////////\r\n    toSrc(/myRegEx/gi); // = '/myRegEx/gi'\r\n    toSrc(new RegExp(\"myRegEx\")); // = '/myRegEx/'\r\n\r\n    // Date\r\n    ///////////////////////////////////////\r\n    toSrc(new Date()); // = 'new Date(<the time of creation in ms>)'\r\n\r\n    // Functions\r\n    ///////////////////////////////////////\r\n    function testFunc() {\r\n        var test = \"hello\";\r\n    }\r\n    toSrc(testFunc); // = 'function testFunc() {\\n    var test = \"hello\";\\n}'\r\n    toSrc(String); // = 'String', native functions don't expose the source code\r\n\r\n    // Arrays\r\n    ///////////////////////////////////////\r\n    toSrc([1, 2, \"3\"]); // = '[1, 2, \"3\"]'\r\n    toSrc([1, 2, [\"a\", \"b\", \"c\"]]); // = '[1, 2, undefined]' because the depth\r\n                                    // is 1 by default\r\n    toSrc([1, 2, [\"a\", \"b\", \"c\"]], 2); // = '[1, 2, [\"a\", \"b\", \"c\"]]'\r\n\r\n    // Objects\r\n    ///////////////////////////////////////\r\n    toSrc({\r\n        regEx: /regex/gi,\r\n        anotherObj: {\r\n            test: \"test\"\r\n        }\r\n    });\r\n    // = '{\"regEx\": /regex/gi, \"anotherObj\": undefined}'\r\n    // anotherObj is undefined because the depth is 1 by default.\r\n    toSrc({\r\n        \"regEx\": /regex/gi,\r\n        \"anotherObj\": {\r\n            \"test\": \"test\"\r\n        }\r\n    }, 2);\r\n    // = '{\"regEx\": /regex/gi, \"anotherObj\": {\"test\": \"test\"}}'\r\n\r\n```\r\n\r\nFor more examples check out `test/test.js`\r\n\r\n<br />\r\n\r\n\r\n\r\nAPI\r\n-----\r\n\r\n###toSrc(obj: *, depth: Number): String\r\n\r\n- *obj*: <br/>\r\nThe object to stringify. Can also be a primitive like `1` or `true`.\r\n\r\n- *{Number=1} depth*:<br />\r\nThe depth to go. All nested structures like objects or arrays deeper than this will be undefined. Defaults to 1, meaning that every object or array within `obj` will be undefined by default.\r\n\r\n<br />\r\n\r\nUsage\r\n-----\r\n\r\n### In node.js\r\n\r\n```javascript\r\nvar toSrc = require(\"toSrc\");\r\n\r\ntoSrc(obj, depth);\r\n```\r\n\r\n### In the browser\r\n\r\nJust call `toSrc(obj, depth);`\r\n\r\n<br />\r\n\r\nNotes\r\n-----\r\n* Circular references will be undefined. No error is thrown, but a warning is logged.\r\n* All math constants are restored to their source representation, e.g.: `toSrc(Math.PI); // = 'Math.PI' instead of 3.14...`\r\n* All dates are restored to their original time of creation, e.g.: `toSrc(new Date()) // = 'new Date(<time of creation in ms>)'`\r\n* Dynamic regular expressions created via `new RegExp()` will **not** be dynamic anymore. `toSrc(new RegExp(someString))` will return `'/<value of someString>/'` instead of `'new RegExp(someString)'`\r\n\r\nFeel free to modify the code to meet your needs.\r\n\r\n\r\n<br />\r\n\r\n## License\r\n\r\nMIT\r\n","_attachments":{},"homepage":"http://jhnns.github.com/toSrc","bugs":{"url":"http://github.com/jhnns/toSrc/issues","email":"mail@johannesewald.de"}}