12345678910111213141516171819202122232425262728293031 |
- 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));
|