Amigos, he estado buscando como es la forma correcta de documentar código pero todos los motores de búsqueda me arrojan generadores de documentación, realmente necesito documentar correctamente para otros programadores un codigo JS que tengo: por ejemplo.
if (!Element.prototype.getCss || !window.getCss) {
Element.prototype.getCss = function(hide) {
//propDenied == 'none|align|animation|background|font|flood|flex|column|color|box|border|text|transform|transition|scroll|mask|margin|padding|max|min|list|fill|clip|grid|justify|stroke|outline|overflow|page|image|perspective|pointer|position|quotes|resize|ruby|stop|table|top|touch|vector|marker|backface|opacity|hyphens|float|empty|clear|content|counter|cursor|direction|filter|ime|isolation|letter|line|mix|object|order|height|visibility|white|width|word|writing';
//valueDenied=='auto|none|top|inline|normal|""|rgb|padding|0%|0s|0px';
let props = window.getComputedStyle(this);
let propValueDenied = '""|^\-([a-z \-]+)$';
if (!!hide) {
if (/string/i.test(Object.prototype.toString.call(hide))) {
hide = hide.split(',');
hide.forEach(i => propValueDenied += `|${i.trim().toLowerCase()}`);
} else if (/array/i.test(Object.prototype.toString.call(hide))) {
hide.forEach(i => propValueDenied += `|${i.trim().toLowerCase()}`);
}
}
let result = {};
let Getval = result.__proto__.getVal = function() {
let val = String(this);
if (/[px\\s%]+/.test(val)) {
if (/[\s]+/.test(val)) {
val = val.split(/\D+/).filter(Boolean);
val.forEach((v, i) => val.splice(i, 1, parseFloat(v)));
} else {
val = parseFloat(val.replace(/[px\\s%]+/, ''));
}
}
return val;
}
for (let i of props) {
let propName = i;
let propValue = props.getPropertyValue(propName);
let cond1 = !RegExp(`${propValueDenied}`, 'i').test(propName);
let cond2 = !RegExp(`${propValueDenied}`, 'i').test(propValue);
if (cond1 && cond2) {
result[propName] = propValue;
result[propName].getVal = Getval;
}
}!/dims/.test(propValueDenied) ? result.dims = this.getBoundingClientRect() : result;
return result;
}
}
//ejemplo: document.querySelector('elemento').getCss().heigth -> "80px" (String)
//ejemplo: document.querySelector('elemento').getCss().heigth.getVal() -> 80 (integer)
Este es una función para obtener un objeto de todas las propiedades y valores css de un elemento del DOM, pero no sé como documentarlo de manera correcta sin llegar a ser "muy informal" por así decirlo.
¿Tienen algún tutorial o herramienta que pueda servir en este caso para Javascript?