-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
28 lines (23 loc) · 704 Bytes
/
index.js
File metadata and controls
28 lines (23 loc) · 704 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
var pick = require('lodash.pick')
var decamelize = require('decamelize')
var PatchError = require('./errors').PatchError
module.exports = function () {
var args = arguments
var argumentArray = Object.keys(args).map(function (key) {
return args[key]
})
var safeObject = pick.apply(null, argumentArray)
var keys = Object.keys(safeObject)
if (!keys.length) {
throw new PatchError('expected an object with at least one key present')
}
var expressions = keys.map(function (key, index) {
return decamelize(key) + ' = ' + '$' + (index + 1)
})
return {
set: 'SET ' + expressions.join(', '),
values: keys.map(function (key) {
return safeObject[key]
})
}
}