Tengo un pequeño complemento de mecanografiado que se ejecuta en el navegador, que usa fetch , por ejemplo, fetch(url) .
Para probar el complemento usando mocha, mocha se ejecuta en un entorno de nodo y, debido a esto, no se implementa la fetch .
Se puede hacer que funcione en el nodo usando:
declare const require: any fetch = require('cross-fetch'); fetch(url) Sin embargo, la instrucción require genera un feo error cuando se ejecuta en el navegador.
Idealmente me gustaría tener algo como:
if(typeof fetch !== 'undefined'){ const fetch = require('cross-fetch'); } fetch(url)Sin embargo, esto obviamente alcanza la búsqueda de la declaración if y no se puede usar globalmente. si lo intento
if(typeof fetch !== 'undefined'){ fetch = require('cross-fetch'); } Luego, el mecanografiado se queja de que la fetch ya está definida como una función (el mecanografiado se basa en el entorno del navegador). Entonces no compilará.
¿Hay alguna manera de 1.) decirle a mecanografiado que la fetch podría NO estar definida aunque crea que lo está, o 2.) habilitar la fetch globalmente de alguna otra manera?
Meta-pregunta: ¿cómo están probando otras personas su javascript basado en navegador? Seguramente hay una manera más fácil que hacer que javascript funcione en un entorno de nodo.