umbot
Version:
Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф
35 lines (34 loc) • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getQueryData = getQueryData;
const DATA_REG = /`([^`]+)`\s*=\s*(?:"([^"]*)"|(\S+))/gim;
/**
* Парсит строку запроса в объект IQueryData
* Поддерживает формат `field=value` с возможностью экранирования
*
* @example
* ```ts
* const query = QueryData.getQueryData('`id`=1 `name`="John Doe"');
* // Результат: { id: 1, name: 'John Doe' }
* ```
*
* @param str - Строка запроса для парсинга
* @returns Объект с параметрами запроса или null
*/
function getQueryData(str) {
if (str) {
const matchAll = str.matchAll(DATA_REG);
const regData = {};
let data = matchAll.next();
while (!data.done) {
let val = data.value[2] ?? data.value[3];
if (!isNaN(+val)) {
val = +val;
}
regData[data.value[1]] = val;
data = matchAll.next();
}
return regData;
}
return null;
}