From 7a52ddeba2a68388b544f529d2d92104420f77b0 Mon Sep 17 00:00:00 2001 From: Shipwreckt Date: Fri, 31 Oct 2025 20:02:14 +0000 Subject: Changed from static to 11ty! --- node_modules/@sindresorhus/transliterate/index.js | 33 +++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 node_modules/@sindresorhus/transliterate/index.js (limited to 'node_modules/@sindresorhus/transliterate/index.js') diff --git a/node_modules/@sindresorhus/transliterate/index.js b/node_modules/@sindresorhus/transliterate/index.js new file mode 100644 index 0000000..739ebbe --- /dev/null +++ b/node_modules/@sindresorhus/transliterate/index.js @@ -0,0 +1,33 @@ +import escapeStringRegexp from 'escape-string-regexp'; +import builtinReplacements from './replacements.js'; + +const doCustomReplacements = (string, replacements) => { + for (const [key, value] of replacements) { + // TODO: Use `String#replaceAll()` when targeting Node.js 16. + string = string.replace(new RegExp(escapeStringRegexp(key), 'g'), value); + } + + return string; +}; + +export default function transliterate(string, options) { + if (typeof string !== 'string') { + throw new TypeError(`Expected a string, got \`${typeof string}\``); + } + + options = { + customReplacements: [], + ...options + }; + + const customReplacements = new Map([ + ...builtinReplacements, + ...options.customReplacements + ]); + + string = string.normalize(); + string = doCustomReplacements(string, customReplacements); + string = string.normalize('NFD').replace(/\p{Diacritic}/gu, '').normalize(); + + return string; +} -- cgit v1.2.3