You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: agendas/2025/06-Jun/25-graphql-js-wg-june-2025.md
-40Lines changed: 0 additions & 40 deletions
Original file line number
Diff line number
Diff line change
@@ -51,43 +51,3 @@ implementation.
51
51
1. Determine volunteers for note taking (1m, Host)
52
52
1. Review agenda (2m, Host)
53
53
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.
- 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