better-firebase-functions icon indicating copy to clipboard operation
better-firebase-functions copied to clipboard

JS ESM Compatibility?

Open chrisspiegl opened this issue 2 years ago • 3 comments

Hello, I have been trying to use this library for a few hours and can't get it to work. Here's what I am doing:

I generally use the ESM (type=module) setting in my node.js projects. However, it seems the exports setting of this library is giving me heart aches 🙈.

This is my index.js:

import bff from 'better-firebase-functions'
import { fileURLToPath } from 'node:url'
const __filename = fileURLToPath(import.meta.url)

const result = bff.exportFunctions({
  enableLogger: true,
  __filename,
  exports: module.exports,
  // exportPathMode: true,
})
console.log('BFF RESULT:', result)

Note that I already found a way to replace the __filename since that appears to be missing in ESM, but no matter what I set for the exports parameter, I never get it to work. module.exports is not defined and the same is true if I just use exports.

  • Does anyone know of a solution for this?
  • Is it possible in some way to use Better Firebase Functions with ESM / import?

Thank you, I am looking forward to reading from you.

Cheers, Chris

chrisspiegl avatar Apr 07 '22 05:04 chrisspiegl

I'm really curious about this - there could be a performance benefit here. Could you please provide a non working example to a repo where I can take a closer look?

george43g avatar May 04 '22 04:05 george43g

@george43g right now I do not have time to build an example repo.

But essentially it is just a project with the "type": "module" set in the package.json and then trying to use the import way of loading things as shown above instead of require().

chrisspiegl avatar May 04 '22 07:05 chrisspiegl

Same issue here

TanguyGiton avatar Mar 13 '24 11:03 TanguyGiton