create-fomantic-icons
Version:
A simple CLI to generate the icon.variables and icon.html.eco files for FUI
36 lines (32 loc) • 1.06 kB
text/typescript
// @ts-ignore
import numWords from 'num-words';
export default class Converter {
private static NUMERIC_ONLY = /^\d+$/;
public static iconClassName(name: string): string {
return name
.toLowerCase()
.replace(/-alt$/, '-alternate')
.replace(/-alt-/, '-alternate-')
.replace(/-h$/, '-horizontal')
.replace(/-h-/, '-horizontal-')
.replace(/-v$/, '-vertical')
.replace(/-v-/, '-vertical-')
.replace(/-alpha$/, '-alphabet')
.replace(/-alpha-/, '-alphabet-')
.replace(/-asc$/, '-ascending')
.replace(/-asc-/, '-ascending-')
.replace(/-desc$/, '-descending')
.replace(/-desc-/, '-descending-')
.replace(/-/g, '.')
.replace(/\s/g, '.')
.split('.')
.map((entity: string) => (Converter.NUMERIC_ONLY.test(entity)
? numWords(parseInt(entity, 10))
: entity))
.join('.');
}
public static iconName(name: string): string {
return Converter.iconClassName(name)
.replace(/\./g, ' ');
}
}