Releases: graphql/graphql-js
Releases · graphql/graphql-js
v15.9.0
v15.9.0 (2024-06-21)
New Feature 🚀
Bug Fix 🐞
- #3708 Fix crash in node when mixing sync/async resolvers (backport of #3706) (@chrskrchr)
- #4000 Backport "Prevent Infinite Loop in OverlappingFieldsCanBeMergedRule" to v15 (@benjie)
Internal 🏠
Committers: 2
- Benjie(@benjie)
- Chris Karcher(@chrskrchr)
v16.8.2
v16.8.2 (2024-06-12)
Bug Fix 🐞
- #4022 fix: remove
globalThis
check and align with what bundlers can accept (@JoviDeCroock)
Internal 🏠
Committers: 2
- Benjie(@benjie)
- Jovi De Croock(@JoviDeCroock)
v16.8.1
v16.8.1 (2023-09-19)
Bug Fix 🐞
- #3967 OverlappingFieldsCanBeMergedRule: Fix performance degradation (@AaronMoat)
Committers: 1
- Aaron Moat(@AaronMoat)
v17.0.0-alpha.3
v17.0.0-alpha.3 (2023-09-06)
This release contains a new response format for operations containing the experimental @defer & @stream directives. This new response format addresses issues around data duplication, response amplification, and data consistency that affected the previous response format. See graphql/defer-stream-wg#69 for more information.
Breaking Change 💥
- #3742 Remove defer/stream support from subscriptions (@robrichard)
- #3722 original
execute
should throw if defer/stream directives are present (@yaacovCR) - #3855 Drop support for node14 (@IvanGoncharov)
- #3875 GraphQLInputObjectType: remove check that duplicate TS types (@IvanGoncharov)
- #3886 RFC: incremental delivery: without branching, with deduplication (@yaacovCR)
- #3897 incremental delivery: add pending notifications (@yaacovCR)
- #3960 incremental: utilize
id
andsubPath
rather thanpath
andlabel
(@yaacovCR)
New Feature 🚀
- #3754 enhancement: remove extra ticks (@yaacovCR)
- #3877 GraphQLInterface: add missing template parameters (@IvanGoncharov)
- #3860 Make print() break long List and Object Values over multiple line (@dylanowen)
- #3822 Expose printDirective function to enable schema sharding (@tomgasson)
- #3513 Implement OneOf Input Objects via
@oneOf
directive (@erikkessler1) - #3929 incremental: subsequent result records should not store parent references (@yaacovCR)
- #3948 Add support for fourfold nested lists in introspection (@gschulze)
Bug Fix 🐞
- #3746 fix: allow async errors to bubble to AsyncIterable list items (@yaacovCR)
- #3747 add filtering for asyncIterable lists (@yaacovCR)
- #3748 Fix typo in the error message for max tokens (@Cito)
- #3753 fix(incrementalDelivery): filtering should never affect the error source (@yaacovCR)
- #3757 fix: re-initialize subsequentPayloads (@yaacovCR)
- #3706 Fix crash in node when mixing sync/async resolvers (@chrskrchr)
- #3763 resources/utils: fix
git().revList
(@IvanGoncharov) - #3760 fix(incrementalDelivery): fix null bubbling with async iterables (@yaacovCR)
- #3776 extendSchema: preserve "description" and "extensions" (@igrlk)
- #3837 fix: invalid originalError propagation in custom scalars (@stenreijers)
- #3839 Fix ambiguity around when schema definition may be omitted (@benjie)
- #3832 internal: fix inlineInvariant for cjs builds that require filenames with explicit extensions (@yaacovCR)
- #3864 Narrow the return type of astFromValue (@dylanowen)
- #3869 printSchema: correctly print empty description (@IvanGoncharov)
- #3873 ASTReducer: correctly type scalar values (@IvanGoncharov)
- #3899 asyncIterable: locate async iterator errors to the collection (@yaacovCR)
- #3894 introduce new IncrementalPublisher class (@yaacovCR)
- #3961 fix(types): path is required within incremental results (@yaacovCR)
- #3937 Improve description for
@oneOf
directive (@spawnia) - #3965 instanceOf: workaround bundler issue with process.env (@IvanGoncharov)
- #3958 OverlappingFieldsCanBeMergedRule: Fix performance degradation (@AaronMoat)
Docs 📝
4 PRs were merged
- #3778 Remove outdated instructions on experimental tag (@robrichard)
- #3947 Fix edit URL in documentation (@benjie)
- #3951 Fix invalid sample code (@sakesun)
- #3957 docs: add installation instructions for bun (@colinhacks)
Polish 💅
31 PRs were merged
- #3749 polish: add additional test (@yaacovCR)
- #3728 incrementalDelivery: refactoring and streamlining (@yaacovCR)
- #3752 refactor: introduce completeListItemValue (@yaacovCR)
- #3762 Fix formatting in schema for test "resolve Interface type using __typename on source object" (@spawnia)
- #3771 lint: enable ESLint's
logical-assignment-operators
rule (@IvanGoncharov) - #3781 Fix comments in defer/stream validation rules (@robrichard)
- #3793 polish: do not repeat isPromise check (@yaacovCR)
- #3801 polish: narrow mapSourceToResponse return type (@yaacovCR)
- #3806 polish: remove misleading comment (@yaacovCR)
- #3816 polish: clarify filtering test semantics (@yaacovCR)
- #3821 Fix wording of comment in buildClientSchema (@Cito)
- #3856 Use
replaceAll
instead of RegExp with global flag (@IvanGoncharov) - #3865 Add accidentally deleted test spec name back (@Cito)
- #3857 Use ES2021
Array.at
(@IvanGoncharov) - #3872 Enable @typescript-eslint/strict-boolean-expressions rule (@IvanGoncharov)
- #3874 GraphQLObjectType: partial revert of #3143, due to perf regression (@IvanGoncharov)
- #3876 GraphQL*Type: bind only single property instead of entire context (@IvanGoncharov)
- #3878 execute: code refactors related to steam/defer (@yaacovCR)
- #3881 simplify schema in defer tests (@robrichard)
- #3880 Testing the right functions in testUtils (@Cito)
- #3885 remove unnecessary duplicated fields from defer tests (@yaacovCR)
- [#3890](https://github.com/graphql/grap...
v16.8.0
v16.7.1
v16.7.1 (2023-06-22)
📢 Big shout out to @phryneas, who managed to reproduce this issue and come up with this fix.
Bug Fix 🐞
- #3923 instanceOf: workaround bundler issue with
process.env
(@IvanGoncharov)
Committers: 1
- Ivan Goncharov(@IvanGoncharov)
v16.7.0
v16.7.0 (2023-06-21)
New Feature 🚀
- #3887 check "globalThis.process" before accessing it (@kettanaito)
Bug Fix 🐞
- #3707 Fix crash in node when mixing sync/async resolvers (backport of #3706) (@chrskrchr)
- #3838 Fix/invalid error propagation custom scalars (backport for 16.x.x) (@stenreijers)
Committers: 3
- Artem Zakharchenko(@kettanaito)
- Chris Karcher(@chrskrchr)
- Sten Reijers(@stenreijers)
v17.0.0-alpha.2
v17.0.0-alpha.2 (2022-09-22)
Breaking Change 💥
- #3622 fix: update remaining
GraphQLNonNull<GraphQLType>
codepoints toGraphQLNonNull<GraphQLNullableType>
(@yaacovCR) - #3621 change incorrect subscribe return type to a GraphQLError (@yaacovCR)
- #3620 align return types from execution and subscription (@yaacovCR)
- #3635 createSourceEventStream: remove deprecated positional argument overload (@yaacovCR)
- #3642 Remove 'devAssert' checks that duplicate TS types (@IvanGoncharov)
- #3643 Remove 'assertValidExecutionArguments' function (@IvanGoncharov)
- #3733 incrementalDelivery: remove singleResult wrapper (@yaacovCR)
New Feature 🚀
- #3597 Fix typing for
isNonNullType
(@yaacovCR) - #3605 Add new 'GraphQLSchema.getField' method (@IvanGoncharov)
- #3634 createSourceEventStream: introduce named arguments and deprecate positional arguments (@yaacovCR)
- #2757 Support returning async iterables from resolver functions (@IvanGoncharov)
- #3418 [RFC] Client Controlled Nullability experiment implementation w/o execution (@twof)
- #3684 parser: limit maximum number of tokens (@IvanGoncharov)
- #3659 Reference implementation of defer and stream spec (@robrichard)
- #3361 deploy full ESM with "type": "module" in "latest-esm" npm tag (@PabloSzx)
Bug Fix 🐞
- #3618 extendSchema: Do not modify standard directives (@IvanGoncharov)
- #3639 refactor: subscribe: introduce
buildPerEventExecutionContext
(@yaacovCR) - #3670 Fix: make public API compatible with 'exactOptionalPropertyTypes' (@IvanGoncharov)
- #3678 Parser: allow 'options' to explicitly accept undefined (@IvanGoncharov)
- #3720 Filter subsequent payloads when parent field is null (@robrichard)
- #3729 incrementalDelivery: fix iterable streaming with errors (@yaacovCR)
Docs 📝
Polish 💅
16 PRs were merged
- #3598 Refactor
GraphQL*Type
TS types to be more DRY (@yaacovCR) - #3627 Reuse GraphQLWrappingType in 'GraphQLType' definition (@IvanGoncharov)
- #3630 subscribe-test: extract
subscribeWithBadFn
function (@yaacovCR) - #3636 move
subscribe
code toexecute
file (@yaacovCR) - #3638 refactor: small refactors within execute (@yaacovCR)
- #3641 ESLint: error on function accepting more than 5 parameters (@IvanGoncharov)
- #3654 refactor: use
exeContext
strategically (@yaacovCR) - #3681 Fix coerceInputValue test name (@spawnia)
- #3680 validate: remove warning about throwing literal (@IvanGoncharov)
- #3683 polish: remove unnecessary Maybe (@yaacovCR)
- #3688 Replace all instances of
ObjMap<boolean>
with ES6 Set (@IvanGoncharov) - #3689 Remove superficial
.values()
and.entries()
calls (@IvanGoncharov) - #3690 Motivation: looked into this it as part of #3687 (@IvanGoncharov)
- #3655 polish: add tests for
expectPromise
andexpectEqualPromisesOrValues
(@yaacovCR) - #3696 polish: mapAsyncIterator (@yaacovCR)
- #3736 promiseForObject: convert to be async function (@IvanGoncharov)
Internal 🏠
36 PRs were merged
- #3596 benchmark: test performance cost of re-creating schema (@IvanGoncharov)
- #3602 gen-changelog: fix crash due to 'git rev-list' returning empty string (@IvanGoncharov)
- #3604 benchmark: various improvments to benchmark (@IvanGoncharov)
- #3608 Remove 'utf-8' as argument of
writeFileSync
(@IvanGoncharov) - #3610 resources: add new
localRepoPath
utility function (@IvanGoncharov) - #3611 diff-npm-package: move report into shared 'reports' folder (@IvanGoncharov)
- #3612 github actions: switch embedded JS to ESM (@IvanGoncharov)
- #3613 GH actions: fix 'checkForCommonlyIgnoredFiles' (@IvanGoncharov)
- #3614 Lint GitHub Actions (@IvanGoncharov)
- #3615 Update GitHub actions dependencies (@IvanGoncharov)
- #3623 diff-npm-package: create reports folder (@yaacovCR)
- #3625 benchmark: replace failing on context switching with warning (@IvanGoncharov)
- #3624 diff-npm-package: fix reports dir creation (@yaacovCR)
- #3626 ci: Fix imports in 'actions/github-script' (@IvanGoncharov)
- #3631 ci: speed up 'ci' workflow by removing unneeded internal dependencies (@IvanGoncharov)
- #3628 benchmark: add Windows compatibility (@yaacovCR)
- #3134 Async benchmarks (@robrichard)
- #3668 Cleanup words/files ignores in
cspell.yml
(@IvanGoncharov) - #3669 tsconfig: Explicitly list all type checking options (@IvanGoncharov)
- #3692 gen-changelog: Use
fetch
instead ofhttp.request
(@IvanGoncharov) - #3695 benchmark: use 'execOutput' from 'util.ts' (@IvanGoncharov)
- #3697 resources: Move
mkdirSync
intowriteGeneratedFile
(@IvanGoncharov) - #3698 resources: merge execOutput and exec into single function (@IvanGoncharov)
- [#3699](https://github.c...
v16.6.0
v16.6.0 (2022-08-16)
New Feature 🚀
- #3645 createSourceEventStream: introduce named arguments and deprecate positional arguments (@yaacovCR)
- #3702 parser: limit maximum number of tokens (@IvanGoncharov)
Bug Fix 🐞
- #3686 Workaround for codesandbox having bug with TS enums (@IvanGoncharov)
- #3701 Parser: allow 'options' to explicitly accept undefined (@IvanGoncharov)
Committers: 2
- Ivan Goncharov(@IvanGoncharov)
- Yaacov Rydzinski (@yaacovCR)
v17.0.0-alpha.1
v17.0.0-alpha.1 (2022-05-19)
Breaking Change 💥
- #3546 Drop support for node 12 and 17, update rest to latest minor version (@IvanGoncharov)
- #3547 Set TS 4.4 as minimal supported version (@IvanGoncharov)
- #3456 print: add spaces inside input object (@IvanGoncharov)
- #3552 Switch NPM package to support only ESM (@IvanGoncharov)
- #3570 Delete deprecated 'graphql/subscription' module (@IvanGoncharov)
- #3571 Remove deprecated
getOperationRootType
(@IvanGoncharov) - #3572 Remove deprecated
assertValidName
&isValidNameError
(@IvanGoncharov) - #3574 Remove deprecated
TypeInfo
argument ofvalidate
function (@IvanGoncharov) - #3575 Remove deprecate
getFieldDefFn
argument ofTypeInfo
constructor (@IvanGoncharov) - #3577 Drop deprecated positional arguments on GraphQLError (@IvanGoncharov)
- #3578 Remove dev asserts added temporary for v15 to v16 migration (@IvanGoncharov)
- #3579 Remove deprecated
*Enum
types (@IvanGoncharov) - #3580 Remove deprecated
getVisitFn
function (@IvanGoncharov) - #3582 Remove deprecate printError/formatError methods (@IvanGoncharov)
- #3594 Revert "Remove deprecate
getFieldDefFn
argument ofTypeInfo
const… (@IvanGoncharov) - #3595 Revert "Remove deprecated
TypeInfo
argument ofvalidate
function" (@IvanGoncharov)
Deprecation ⚠
- #3581 ASTVisitorKeyMap: drop deprecation notice (@IvanGoncharov)
New Feature 🚀
- #3554 Expose GraphQLErrorOptions type (@IvanGoncharov)
- #3453 fix(validate): no reusing root types (@thomasheyenbrock)
Bug Fix 🐞
Polish 💅
6 PRs were merged
- #3566 validateSchema: unify check of root types (@IvanGoncharov)
- #3567 validation-test: Test root type validation with multiple types (@IvanGoncharov)
- #3568 Refactor out
AccumulatorMap
fromgroupBy
(@IvanGoncharov) - #3569 invariant/devAssert: make typings of
condition
stricter (@IvanGoncharov) - #3583 tests: Use chai's
assert
instead ofinvariant
(@IvanGoncharov) - #3584 Speedup tests by ~15% by moving some
stripIgnoredCharacters
tests to fuzzing (@IvanGoncharov)
Internal 🏠
18 PRs were merged
- #3544 internal: add node@18 to supported versions and test it (@IvanGoncharov)
- #3545 package.json: Switch to alpha tag on NPM (@IvanGoncharov)
- #3548 ci: disable Codecov and measure test coverage on every run (@IvanGoncharov)
- #3549 ESLint: add 'shared-node-browser' environment (@IvanGoncharov)
- #3551 Add test watch script (@yaacovCR)
- #3555 Switch from shell's
cp
to 'fs.cpSync' in scripts (@IvanGoncharov) - #3557 Fully switch to
tsc
and removebabel
(@IvanGoncharov) - #3558 integrationTests: switch tests to TS (@IvanGoncharov)
- #3559 benchmark: rewrite benchmark in TS (@IvanGoncharov)
- #3560 diff-npm-packages: fix crash with ENOBUFS (@IvanGoncharov)
- #3562 resources: switch internal scripts to TS (@IvanGoncharov)
- #3585 internal: move
benchmark.ts
into resources folder (@IvanGoncharov) - #3586 Fix performance issue with ESLint (@IvanGoncharov)
- #3587 resources: mark node's modules with 'node:' prefix (@IvanGoncharov)
- #3588 Remove superficial ESLint config (@IvanGoncharov)
- #3589 Remove superficial ESLint config (@IvanGoncharov)
- #3590 resources: remove all usages of
require.main
(@IvanGoncharov) - #3591 Initial support of mutation testing with stryker-js (@IvanGoncharov)
Dependency 📦
2 PRs were merged
- #3553 Update deps (@IvanGoncharov)
- #3563 Update deps (@IvanGoncharov)
Committers: 4
- Ivan Goncharov(@IvanGoncharov)
- Laurin Quast(@n1ru4l)
- Thomas Heyenbrock(@thomasheyenbrock)
- Yaacov Rydzinski (@yaacovCR)