supabase / postgrest-js

Isomorphic JavaScript client for PostgREST.
https://supabase.com
MIT License
1.04k stars 133 forks source link

Switch to new style imports. #410

Open tomprince opened 1 year ago

tomprince commented 1 year ago

What kind of change does this PR introduce?

This adds support for importing postgrest-js as an ESM module in node.

What is the current behavior?

Currently, postgrest-js can only be imported as a CommonJS module on node (fixes #411).

Additional context

As written, this prevents imports like require("@supabase/postgrest-js/dist/main/PostgrestBuilder.js"). Node's docs suggest that this is a breaking change:

Existing packages introducing the "exports" field will prevent consumers of the package from using any entry points that are not defined, including the package.json (e.g. require('your-package/package.json'). This will likely be a breaking change.

However, I think that is only true if you consider that kind of import to be part of your public interface. The documentation does suggest a way to continue to support that kind of import if desired.

Looking at the code, the only things that could be accessed that way that aren't available from the top-level import are in src/types.ts and src/constants.ts.


This seems to work when I test locally, but I don't know enough about how this package is used in the wild to know if this might cause issues for other consumers.