From 340016813c6ed6bc4d9e093201e9877e9412613f Mon Sep 17 00:00:00 2001 From: Zaid Abdulla Date: Mon, 30 Jan 2017 07:35:48 -0800 Subject: [PATCH] Implicit timestamp when declare()ing values --- lib/sandbox.js | 50 ++++++++++++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/lib/sandbox.js b/lib/sandbox.js index a121b16..317f9cb 100644 --- a/lib/sandbox.js +++ b/lib/sandbox.js @@ -141,33 +141,39 @@ function declare(path, timestamps, values) { if (!timestamps) timestamps = {}; + if (!values) + values = {}; + let parsedPath = common.parsePath(path); let declaration = [parsedPath, 1]; - let attrs = {}; - if (timestamps) - for (let attrName in timestamps) - if (attrName === "path") - declaration[1] = timestamps.path; - else { - attrs[attrName] = 1; - declaration[2] = declaration[2] || {}; - declaration[2][attrName] = timestamps[attrName]; - } - if (values) - for (let attrName in values) - if (attrName === "path") - declaration[3] = values.path; - else { - attrs[attrName] = 1; - declaration[4] = declaration[4] || {}; - if (attrName === "value" && !Array.isArray(values.value)) - declaration[4].value = [values.value]; - else - declaration[4][attrName] = values[attrName]; - } + for (let attrName in values) { + if (!timestamps[attrName]) + timestamps[attrName] = 1; + + if (attrName === "path") + declaration[3] = values.path; + else { + attrs[attrName] = 1; + declaration[4] = declaration[4] || {}; + if (attrName === "value" && !Array.isArray(values.value)) + declaration[4].value = [values.value]; + else + declaration[4][attrName] = values[attrName]; + } + } + + for (let attrName in timestamps) { + if (attrName === "path") + declaration[1] = timestamps.path; + else { + attrs[attrName] = 1; + declaration[2] = declaration[2] || {}; + declaration[2][attrName] = timestamps[attrName]; + } + } sandbox.declarations.push(declaration);