allowly
v1.0.4
Published
allowly — lightweight string matcher with whitelist/blacklist rules, wildcards, and RegExp support. Perfect for validating inputs, configs, or ACLs with strict or tolerant rule handling.
Downloads
30
Readme
allowly
Минималистичная библиотека для проверки строковых значений по набору гибких правил: разрешающие, запрещающие, шаблоны, маски и регулярные выражения.
Подходит для валидации конфигов, фильтрации входных данных, маршрутизации и любых систем с rule-based доступом.
Возможности
Полное совпадение (
"value")Глобальное разрешение (
"*")Исключения (
!value,!value*)Частичное совпадение по шаблону:
- начинается с (
value*) - заканчивается на (
*value) - содержит (
*value*)
- начинается с (
Экранирование спецсимволов (
\*,\!,\/)Поддержка RegExp (
/pattern/i)
Установка
npm install allowlyИспользование
import allowly from "allowly";
allowly("admin", ["*"]); // true
allowly("admin", ["!admin"]); // false
allowly("superadmin", ["admin*"]); // true
allowly("user-42", ["/user-\\d+/i"]); // trueПараметры
allowly(value: string, rules: string[], options: Partial<WhitelistOptions> = { strict: true, caseSensitive: false })strict: boolean- строгий режимcaseSensitive: boolean- режим с учётом регистра
Правила
1. Полное совпадение
["value"] → подходит только "value"2. Глобальное разрешение
["*"] → разрешено всё3. Исключения
["!value"] → запрещает "value"
["!value*"] → запрещает всё, что начинается с "value"4. Частичное совпадение (wildcards)
["value*"] → начинается с
["*value"] → заканчивается на
["*value*"] → содержит5. Экранирование
["\\*"] → символ "*"
["\\!"] → символ "!"
["\\/"] → символ "/"6. Регулярные выражения
["/foo/i"] → регэксп с флагами
["/^user-\\d+$/"] → строгий RegExpПриоритет правил
- Запрещающие
- Разрешающие
- Частичные совпадения и RegExp
Лицензия
MIT
