UNPKG

char-info

Version:

Unicode character information library.

89 lines 3.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UnicodeScript = exports.UnicodeCategory = exports.UnicodeBlock = exports.uniGetBlock = exports.uniGetScripts = exports.uniGetCategories = exports.uniIsNewline = exports.uniIsSpace = exports.uniIsUpper = exports.uniIsLower = exports.uniIsLetter = exports.uniIsDecimal = exports.uniInBlock = exports.uniInScript = exports.uniInCategory = void 0; const indicators_1 = require("./indicators"); const names_1 = require("./names"); const unicode_lookup_1 = require("./unicode-lookup"); function homogenizeInputStr(str) { return str.toLowerCase().replace(/[_ -,]/g, ""); } /** * Returns an indicator for characters belonging to the Unicode category, `category`. * * @param category The category to test for. */ function uniInCategory(category) { category = homogenizeInputStr(category); if (category.length > 3) { category = unicode_lookup_1.lookup.longCategoryToCode.get(category); } const uGroup = unicode_lookup_1.lookup.categories.get(category); return new indicators_1.BasicCharClassIndicator(uGroup); } exports.uniInCategory = uniInCategory; /** * Returns an indicator for characters belonging to a Unicode script, `script`. * * @param script */ function uniInScript(script) { script = homogenizeInputStr(script); const uGroup = unicode_lookup_1.lookup.scripts.get(script); return new indicators_1.BasicCharClassIndicator(uGroup); } exports.uniInScript = uniInScript; /** * Returns an indicator for characters belonging to the Unicode block, `block`. * * @param block */ function uniInBlock(block) { block = homogenizeInputStr(block); const uGroup = unicode_lookup_1.lookup.blocks.get(block); return new indicators_1.BasicCharClassIndicator(uGroup); } exports.uniInBlock = uniInBlock; /** Indicator for Unicode decimal digit characters. */ exports.uniIsDecimal = uniInCategory(names_1.UnicodeCategory.NumberDecimalDigit); /** Indicator for Unicode letters. */ exports.uniIsLetter = uniInCategory(names_1.UnicodeCategory.Letter); /** Indicator for Unicode lowercase letters. */ exports.uniIsLower = uniInCategory(names_1.UnicodeCategory.LetterLowercase); /** Indicator for Unicode uppercase letters. */ exports.uniIsUpper = uniInCategory(names_1.UnicodeCategory.LetterUppercase); /** Indicator for Unicode inline spaces. */ exports.uniIsSpace = uniInCategory(names_1.UnicodeCategory.SeparatorSpace); /** Indicator for Unicode vertical separators. */ exports.uniIsNewline = uniInCategory(names_1.UnicodeCategory.Custom_SeparatorVertical); /** Returns the Unicode categories for a character or code. */ exports.uniGetCategories = { code(code) { return unicode_lookup_1.lookup.allCategories.search(code, code); }, char(char) { return exports.uniGetCategories.code(char.charCodeAt(0)); } }; /** Returns the Unicode scripts for a character or code. */ exports.uniGetScripts = { code(code) { return unicode_lookup_1.lookup.allScripts.search(code, code); }, char(char) { return exports.uniGetScripts.code(char.charCodeAt(0)); } }; /** Returns the Unicode block for a character or code. */ exports.uniGetBlock = { code(code) { return unicode_lookup_1.lookup.allBlocks.search(code, code)[0]; }, char(char) { return exports.uniGetBlock.code(char.charCodeAt(0)); } }; var names_2 = require("./names"); Object.defineProperty(exports, "UnicodeBlock", { enumerable: true, get: function () { return names_2.UnicodeBlock; } }); Object.defineProperty(exports, "UnicodeCategory", { enumerable: true, get: function () { return names_2.UnicodeCategory; } }); Object.defineProperty(exports, "UnicodeScript", { enumerable: true, get: function () { return names_2.UnicodeScript; } }); //# sourceMappingURL=unicode.js.map