javascript - node-config Config es `undefined` en el contexto de typescript jest?
Tengo un módulo de TypeScript que funciona en desarrollo y producción. Usa https://github.com/lorenwest/node-config. Estoy intentando importarlo en Jest para escribir pruebas y arroja un error que indica que el objeto config está indefinido.
TypeError: Cannot read property 'get' of undefined
at Object.<anonymous> (src/email/email.service.ts:1877:43)
de
import config from 'config'
console.log('**********CONFIG GET*********', config); // undefined
const sendgridToken: string = config.get('socialApi.value') // throws error
Esperaría que config estuviera definido ya que es la exportación por defecto del módulo de configuración
entorno :
node-config version: [email
node-version: 12.13.1
tsc -v
Version 3.7.4
[email
Respuesta #1
en lugar de
import config from 'config'
escribe esto
import * as config from 'config'
Respuesta #2
También puedes habilitar esModuleInterop en tu tsconfig
"compilerOptions": {
"esModuleInterop": true,
}
Por defecto, import config from "config" actúa igual que const config=require("config").default, y config tiene module.exports=... (es decir, no tiene exportación por defecto).
esModuleInterop envuelve module.exports con default.
module.exports = ...
module.exports = { default: module.exports }
// it is pseudo-code
Ver más aquí
