@taiga-ui/addon-doc
Version:
Taiga UI based library for developing documentation portals for Angular libraries.
67 lines • 6.13 kB
JavaScript
function inspectArray(array, depth) {
if (depth === 0) {
return '[…]';
}
let result = '';
let first = true;
for (let index = 0; index < array.length; index++) {
if (first) {
first = false;
}
else {
result += ', ';
}
result += index in array ? tuiInspectAny(array[index], depth - 1) : 'empty';
}
return `[${result}]`;
}
function inspectObject(object, depth) {
if (depth === 0) {
return '{…}';
}
let result = '';
let first = true;
for (const key in object) {
if (!object.hasOwnProperty(key)) {
continue;
}
if (first) {
first = false;
}
else {
result += ', ';
}
result += `${key}: ${tuiInspectAny(object[key], depth - 1)}`;
}
return `{${result}}`;
}
/**
* Returns readable JS entity
* @param data
* @param depth
* @return readable JS entity
*/
export function tuiInspectAny(data, depth) {
if (data === null) {
return 'null';
}
switch (typeof data) {
case 'boolean':
case 'function':
case 'number':
case 'undefined':
return String(data);
case 'string':
return `'${data}'`;
default:
break;
}
if (data instanceof RegExp) {
return String(data);
}
if (Array.isArray(data)) {
return inspectArray(data, depth);
}
return inspectObject(data, depth);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zcGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLWRvYy91dGlscy9pbnNwZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsWUFBWSxDQUFDLEtBQXlCLEVBQUUsS0FBYTtJQUMxRCxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7UUFDYixPQUFPLEtBQUssQ0FBQztLQUNoQjtJQUVELElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNoQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUM7SUFFakIsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDL0MsSUFBSSxLQUFLLEVBQUU7WUFDUCxLQUFLLEdBQUcsS0FBSyxDQUFDO1NBQ2pCO2FBQU07WUFDSCxNQUFNLElBQUksSUFBSSxDQUFDO1NBQ2xCO1FBRUQsTUFBTSxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7S0FDL0U7SUFFRCxPQUFPLElBQUksTUFBTSxHQUFHLENBQUM7QUFDekIsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLE1BQStCLEVBQUUsS0FBYTtJQUNqRSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7UUFDYixPQUFPLEtBQUssQ0FBQztLQUNoQjtJQUVELElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUVoQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUM7SUFFakIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUU7UUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDN0IsU0FBUztTQUNaO1FBRUQsSUFBSSxLQUFLLEVBQUU7WUFDUCxLQUFLLEdBQUcsS0FBSyxDQUFDO1NBQ2pCO2FBQU07WUFDSCxNQUFNLElBQUksSUFBSSxDQUFDO1NBQ2xCO1FBRUQsTUFBTSxJQUFJLEdBQUcsR0FBRyxLQUFLLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDaEU7SUFFRCxPQUFPLElBQUksTUFBTSxHQUFHLENBQUM7QUFDekIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBSSxJQUFPLEVBQUUsS0FBYTtJQUNuRCxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7UUFDZixPQUFPLE1BQU0sQ0FBQztLQUNqQjtJQUVELFFBQVEsT0FBTyxJQUFJLEVBQUU7UUFDakIsS0FBSyxTQUFTLENBQUM7UUFDZixLQUFLLFVBQVUsQ0FBQztRQUNoQixLQUFLLFFBQVEsQ0FBQztRQUNkLEtBQUssV0FBVztZQUNaLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLEtBQUssUUFBUTtZQUNULE9BQU8sSUFBSSxJQUFJLEdBQUcsQ0FBQztRQUN2QjtZQUNJLE1BQU07S0FDYjtJQUVELElBQUksSUFBSSxZQUFZLE1BQU0sRUFBRTtRQUN4QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNyQixPQUFPLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDcEM7SUFFRCxPQUFPLGFBQWEsQ0FBQyxJQUEwQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzVFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBpbnNwZWN0QXJyYXkoYXJyYXk6IHJlYWRvbmx5IHVua25vd25bXSwgZGVwdGg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKGRlcHRoID09PSAwKSB7XG4gICAgICAgIHJldHVybiAnW+KApl0nO1xuICAgIH1cblxuICAgIGxldCByZXN1bHQgPSAnJztcbiAgICBsZXQgZmlyc3QgPSB0cnVlO1xuXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBpZiAoZmlyc3QpIHtcbiAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gJywgJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJlc3VsdCArPSBpbmRleCBpbiBhcnJheSA/IHR1aUluc3BlY3RBbnkoYXJyYXlbaW5kZXhdLCBkZXB0aCAtIDEpIDogJ2VtcHR5JztcbiAgICB9XG5cbiAgICByZXR1cm4gYFske3Jlc3VsdH1dYDtcbn1cblxuZnVuY3Rpb24gaW5zcGVjdE9iamVjdChvYmplY3Q6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBkZXB0aDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAoZGVwdGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuICd74oCmfSc7XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuXG4gICAgbGV0IGZpcnN0ID0gdHJ1ZTtcblxuICAgIGZvciAoY29uc3Qga2V5IGluIG9iamVjdCkge1xuICAgICAgICBpZiAoIW9iamVjdC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaXJzdCkge1xuICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSAnLCAnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzdWx0ICs9IGAke2tleX06ICR7dHVpSW5zcGVjdEFueShvYmplY3Rba2V5XSwgZGVwdGggLSAxKX1gO1xuICAgIH1cblxuICAgIHJldHVybiBgeyR7cmVzdWx0fX1gO1xufVxuXG4vKipcbiAqIFJldHVybnMgcmVhZGFibGUgSlMgZW50aXR5XG4gKiBAcGFyYW0gZGF0YVxuICogQHBhcmFtIGRlcHRoXG4gKiBAcmV0dXJuIHJlYWRhYmxlIEpTIGVudGl0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gdHVpSW5zcGVjdEFueTxUPihkYXRhOiBULCBkZXB0aDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAoZGF0YSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gJ251bGwnO1xuICAgIH1cblxuICAgIHN3aXRjaCAodHlwZW9mIGRhdGEpIHtcbiAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgY2FzZSAndW5kZWZpbmVkJzpcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcoZGF0YSk7XG4gICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgICByZXR1cm4gYCcke2RhdGF9J2A7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoZGF0YSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICByZXR1cm4gU3RyaW5nKGRhdGEpO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgIHJldHVybiBpbnNwZWN0QXJyYXkoZGF0YSwgZGVwdGgpO1xuICAgIH1cblxuICAgIHJldHVybiBpbnNwZWN0T2JqZWN0KGRhdGEgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgZGVwdGgpO1xufVxuIl19