UNPKG

e2ed

Version:

E2E testing framework over Playwright

56 lines (55 loc) 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getBorderCount = void 0; const asserts_1 = require("../asserts"); const aCodePoint = 97; // eslint-disable-next-line @typescript-eslint/naming-convention const ACodePoint = 65; const nineCodePoint = 57; const zCodePoint = 122; // eslint-disable-next-line @typescript-eslint/naming-convention const ZCodePoint = 90; const zeroCodePoint = 48; /** * Returns count of border (letter or non-letter) inside string. * @internal */ // eslint-disable-next-line complexity const getBorderCount = (value) => { let borderCount = -1; let letterCount = 0; let mode; for (const char of value) { const codePoint = char.codePointAt(0); (0, asserts_1.assertValueIsDefined)(codePoint, 'codePoint is defined', { value }); switch (true) { case codePoint >= zeroCodePoint && codePoint <= nineCodePoint: if (mode !== '0') { borderCount += 1; } mode = '0'; break; case codePoint >= ACodePoint && codePoint <= ZCodePoint: if (mode !== 'A') { borderCount += 1; } letterCount += 1; mode = 'A'; break; case codePoint >= aCodePoint && codePoint <= zCodePoint: if (mode !== 'a') { borderCount += 1; } letterCount += 1; mode = 'a'; break; default: if (mode !== '.') { borderCount += 1; } mode = '.'; } } return { borderCount, letterCount }; }; exports.getBorderCount = getBorderCount;