Skip to content

Commit 0c1488e

Browse files
authored
removing agenda item (#160)
got some great pre-meeting feedback from Lenz that I need to iterate on before I am ready to present.
1 parent 32d13b3 commit 0c1488e

File tree

1 file changed

+0
-40
lines changed

1 file changed

+0
-40
lines changed

agendas/2025/06-Jun/25-graphql-js-wg-june-2025.md

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -51,43 +51,3 @@ implementation.
5151
1. Determine volunteers for note taking (1m, Host)
5252
1. Review agenda (2m, Host)
5353
1. Check for [ready for review agenda items](https://github.com/graphql/graphql-js-wg/issues?q=is%3Aissue+is%3Aopen+label%3A%22Ready+for+review+%F0%9F%99%8C%22+sort%3Aupdated-desc) (5m, Host)
54-
1. Discuss proposal to change to ESM-only. (35m, Yaacov)
55-
- current state:
56-
- we have a 'faux' dual esm and cjs build, i.e. we publish esm `.mjs` files alongside our actual build of cjs `.js` files.
57-
- we do not use conditional exports, so our cjs build is always loaded, unless the `.mjs` files are requested explicitly.
58-
- our build script supports an esm-only version:
59-
- an esm-only version was published as `graphql-esm`, currently out of date, at 16.5.0
60-
- alternatively, it was suggested we could take care to publish the esm version as `graphql` under a tag, perhaps `latest-esm`, but this does not seem available?
61-
- proposal:
62-
- we switch to an esm-only build, dropping the cjs build entirely, now that require(esm) support has landed in Node.js >=20.
63-
- we use the `development` condition to enable our enhanced instanceOf checks to make our bundle cross-platform.
64-
- See: https://github.com/graphql/graphql-js/pull/4437
65-
- converts to esm only
66-
- triggers the enhanced `instanceOf` check based on the `development` condition.
67-
- adds integration tests for `instanceOf` checks
68-
- relevant old PRs (non-exhaustive list):
69-
- https://github.com/graphql/graphql-js/pull/4385 => closed => converts to esm only, i.e. part of proposal above, now closed, could be merged separately prior to the rest of 4437.
70-
- https://github.com/graphql/graphql-js/pull/4096 => open => proposed bundling changes to work around dual package hazard with dual-cjs-esm build
71-
- https://github.com/graphql/graphql-js/pull/4081 => open => earlier proposal to add conditional exports
72-
- https://github.com/graphql/graphql-js/pull/3674 => closed => even earlier proposal to add conditional exports
73-
- https://github.com/graphql/graphql-js/pull/3361 => merged => include cjs and esm builds via js and mjs extensions (got us to our current state)
74-
- https://github.com/graphql/graphql-js/pull/3552 => merged => converted to esm only, but reverted later by 3361
75-
- relevant issues, reverse chronological order (non-exhaustive list):
76-
- https://github.com/graphql/graphql-js/issues/4062 => bundling suggestions, basis for https://github.com/graphql/graphql-js/pull/4437
77-
- https://github.com/graphql/graphql-js/issues/3603 => Provide clear path for dual graphql-js 16/17 support as an esm and cjs library author
78-
- https://github.com/graphql/graphql-js/issues/2740 => dual package errors with our cjs/esm builds?
79-
- https://github.com/graphql/graphql-js/issues/2721 => ESM named exports are not available with "type": "module"
80-
- main advantage of proposal:
81-
- simplifies everything for us, no dual build, no dual package, no dual tag, no dual package hazard.
82-
- main disadvantages of proposal:
83-
- may leave some users behind.
84-
- one example, users using Jest, which sends code Node's `vm` module
85-
- although we are an ESM-only dependency for a CJS project (rather than an ESM project), so is relatively trivial to get working with some additional config added to the build process
86-
- but still may represent significant unnecessary upgrade friction!
87-
- `apollo-server` demo with babel: https://github.com/apollographql/apollo-server/pull/8082
88-
- `apollo-server` demo with swc:https://github.com/apollographql/apollo-server/pull/8083
89-
- minimal reproduction of fix with babel: https://github.com/yaacovCR/require-esm-test
90-
- alternatives:
91-
- dual build a la https://github.com/graphql/graphql-js/pull/4096 vs alternatively scheme in https://github.com/nodejs/node/issues/52174
92-
- move to ESM-only, but provide a cjs build either via `graphql-cjs` or a tag under `graphql`.
93-
- do nothing in v17, but quickly release v18 with some additional option.

0 commit comments

Comments
 (0)