UNPKG

@cfworker/json-schema

Version:

A JSON schema validator that will run on Cloudflare workers. Supports drafts 4, 7, 2019-09, and 2020-12.

25 lines (24 loc) 656 B
/** * Get UCS-2 length of a string * https://mathiasbynens.be/notes/javascript-encoding * https://github.com/bestiejs/punycode.js - punycode.ucs2.decode */ export function ucs2length(s: string): number { let result = 0; let length = s.length; let index = 0; let charCode: number; while (index < length) { result++; charCode = s.charCodeAt(index++); if (charCode >= 0xd800 && charCode <= 0xdbff && index < length) { // high surrogate, and there is a next character charCode = s.charCodeAt(index); if ((charCode & 0xfc00) == 0xdc00) { // low surrogate index++; } } } return result; }