| 1 |
export const extractPluginSlugs = (container) => { |
| 2 |
if (!container || !container.querySelectorAll) { |
| 3 |
return []; |
| 4 |
} |
| 5 |
|
| 6 |
const pluginSlugs = container |
| 7 |
.querySelectorAll('.plugin-card') |
| 8 |
.values() |
| 9 |
.map((element) => { |
| 10 |
// Extracts the plugin slug from the cards class. |
| 11 |
// The classes look like `plugin-card plugin-card-${pluginSlug}` |
| 12 |
const classAttr = element.getAttribute('class'); |
| 13 |
const pluginRegex = /^plugin-card plugin-card-([\w-]*)$/; |
| 14 |
const pluginSlug = classAttr.match(pluginRegex)?.[1]; |
| 15 |
return pluginSlug; |
| 16 |
}) |
| 17 |
.filter(Boolean); |
| 18 |
|
| 19 |
// Transforming into array because `.values()` returns an iterator. |
| 20 |
return Array.from(pluginSlugs); |
| 21 |
}; |
| 22 |
|