import { camelCase, kebabCase } from 'lodash'; const tr = require('transliteration'); const slugifyCache: { [key: string]: string } = {}; function _slugify(aValue: string): string { // check let cached = slugifyCache[aValue]; if (!cached) { cached = slugifyCache[aValue] = tr.slugify(aValue); } // console.log('slugify', aValue, cached); return cached; } const transliterateCache: { [key: string]: string } = {}; function _transliterate(aValue: string): string { // check let cached = transliterateCache[aValue]; if (!cached) { cached = transliterateCache[aValue] = tr.transliterate(aValue); } // console.log('transliterate', aValue, cached); return cached; } const camelCaseCache: { [key: string]: string } = {}; function _camelCase(aValue: string): string { // check let cached = camelCaseCache[aValue]; if (!cached) { cached = camelCaseCache[aValue] = camelCase(_transliterate(aValue)); } // console.log('camelCase', aValue, cached); return cached; } const kebabCaseCache: { [key: string]: string } = {}; function _kebabCase(aValue: string): string { // check let cached = kebabCaseCache[aValue]; if (!cached) { cached = kebabCaseCache[aValue] = kebabCase(_transliterate(aValue)); } // console.log('kebabCase', aValue, cached); return cached; } export { _slugify as slugify, _transliterate as transliterate, _camelCase as camelCase, _kebabCase as kebabCase };