Estoy trabajando en un editor personalizado que usa el editor Monaco para aceptar fragmentos de usuario (predefinidos en JS lang) y estoy usando JSHint para evaluar su validez antes de enviarlo al backend.
Hay un número determinado de funciones personalizadas aceptables para un tipo de datos según mi aplicación. Tomemos un ejemplo de String para aclarar un poco más mi situación.
He inicializado JSHint usando el siguiente script:
String.prototype.myFunc = param => {}; String.prototype.myAnotherFunc = paramTwo => {}; Entonces, las dos funciones aceptables en mi programa para todas las cadenas son myFunc y myAnotherFunc .
Sin embargo, JSHint no arroja ningún TypeErrors si un usuario ingresa/llama a cualquier otra función como
"testString".invalidFunc();Me gustaría que arrojara errores como lo haría la consola del navegador.
También verifiqué la matriz de 'errores' dentro de la variable jsHintData . ¿Podría alguien ayudarme a entender dónde me estoy equivocando?
Aquí está mi configuración JSHint si eso ayuda:
const script = [ 'String.prototype.myFunc = param => {};', 'String.prototype.myAnotherFunc = paramTwo => {};', '"testString".invalidFunc();' ]; try { JSHINT(script, { maxerr: Infinity, asi: true, latedef: true }); const jsHintData = JSHINT.data(); } catch (error) { return error; }