UNPKG

@taiga-ui/addon-doc

Version:

Taiga UI based library for developing documentation portals for Angular libraries.

43 lines 5.35 kB
function isEmptyParamValue(value) { return ['NaN', 'null', 'undefined'].includes(value); } function isBooleanParamValue(value) { return value === 'true' || value === 'false'; } function isNumberParamValue(value) { return (!!String(value).trim() && !Number.isNaN(Number(value)) && !String(value).startsWith('+')); } function isPossibleArray(value) { return value.startsWith('[') && value.endsWith(']'); } function isPossibleObject(value) { return value.startsWith('{') && value.endsWith('}'); } export function tuiCoerceValue(value) { const prepared = String(value).trim(); if (isEmptyParamValue(prepared)) { return null; } if (isBooleanParamValue(prepared)) { return String(prepared) === 'true'; } if (isNumberParamValue(prepared)) { return Number(prepared); } if (prepared === '%') { // https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#exceptions return prepared; } const decodedValue = decodeURIComponent(prepared); try { return isPossibleArray(decodedValue) || isPossibleObject(decodedValue) ? JSON.parse(decodedValue) : decodedValue; } catch { return decodedValue; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lcmNlLXZhbHVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tZG9jL3V0aWxzL2NvZXJjZS12YWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTLGlCQUFpQixDQUFDLEtBQWE7SUFDcEMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEtBQWM7SUFDdkMsT0FBTyxLQUFLLEtBQUssTUFBTSxJQUFJLEtBQUssS0FBSyxPQUFPLENBQUM7QUFDakQsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsS0FBYztJQUN0QyxPQUFPLENBQ0gsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUU7UUFDdEIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQ2pDLENBQUM7QUFDTixDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsS0FBYTtJQUNsQyxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFhO0lBQ25DLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUMxQixLQUFTO0lBRVQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRXRDLElBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDN0IsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELElBQUksbUJBQW1CLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDL0IsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssTUFBTSxDQUFDO0tBQ3RDO0lBRUQsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUM5QixPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUMzQjtJQUVELElBQUksUUFBUSxLQUFLLEdBQUcsRUFBRTtRQUNsQiwyR0FBMkc7UUFDM0csT0FBTyxRQUFRLENBQUM7S0FDbkI7SUFFRCxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVsRCxJQUFJO1FBQ0EsT0FBTyxlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksZ0JBQWdCLENBQUMsWUFBWSxDQUFDO1lBQ2xFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztZQUMxQixDQUFDLENBQUMsWUFBWSxDQUFDO0tBQ3RCO0lBQUMsTUFBTTtRQUNKLE9BQU8sWUFBWSxDQUFDO0tBQ3ZCO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGlzRW1wdHlQYXJhbVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gWydOYU4nLCAnbnVsbCcsICd1bmRlZmluZWQnXS5pbmNsdWRlcyh2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIGlzQm9vbGVhblBhcmFtVmFsdWUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUgPT09ICd0cnVlJyB8fCB2YWx1ZSA9PT0gJ2ZhbHNlJztcbn1cblxuZnVuY3Rpb24gaXNOdW1iZXJQYXJhbVZhbHVlKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgISFTdHJpbmcodmFsdWUpLnRyaW0oKSAmJlxuICAgICAgICAhTnVtYmVyLmlzTmFOKE51bWJlcih2YWx1ZSkpICYmXG4gICAgICAgICFTdHJpbmcodmFsdWUpLnN0YXJ0c1dpdGgoJysnKVxuICAgICk7XG59XG5cbmZ1bmN0aW9uIGlzUG9zc2libGVBcnJheSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlLnN0YXJ0c1dpdGgoJ1snKSAmJiB2YWx1ZS5lbmRzV2l0aCgnXScpO1xufVxuXG5mdW5jdGlvbiBpc1Bvc3NpYmxlT2JqZWN0KHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUuc3RhcnRzV2l0aCgneycpICYmIHZhbHVlLmVuZHNXaXRoKCd9Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0dWlDb2VyY2VWYWx1ZTxUPihcbiAgICB2YWx1ZT86IFQsXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgVCB8IGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBwcmVwYXJlZCA9IFN0cmluZyh2YWx1ZSkudHJpbSgpO1xuXG4gICAgaWYgKGlzRW1wdHlQYXJhbVZhbHVlKHByZXBhcmVkKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoaXNCb29sZWFuUGFyYW1WYWx1ZShwcmVwYXJlZCkpIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZyhwcmVwYXJlZCkgPT09ICd0cnVlJztcbiAgICB9XG5cbiAgICBpZiAoaXNOdW1iZXJQYXJhbVZhbHVlKHByZXBhcmVkKSkge1xuICAgICAgICByZXR1cm4gTnVtYmVyKHByZXBhcmVkKTtcbiAgICB9XG5cbiAgICBpZiAocHJlcGFyZWQgPT09ICclJykge1xuICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9kZWNvZGVVUklDb21wb25lbnQjZXhjZXB0aW9uc1xuICAgICAgICByZXR1cm4gcHJlcGFyZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgZGVjb2RlZFZhbHVlID0gZGVjb2RlVVJJQ29tcG9uZW50KHByZXBhcmVkKTtcblxuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBpc1Bvc3NpYmxlQXJyYXkoZGVjb2RlZFZhbHVlKSB8fCBpc1Bvc3NpYmxlT2JqZWN0KGRlY29kZWRWYWx1ZSlcbiAgICAgICAgICAgID8gSlNPTi5wYXJzZShkZWNvZGVkVmFsdWUpXG4gICAgICAgICAgICA6IGRlY29kZWRWYWx1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIGRlY29kZWRWYWx1ZTtcbiAgICB9XG59XG4iXX0=