google_forms/node_modules/get-east-asian-width/index.js

32 lines
814 B
JavaScript
Raw Normal View History

2024-07-29 09:17:16 +00:00
import {getCategory, isAmbiguous, isFullWidth, isWide} from './lookup.js';
function validate(codePoint) {
if (!Number.isSafeInteger(codePoint)) {
throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
}
}
export function eastAsianWidthType(codePoint) {
validate(codePoint);
return getCategory(codePoint);
}
export function eastAsianWidth(codePoint, {ambiguousAsWide = false} = {}) {
validate(codePoint);
if (
isFullWidth(codePoint)
|| isWide(codePoint)
|| (ambiguousAsWide && isAmbiguous(codePoint))
) {
return 2;
}
return 1;
}
// For Prettier. This doesn't count "ambiguous" characters or check for valid input.
// https://github.com/sindresorhus/get-east-asian-width/pull/6
export const _isNarrowWidth = codePoint => !(isFullWidth(codePoint) || isWide(codePoint));