diff --git a/saver/package.json b/saver/package.json new file mode 100644 index 0000000..0cc6e28 --- /dev/null +++ b/saver/package.json @@ -0,0 +1,9 @@ +{ + "name": "dat-gui-saver", + "version": "0.0.0", + "bin": { + "saver": "saver.js" + }, + "main": "saver.js", + "preferGlobal": "true" +} \ No newline at end of file diff --git a/saver/saver.js b/saver/saver.js new file mode 100644 index 0000000..56f2860 --- /dev/null +++ b/saver/saver.js @@ -0,0 +1,36 @@ +#!/usr/bin/env node + +var http = require('http'); +var fs = require('fs'); + +http.createServer(function (req, res) { + var filename = /\/([^/]+\.json)$/.exec(req.url); + if (!filename) { + filename = 'dat-gui.json'; + } else { + filename = filename[1]; + } + switch(req.method) { + case 'GET': + if (!fs.existsSync(filename)) { + res.writeHead(404); + res.end(); + return + } + res.writeHead(200, {'Content-Type': 'application/json', 'Access-Control-Allow-Origin': 'http://localhost'}); + res.end(fs.readFileSync(filename, 'utf8')); + break; + case 'POST': + var data = ''; + req.on('data', function(d) {data += d;}) + req.on('end', function() { + res.writeHead(200, {'Access-Control-Allow-Origin': 'http://localhost'}); + fs.writeFileSync(filename, data); + res.end(); + }) + break; + default: + res.writeHead(404); + res.end(); + } +}).listen(7999);