UNPKG

zeta-icon-name-checker

Version:

A utility used to check the validity of icon and category names in the Zeta Icon Library.

33 lines (32 loc) 1.31 kB
import { renameIcon } from "./renameIcon.js"; import { reservedWords } from "./reserved-words.js"; import { ErrorType, ZetaIconError } from "./types.js"; /// Check the name if a single icon export function checkIconName(iconName, categoryName, usedNames) { // Starts with a number if (/^\d/.test(iconName)) { return new ZetaIconError(ErrorType.startsWithNumber, iconName); } // Contains a non alpha-numeric character except for spaces, _, and $ if (/^(?=.*[^a-zA-Z0-9$ _]).*$/.test(iconName)) { return new ZetaIconError(ErrorType.invalidChar, iconName); } // Contains a reserved word if (reservedWords.find((reservedWord) => reservedWord === iconName.toLowerCase())) { return new ZetaIconError(ErrorType.reservedWord, iconName); } // Icon name has been used if (categoryName != undefined && usedNames != undefined && usedNames.includes(iconName)) { const newName = renameIcon(iconName, categoryName); const newNameError = checkIconName(newName); if (newNameError.type == ErrorType.none) { return new ZetaIconError(ErrorType.iconRenamed, iconName, newName); } else { return newNameError; } } return new ZetaIconError(ErrorType.none, iconName); }