UNPKG

@onenexus/squery

Version:

Interact with Synergy modules/BEM DOM elements

34 lines (27 loc) 865 B
import isValidSelector from './isValidSelector'; /** * Find matching DOM nodes against passed Synergy query * * @param {*} query */ export default function getDomNodes(query) { if (query instanceof NodeList || query instanceof HTMLElement) { return query; } if (query instanceof Array) { if (query.every(item => item instanceof HTMLElement)) { return query; } return getDomNodes(query[0]); } if (isValidSelector(query) && document.querySelectorAll(query).length) { return document.querySelectorAll(query); } if (typeof query === 'object' && query.name) { return getDomNodes(query.name); } if (typeof query === 'string' && query.match(`^[a-zA-Z0-9_-]+$`)) { return document.querySelectorAll(`.${query}, [class*="${query}-"]`); } return []; }