v16.0.0-alpha.1 (2021-05-14)
Breaking Change 💥
- #2896 Remove deprecated rule aliases (@IvanGoncharov)
- #2897 Remove 'findDeprecatedUsages' that was previously deprecated (@IvanGoncharov)
- #2898 Remove 'GraphQLSchema::isPossibleType' that was previously deprecated (@IvanGoncharov)
- #2900 Drop support for long deprecated comments as descriptions (@IvanGoncharov)
- #2902 Remove deprecated {GraphQLEnumValue, GraphQLField}::isDeprecated (@IvanGoncharov)
- #2903 Removed parser support for legacy syntax (@IvanGoncharov)
- #2904 Remove support for positional args in graphql/execute/subscribe func (@IvanGoncharov)
- #2905 resolveType: remove support for returning GraphQLObjectType (@IvanGoncharov)
- #2906 Convert GraphQLList and GraphQLNonNull into proper classes (@IvanGoncharov)
- #2907 Remove 'find' polyfill (@IvanGoncharov)
- #2911 Remove 'isFinite' & 'isInteger' polyfills (@IvanGoncharov)
- #2912 Drop 'Array.from' polyfill (@IvanGoncharov)
- #2913 Remove polyfills for Symbol (@IvanGoncharov)
- #2914 Remove Node's custom inspect function (@IvanGoncharov)
- #2915 Drop support for TS before 3.7 (@IvanGoncharov)
- #2916 refactor: replace default exports with named exports (@IvanGoncharov)
- #2917 Drop support for non-iteratable ArrayLike objects (@IvanGoncharov)
- #2918 Drop support for older browsers (@IvanGoncharov)
- #2919 Remove polyfills for 'Object.values' & 'Object.entries' (@IvanGoncharov)
- #2920 Deprecate fragments with variables and reflect that in naming (@IvanGoncharov)
- #2921 Deprecate 'getFieldDefFn' arg of 'TypeInfo' and move it last (@IvanGoncharov)
- #2923 Drop support for Node10 (@IvanGoncharov)
- #2930 visitor: remove
visitorKeys
argument (@IvanGoncharov) - #2931 visit: remove template arguments for possible nodes (@IvanGoncharov)
- #2951 Forbid null & undefined as return value of 'interfaces' thunk (@IvanGoncharov)
- #2952 Restrict Thunks to support only ObjMap and Array (@IvanGoncharov)
- #2955 feat: convert Thunk to ThunkArray and ThunkObjMap (@saihaj)
- #2957 visitor: remove 4th form of visitor (@IvanGoncharov)
- #2997 print/printSchema: remove trailing new line (@IvanGoncharov)
- #3003 TS: use
unknown
(TS) formixed
(flow) (@saihaj) - #3006 ts: Switch extension values to unknown to match Flow types (@IvanGoncharov)
- #3027 subscribe: drop mapping of AsyncIterable errors (@IvanGoncharov)
- #3031 Drop experimental online parser (@IvanGoncharov)
- #3032 Use specifiedBy instead of specifiedByUrl (@Code-Hex)
- #3055 Drop Node v15 (@IvanGoncharov)
New Feature 🚀
- #2932 print: remove indentation inside of block strings (@IvanGoncharov)
- #2996 extensionASTNodes: always populate with empty array (@IvanGoncharov)
- #3059 Refine parse and AST to represent ConstValue (@leebyron)
- #3063 Refine getNamedType() for Input and Output types (@leebyron)
Bug Fix 🐞
- #2852 introspectionFromSchema: enable 'specifiedByUrl' by default (@IvanGoncharov)
- #2855 introspection: Add missing support for deprecated input values (@IvanGoncharov)
- #2859 separateOperations: distinguish query and fragment names (@IvanGoncharov)
- #2876 Replace 'localeCompare' with function independent from locale (@IvanGoncharov)
- #2959 ASTVisitor: use type intersection instead of type union (@IvanGoncharov)
- #2987 Synchronise TS typings for graphql.js/execute.js/subscribe.js (@IvanGoncharov)
- #2991 fix: update introspection types (@saihaj)
- #3001 fix: discrepancies between Flow and TS types (@saihaj)
- #3009 TS: use proper type for async generator (@saihaj)
Docs 📝
- #2849 README: add instructions on using experimental features (@robrichard)
Polish 💅
75 PRs were merged
- #2847 Add tests for supporting Iterable collections across the lib (@IvanGoncharov)
- #2851 tests: update 'getIntrospectionQuery' tests to use custom matchers (@IvanGoncharov)
- #2858 separateOperations-test: refactor tests to look like snapshots (@IvanGoncharov)
- #2868 Extract types for normalized configs into named types (@IvanGoncharov)
- #2878 fix: type annotation cannot appear on a constructor declaration (@saihaj)
- #2879 fix: no need to mark param optional if default value is given (@saihaj)
- #2889 Simplify isAsyncIterable (@IvanGoncharov)
- #2928 refactor: use regexp-exec (@saihaj)
- #2933 printer: remove 'addDescription' wrapper (@IvanGoncharov)
- #2934 printer: use
wrap
util function in more places (@IvanGoncharov) - #2935 VariablesAreInputTypesRule: remove incorrect return type (@IvanGoncharov)
- #2936 schema-test: use chai's
keys
instead of undocumentedkey
(@IvanGoncharov) - #2937 validateSchema: inline 'getAllNodes' function (@IvanGoncharov)
- #2938 inspect: improve typings for
toJSON
call (@IvanGoncharov) - #2947 valueFromAST-test: correct typings (@IvanGoncharov)
- #2948 scalars-test: improve typings of function calls (@IvanGoncharov)
- #2953 type-validate: inline getAllNodes function (@IvanGoncharov)
- #2956 buildClientSchema-test: correctly wrap test case (@IvanGoncharov)
- #2963 printer: simplify printing of query short form (@IvanGoncharov)
- #2964 Simplified memoize3 and improve type checking (@IvanGoncharov)
- #2965 parser: improve type checking of 'parseTypeReference' function (@IvanGoncharov)
- #2966 blockString-fuzz: improve
lexValue
typing (@IvanGoncharov) - #2967 flow: improve typings of exported definitions (@IvanGoncharov)
- #2977 dedent-test: change test data to pass spell check (@IvanGoncharov)
- #2981 printSourceLocation: simplifying by using
padStart
(@IvanGoncharov) - #2988 Replace 'Array.reduce' with 'for of' (@IvanGoncharov)
- #2989 Switch
indexOf
toincludes
whenever possible (@IvanGoncharov) - #2990 Switch instanceOf to be named export (@IvanGoncharov)
- #2992 flow: Improve typings for exported definitions (@IvanGoncharov)
- #2995 introspection-test: fix test to correctly check for exceptions (@IvanGoncharov)
- #2998 Simplify testing AST nodes in buildSchema/extendedSchema tests (@IvanGoncharov)
- #2999 tests: replace 'invariant' with 'expect' assertion whenever possible (@IvanGoncharov)
- #3002 feat: add types for internal Parser class (@saihaj)
- #3004 GraphQLGrammarType: no need to code in
d.ts
can just export type (@saihaj) - #3005 ts: switch to use ObjMap utility type (@saihaj)
- #3008 ESLint: enable 'func-names' (@IvanGoncharov)
- #3010 testUtils: refactor out dedentString from dedent (@saihaj)
- #3011 mapAsyncIterator: add default value for 'rejectCallback' (@IvanGoncharov)
- #3012 mapAsyncIterator: allow 'rejectCallback' to only be synchronous (@IvanGoncharov)
- #3013 mapAsyncIterator: simplify mapResult (@IvanGoncharov)
- #3014 mapAsyncIterator: simplify abruptClose (@IvanGoncharov)
- #3015 printer-test: switch to dedentString (@IvanGoncharov)
- #3016 printer-test: do more check on kitchen sink tests (@IvanGoncharov)
- #3022 memoize3: remove unnecessary
mixed
type (@IvanGoncharov) - #3023 predicate-test: improve typecheck (@IvanGoncharov)
- #3024 subscribe: simplify by rewriting as async functions (@IvanGoncharov)
- #3025 subscribe: simplify root field extraction (@IvanGoncharov)
- #3026 Switch some of 'Object.keys' to more modern ES6 constructs (@IvanGoncharov)
- #3028 mapAsyncIterator: move promise resolution into
mapResult
(@IvanGoncharov) - #3034 visitor-test: cleanup test for nodes with unknown kinds (@IvanGoncharov)
- #3035 printSchema: replace array concat with spead + update comment (@IvanGoncharov)
- #3038 TS: improve types mapAsyncIterator-test (@saihaj)
- #3039 simplify predicate-test type (@saihaj)
- #3041 Use correct terminology around iterators and iterable (@IvanGoncharov)
- #3042 Remove superficial usages of 'Array.from' (@IvanGoncharov)
- #3043 Fix Flow issues with Symbol.asyncIterator (@IvanGoncharov)
- #3050 Generalize defineArguments() (@leebyron)
- #3053 Forbid non-ASCII characters in JS files (@IvanGoncharov)
- #3058 subscribe-test: general cleanup and simplify test setups (@IvanGoncharov)
- #3061 Improve parser location API (@leebyron)
- #3062 mapAsyncIterator: refactor async iterator (@IvanGoncharov)
- #3064 mapAsyncIterator: refactor async iterator (@IvanGoncharov)
- #3066 mapAsyncIterator-test: check that return value is passed on early return (@IvanGoncharov)
- #3068 Improve grammar in execution error messages (@Cito)
- #3069 subscription-test: use separate dummy query type (@IvanGoncharov)
- #3070 subscription-test: standardize generator names (@IvanGoncharov)
- #3072 Flow: add missing names to arguments of function types (@IvanGoncharov)
- #3073 Improve naming 'err => error' and 'arr => array' (@IvanGoncharov)
- #3075 Simplify printSchema directive printing (@leebyron)
- #3079 dedent: simplify implementation (@IvanGoncharov)
- #3081 Flow: Replace force type conversion with explicit $FlowFixMe comments (@IvanGoncharov)
- #3082 collectFields: use ES6 collections instead of Object.create(null) (@IvanGoncharov)
- #3083 execute: inline collectAndExecuteSubfields function (@IvanGoncharov)
- #3084 getFieldDef: accept FieldNode instead of field name (@IvanGoncharov)
- #3085 Flow: switched to exact object by default (@IvanGoncharov)
Internal 🏠
30 PRs were merged
- #2831 build: add support for experimental releases (@IvanGoncharov)
- #2836 CI: test on node 15 (@IvanGoncharov)
- #2837 Flow: remove support for measuring Flow coverage (@IvanGoncharov)
- #2838 TS: exclude integration tests from root tsconfig.json (@IvanGoncharov)
- #2840 resources: use named groups in RegExp (@IvanGoncharov)
- #2881 ci: migrate master to main (@saihaj)
- #2886 Use correct flags for rmdir/mkdir functions (@IvanGoncharov)
- #2891 benchmark: fix temp dir creation (@IvanGoncharov)
- #2908 Add EasyCLA instructions, replace FB CLA (@brianwarner)
- #2924 cspell: disable progress and convert config to YAML (@IvanGoncharov)
- #2925 TS: Enable integrations tests for extending
GraphQL*Extensions
types (@IvanGoncharov) - #2929 integrationTests: always build npm packages before tests (@IvanGoncharov)
- #2954 build: use node12 tsconfig (@saihaj)
- #2962 flow-typed: fix unresolved types (@IvanGoncharov)
- #2968 ESLint: Allow 'async' functions (@IvanGoncharov)
- #2969 ESLint: cleanup rule overrides (@IvanGoncharov)
- #2970 Remove override of
node/global-require
rule forresources
dir (@IvanGoncharov) - #2971 benchmark: refactor args parsing code (@IvanGoncharov)
- #2972 Remove deprecated
rmdirSync
usage from internal scripts (@IvanGoncharov) - #2978 internal: simplify 'exec' function (@IvanGoncharov)
- #2982 benchmark: use more readable spelling of V8 flag (@IvanGoncharov)
- #3000 feat: add
.d.ts
for jsutils (@saihaj) - #3007 TS integration test: add check for possibility to refine extension types (@IvanGoncharov)
- #3018 build: run prettier on generated files (@IvanGoncharov)
- #3019 inline-invariant: switch to use
false
instead of0
(@IvanGoncharov) - #3021 gen-version: prettify source code (@IvanGoncharov)
- #3036 integrationTests: test package with TS 4.2 (@IvanGoncharov)
- #3054 Test with Node v16 (@IvanGoncharov)
- #3078 babel: Stop transpiling optional chaining operator (@IvanGoncharov)
- #3080 Workaround for Flow issue with 'String.raw' (@IvanGoncharov)
Dependency 📦
14 PRs were merged
- #2835 Update deps (@IvanGoncharov)
- #2844 Update deps (@IvanGoncharov)
- #2850 Update deps (@IvanGoncharov)
- #2884 Update deps (@IvanGoncharov)
- #2890 Update deps (@IvanGoncharov)
- #2922 Update deps (@IvanGoncharov)
- #2927 build: commit package-lock for drop support node10 (@saihaj)
- #2960 Update deps (@IvanGoncharov)
- #2961 flow-typed: update Mocha typings (@IvanGoncharov)
- #2993 Update deps (@IvanGoncharov)
- #3017 Update deps (@IvanGoncharov)
- #3020 Update deps (@IvanGoncharov)
- #3037 Update deps (@IvanGoncharov)
- #3057 Update deps (@IvanGoncharov)
Committers: 7
- Brian Warner(@brianwarner)
- Christoph Zwerschke(@Cito)
- Ivan Goncharov(@IvanGoncharov)
- Kei Kamikawa(@Code-Hex)
- Lee Byron(@leebyron)
- Rob Richard(@robrichard)
- Saihajpreet Singh(@saihaj)