Website Structure

This commit is contained in:
supalerk-ar66 2026-01-13 10:46:40 +07:00
parent 62812f2090
commit 71f0676a62
22365 changed files with 4265753 additions and 791 deletions

View file

@ -0,0 +1,20 @@
import reservedIdentifiers_ from 'reserved-identifiers';
import base62 from '@sindresorhus/base62';
const reservedIdentifiers = reservedIdentifiers_({includeGlobalProperties: true});
const encodeCodePoint = x => `$${base62.encodeInteger(x.codePointAt(0))}$`;
export default function toValidIdentifier(value) {
if (typeof value !== 'string') {
throw new TypeError(`Expected a string, got \`${typeof value}\`.`);
}
if (reservedIdentifiers.has(value)) {
// We prefix with underscore to avoid any potential conflicts with the Base62 encoded string.
return `$_${value}$`;
}
return value.replaceAll(/(?<!^)\P{ID_Continue}/gu, encodeCodePoint)
.replaceAll(/^[^_\p{ID_Start}]/gu, encodeCodePoint);
}