Source

utils/data.js

/**
 * Data module.
 * @module base/utils/data
 */

import { UID } from '../variables'

/**
 * Return data cache from given node.
 *
 * @param   {Element} node - Node to get the cache from.
 * @returns {Object}
 */
export function getAll(node) {
  return (node[UID] = node[UID] || {})
}

/**
 * Set data to node.
 *
 * @param {Element} node - Node to set the cache to.
 * @param {String} key - Data key.
 * @param {String} value - Value to set.
 *
 * @returns {Object}
 */
export function set(node, key, value) {
  return (getAll(node)[key] = value)
}

/**
 * Return data from given node.
 *
 * @param {Element} node - Node to get data from.
 * @param {String} key - Data key.
 *
 * @returns {String}
 */
export function get(node, key) {
  var cache = getAll(node)
  return cache[key]
}

/**
 * Remove data from given node.
 *
 * @param {Element} node - Node to remove data from.
 * @param {String} key - Data key.
 */
export function remove(node, key) {
  var cache = getAll(node)
  if (cache) {
    delete cache[key]
  }
}

export default {
  getAll,
  get,
  set,
  remove
}