All files / packages/icons/.claude/skills/icons-release/scripts/lib synonyms.js

0% Statements 0/7
0% Branches 0/2
0% Functions 0/3
0% Lines 0/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28                                                       
'use strict'
 
/**
 * Normalize the CSV "List of synonyms" cell into a clean, de-duplicated array.
 *
 * Logic mirrors the original icon-workflow-assistant so downstream metadata
 * stays consistent: split on comma/pipe, strip special chars, lowercase,
 * underscores become spaces, drop empties, de-dupe.
 */
 
function parseSynonyms(rawValue) {
  const value = String(rawValue || '')
  const parts = value.split(/[|,]/)
  const cleaned = parts
    .map(syn =>
      syn
        .trim()
        .replace(/[^a-zA-Z0-9_\s]/g, '')
        .toLowerCase()
        .replace(/_/g, ' ')
        .trim()
    )
    .filter(syn => syn.length > 0)
  return [...new Set(cleaned)]
}
 
module.exports = { parseSynonyms }