UNPKG

umbot

Version:

Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф

110 lines (109 loc) 4.01 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); /** * Модуль утилит - набор вспомогательных инструментов для разработки * * Модуль содержит: * - Утилиты для работы с текстом * - Стандартные утилиты для работы с данными * - Инструменты для конфигурации * * ### Text * Класс для работы с текстом, предоставляющий статические методы для: * - Обрезки текста * - Поиска вхождений * - Проверки схожести текстов * - Работы с окончаниями слов * * #### Обрезка текста * ```ts * import { Text } from './standard/Text'; * * const text = 'testing long long text'; * * // Обрезка с троеточием * Text.resize(text, 7); // -> 'test...' * * // Обрезка без троеточия * Text.resize(text, 7, false); // -> 'testing' * ``` * * #### Поиск вхождений * Метод для поиска подстроки или массива подстрок в тексте * ```ts * import { Text } from './standard/Text'; * * const text = 'testing long long text'; * * // Поиск одной подстроки * Text.isSayText('test', text); // -> true * * // Поиск одной из подстрок * Text.isSayText(['and', 'test'], text); // -> true * * // Поиск по регулярному выражению * // При передаче строки в JavaScript нужно экранировать обратный слеш: * // '\b' в строке = один символ (backspace), '\\b' = два символа (\ + b) * Text.isSayText(['and', '\\btest\\b'], text, true); // -> true * ``` * * #### Проверка схожести текстов * Метод для определения степени схожести двух текстов * ```ts * import { Text } from './standard/Text'; * * // Тексты совпадают на 100% * Text.textSimilarity('test', 'test', 90); * // -> { * // percent: 100, * // index: 0, * // status: true, * // text: 'test' * // } * * // Тексты не совпадают * Text.textSimilarity('test', 'demo', 90); * // -> { * // index: null, * // status: false, * // text: null * // } * ``` * * #### Работа с окончаниями слов * Метод для выбора правильного окончания слова в зависимости от числа * ```ts * import { Text } from './standard/Text'; * * const titles = [ * 'Яблоко', // 1 * 'Яблока', // 2-4 * 'Яблок' // 5-20 * ]; * * Text.getEnding(1, titles); // -> 'Яблоко' * Text.getEnding(2, titles); // -> 'Яблока' * Text.getEnding(10, titles); // -> 'Яблок' * * // Принудительный выбор формы * Text.getEnding(10, titles, 0); // -> 'Яблоко' * ``` */ __exportStar(require("./standard/util"), exports); __exportStar(require("./standard/Text"), exports); __exportStar(require("./standard/RegExp"), exports); __exportStar(require("./isPromise"), exports);