getNodeData = node => {

    // All attributes
    const attributes = node.attributes

    // Regex Pattern
    const pattern = /^data\-(.+)$/

    // Output
    const data = {}

    for (let i in attributes) {
        if (!attributes[i]) {
            continue
        }

        // Attributes name (ex: data-module)
        let name = attributes[i].name

        // This happens.
        if (!name) {
            continue
        }

        let match = name.match(pattern)
        if (!match) {
            continue
        }

        // If this throws an error, you have some
        // serious problems in your HTML.
        data[match[1]] = getData(node.getAttribute(name))
    }

    return data;

}
Get element data attributes
@param {HTMLElement}  node   - node element
@return {array}       node data