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);