From 66992de5895d3d2034c05dc29699c5cd4516bc1a Mon Sep 17 00:00:00 2001 From: davidwells Date: Mon, 11 Jun 2018 16:05:39 -0700 Subject: [PATCH] add bootstrap command --- init-faunadb.js | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 init-faunadb.js diff --git a/init-faunadb.js b/init-faunadb.js new file mode 100644 index 0000000..b8a71d0 --- /dev/null +++ b/init-faunadb.js @@ -0,0 +1,51 @@ +/* bootstrap database in your FaunaDB account */ +const readline = require('readline'); +const faunadb = require('faunadb'); +const q = faunadb.query; + +ask('Enter your faunaDB server key', function(err, answer) { + const key = answer || process.env.FAUNADB_SECRET + if (!key) { + console.log('Please set supply a faunaDB server key') + process.exit() + } + + const client = new faunadb.Client({ + secret: answer + }); + + createFaunaDB(key).then(() => { + console.log('Database created') + }) +}); + + +function createFaunaDB(key) { + const client = new faunadb.Client({ + secret: key + }); + + /* Based on your requirements, change the schema here */ + return client.query(q.Create(q.Ref("classes"), { name: "todos" })) + .then(()=>{ + return client.query( + q.Create(q.Ref("indexes"), { + name: "all_todos", + source: q.Ref("classes/todos") + })) + }) + .then(console.log.bind(console)) + .catch(console.error.bind(console)) +} + +// Readline util +function ask(question, callback) { + const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout + }); + rl.question(question + '\n', function(answer) { + rl.close(); + callback(null, answer); + }); +}