brianc / node-postgres

PostgreSQL client for node.js.
https://node-postgres.com
MIT License
12.3k stars 1.23k forks source link

Add ESM support #2353

Open LJNeon opened 4 years ago

LJNeon commented 4 years ago

When importing a CommonJS library, it's flattened into a single object, and you're unable to take advantage of any ESM features. However if you add a few lines to your package.json and a esm.mjs wrapper file that simply re-exports the contents of index.js, then ESM users will be able to take full advantage of ESM features without any changes needed to your source code, and without affecting any CommonJS users. The package.json changes would be as simple as:

"main": "index.js",
"exports": {
  ".": [
    {"require": "index.js", "import": "esm.mjs"},
    "index.js"
  ],
  "./": "./"
}

The "index.js" fallback is only necessary to avoid package.json parsing errors in some older versions of Node, which would affect CommonJS users as well. If this library ever supports only Node 14+ in the future, the fallback could be removed.

LJNeon commented 4 years ago

I would be happy to open a pull request but wish to confirm interest from the maintainers first.

btakita commented 2 years ago

I would be happy to open a pull request but wish to confirm interest from the maintainers first.

Please do. Or fork the project.

brianc commented 2 years ago

yea submit a pr I'd love to take a look at it

orangecoding commented 2 years ago

What is the status of this one?

LJNeon commented 2 years ago

I'm currently not able to sit down and do this, but if someone else wanted to that would be great.

btakita commented 2 years ago

I switched over to https://github.com/panates/postgresql-client for ESM & TS support. So far no problems.

real2two commented 1 year ago

+1