UNPKG

suma-db

Version:

A Brazilian database that supports JSON(JavaScript Object Notation)

39 lines (35 loc) 1.52 kB
module.exports = function ({class: Class}, ...values) { const validMethods = { push: (function(keys) { Class.ref(keys.key).push(keys.value)}).bind(Class), write: (function(keys) { Class.ref(keys.key).write(keys.value, keys.event || false)}).bind(Class), delete: (function(keys) { Class.ref(keys.key || keys).delete()}).bind(Class), add: (function(keys) { Class.ref(keys.key).add(keys.value)}).bind(Class), sub: function(keys) { Class.ref(keys.key).sub(keys.value) }, writeIf: function(keys) { if(keys.expression(Class)) Class.ref(keys.key).write(keys.value, keys.event || false) }, deleteIf:function(keys) { if(keys.expression(Class)) Class.ref(keys.key || keys).delete() }, addIf:function(keys) { if(keys.expression(Class)) Class.ref(keys.key).add(keys.value) }, subIf:function(keys) { if(keys.expression(Class)) Class.ref(keys.key).sub(keys.value) }, pushIf: function(keys) { if(keys.expression(Class)) Class.ref(keys.key).push(keys.value) } } if(values.length === 1 && Array.isArray(values[0])) values = values[0] values = values[0] let i = 0 for(const index in values) { const action = validMethods[index]; if(!action) throw new SyntaxError(`Invalid post method: post#${i}#${index}`) action(values[index]) i++ } }