New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

dynalite

Package Overview
Dependencies
Maintainers
1
Versions
121
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dynalite - npm Package Compare versions

Comparing version 0.0.10 to 0.0.11

actions/query.js

65

actions/batchGetItem.js

@@ -1,32 +0,47 @@

var getItem = require('./getItem'),
var async = require('async'),
getItem = require('./getItem'),
db = require('../db')
module.exports = function batchGetItem(data, cb) {
var remaining = 0, responses = {}, table, seenKeys, i, key, keyStr
for (table in data.RequestItems) {
responses[table] = []
seenKeys = {}
for (i = 0; i < data.RequestItems[table].Keys.length; i++) {
key = data.RequestItems[table].Keys[i]
keyStr = JSON.stringify(key)
if (seenKeys[keyStr])
return cb(db.validationError('Provided list of item keys contains duplicates'))
seenKeys[keyStr] = true
}
data.RequestItems[table].Keys.forEach(function(key) {
var options = {TableName: table, Key: key}
if (data.RequestItems[table].AttributesToGet)
options.AttributesToGet = data.RequestItems[table].AttributesToGet
getItem(options, checkDone(table))
remaining++
var requests = {}
async.series([
async.each.bind(async, Object.keys(data.RequestItems), addTableRequests),
async.parallel.bind(async, requests),
], function(err, responses) {
if (err) return cb(err)
cb(null, {Responses: responses[1], UnprocessedKeys: {}})
})
function addTableRequests(tableName, cb) {
db.getTable(tableName, function(err, table) {
if (err) return cb(err)
var req = data.RequestItems[tableName], i, key, options, gets = [], seenKeys = {}
for (i = 0; i < req.Keys.length; i++) {
key = req.Keys[i]
options = {TableName: tableName, Key: key}
if (req.AttributesToGet) options.AttributesToGet = req.AttributesToGet
gets.push(options)
key = db.validateKey(key, table)
if (key instanceof Error) return cb(key)
if (seenKeys[key])
return cb(db.validationError('Provided list of item keys contains duplicates'))
seenKeys[key] = true
}
requests[tableName] = function(cb) {
async.map(gets, getItem, function(err, resps) {
if (err) return cb(err)
cb(null, resps.map(function(res) { return res.Item }).filter(function(x) { return x }))
})
}
cb()
})
}
function checkDone(table) {
return function(err, item) {
if (err) return cb(err)
if (item.Item) responses[table].push(item.Item)
if (!--remaining) return cb(null, {Responses: responses, UnprocessedKeys: {}})
}
}
}

@@ -7,5 +7,13 @@ var async = require('async'),

module.exports = function batchWriteItem(data, cb) {
var puts = [], deletes = []
var actions = []
function validateTableKeys(tableName, cb) {
async.series([
async.each.bind(async, Object.keys(data.RequestItems), addTableActions),
async.parallel.bind(async, actions),
], function(err) {
if (err) return cb(err)
cb(null, {UnprocessedItems: {}})
})
function addTableActions(tableName, cb) {
db.getTable(tableName, function(err, table) {

@@ -15,23 +23,22 @@ if (err) return cb(err)

var reqs = data.RequestItems[tableName], i, req, key, seenKeys = {}
for (i = 0; i < reqs.length; i++) {
req = reqs[i]
if (req.PutRequest) {
actions.push(putItem.bind(null, {TableName: tableName, Item: req.PutRequest.Item}))
key = db.validateItem(req.PutRequest.Item, table)
if (key instanceof Error) return cb(key)
if (seenKeys[key])
return cb(db.validationError('Provided list of item keys contains duplicates'))
seenKeys[key] = true
puts.push({TableName: tableName, Item: req.PutRequest.Item})
} else if (req.DeleteRequest) {
key = db.validateKey(req.DeleteRequest.Key, table)
if (key instanceof Error) return cb(key)
if (seenKeys[key])
return cb(db.validationError('Provided list of item keys contains duplicates'))
seenKeys[key] = true
actions.push(deleteItem.bind(null, {TableName: tableName, Key: req.DeleteRequest.Key}))
deletes.push({TableName: tableName, Key: req.DeleteRequest.Key})
key = db.validateKey(req.DeleteRequest.Key, table)
}
if (key instanceof Error) return cb(key)
if (seenKeys[key])
return cb(db.validationError('Provided list of item keys contains duplicates'))
seenKeys[key] = true
}

@@ -42,14 +49,3 @@

}
async.series([
async.apply(async.forEach, Object.keys(data.RequestItems), validateTableKeys),
async.apply(async.parallel, [
async.apply(async.forEach, puts, putItem),
async.apply(async.forEach, deletes, deleteItem),
])
], function(err) {
if (err) return cb(err)
cb(null, {UnprocessedItems: {}})
})
}
{
"name": "dynalite",
"version": "0.0.10",
"version": "0.0.11",
"description": "A mock implementation of Amazon's DynamoDB",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -76,2 +76,3 @@ var validateAttributeValue = require('./index').validateAttributeValue

lengthLessThanOrEqual: 255,
children: 'String',
},

@@ -78,0 +79,0 @@ TableName: {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc