nexus/CHANGELOG.md

561 lines
15 KiB
Markdown
Raw Permalink Normal View History

# Changelog
### 0.18.0
### BREAKING CHANGES
#### Remove resolver shorthands
#592 → f609380
Resolver shorthand API is now removed. The following will now not typecheck:
```ts
t.string('foo', () => ... )
```
Instead use:
```ts
t.string('foo', { resolve: () => ... })
```
Runtime support is still intact but will result in a logged warning. Runtime support will be removed in the next Nexus release.
<br/>
#### Remove dynamic output builtins
9f01342 → #590
`ext` is no longer exported. The `relayConnectionField` and `collectionField` dynamic output methods have been removed. In their place try the `connection` plugin.
<br/>
<br/>
### Features
- b19e83e Allow specifying a node module for type imports (#604)
### Fixes
- 2e93338 deduplicate interfaces implementing interfaces (#608)
- 0064dc9 #588, #384 non-null list items & connection nullability (#598)
### Improvements
- f609380 (breaking) remove resolver shorthands (#592)
- 9f01342 (breaking) remove dynamic output builtins (#590)
### Docs
- ca74442 update zeit example
- 2de6f89 document subscription type (#593)
### Chores
- 6e06f8f Fixes broken windows tests (#607)
### 0.17.0
#### Features
- 9bfdf2c allow interfaces to implement other interfaces (#496)
- b4e0deb add onObjectDefinition / onInputObjectDefinition (#533)
- f8d164a error feedback if root typing path is invalid (#557)
This may be a breaking change if you were relying on pointing root typing path to a non-file for some reason in the past. We think for almost all users this will not be a breaking change however.
#### Fixes
- 10c5f8b "union too complex to represent" for large union types (#571)
- cc12ec1 (connection plugin) add deprecated, description, nullable to connectionField (#578)
- de7cdfd (connection plugin) various fixes (#569)
- Global connection field extensions were never executed
- Typings of global connection field extension (root, args and the resolver return type was wrong)
- Typings of local connection field extension (everything was any)
- 2edfcfa subscription type static typings (#564)
- 10208e3 input fields with default should not be typed as optional (#563)
#### Improvements
- 083c1ad test: capture union too large error
- 76e6eff test: improve connection plugin tests
#### Docs
- 489b5ab docs: Fix ts-node-dev flag in the docs (#529)
- fb1216e header media query (#554)
- 2aaaf5c fix nullabillity guard docs (#575)
- 980920a fix for outdated prisma-labs link in the documentation #518 (#572)
- 9960015 Update 06-chapter-5-persisting-data-via-prisma.mdx (#574)
- e65f6ef Remove references to nexus framework (#528)
- c68a94c fix typo in migration guide (#527)
- 69af932 fix typo in nexus framework migration guide (#526)
- 8cea40a Fix a prisma client call b/c latest Prisma Client (#535)
- 0a6db6a fix link to announcement (#544)
- e2cfcb0 fix typo in 02-chapter-1-setup-and-first-query docs (#547)
- ebdb55a Update docs content (#553)
- 00fb8a6 fix duplicate in 020-nexus-framework-users.mdx (#561)
- 04fe2f5 touch api/schema.ts (#562)
- ceeea8c fix typos
- d4d32f7 fix migration guide ts-node command
- 0dd8ea3 Fix a typo in 030-neuxs-framework-prisma-users.mdx (#537)
- d1bb819 Remove framework mention, update link (#525)
#### Chores
- 393de57 update test in trunk.yml
- a8df05c Use codecov/codecov-action GH action (#534)
- 85bf467 Restoring codecov (#532)
- 8f3189c Keep prettier config local to the project (#531)
- 2bceeb9 Bumping deps & adding scripts for running examples (#530)
- 27d5b82 update url in package.json (#524)
### 0.16.0
#### BREAKING CHANGES
- c7eff85 output types & list items are now nullable by default (#508)
- 0ee644b upgrade to graphql v15 (#486)
#### MIGRATION GUIDE
As Nexus Schema just made output types and list items nullable by default, there's a couple of changes you need to do to produce the same schema as before the update.
**Changing global defaults to revert to non-nullable output types**
```diff
import { makeSchema } from '@nexus/schema'
makeSchema({
+ nonNullDefaults: {
+ output: true
+ }
})
```
**Changing type-level configuration to revert to non-nullable output types**
```diff
import { objectType } from '@nexus/schema'
objectType({
name: 'User',
nonNullDefaults: {
+ output: true
}
definition(t) {
/* ... */
}
})
```
**Updating lists output types to be non-nullable**
```diff
import { objectType } from '@nexus/schema'
objectType({
name: 'User',
definition(t) {
t.field('posts', {
- list: true
+ list: [true]
})
}
})
```
#### Features
- c7eff85 (breaking) output types & list items are now nullable by default (#508)
- efa96cb new docs site (#500)
- 0ee644b (breaking) upgrade to graphql v15 (#486)
#### Fixes
- e4a68e5 config file fixed (#522)
- 646879d change netlify config (#519)
- 796add7 Github link
- b7ecbb0 Logo URL and Github link
- 2327a94 force release
- 3c38a65 message for missing resolveType in interfaces (#495)
#### Improvements
- 2fef488 tmp: tmp/index.html
- 99b34f6 temp: Temporary redirects for old nexus.js.org (#514)
- 5e156ac docs: update asNexusMethod example with the changes from #473 (#476)
#### Chores
- a44dbe4 fix link
- f8288b5 fix link
- 58c3ad9 release changes
- ddb1211 upgrade dripip
#### Unspecified Changes
- 4bd0ffc Update netlify.toml (#521)
### 0.15.0
#### BREAKING CHANGES
- 1d97b78 allow asNexusMethod to specify TS type (#473)
The global TS type `NexusGenRootTypes` no longer contains scalars. All scalars now live under a new global TS type named `NexusGenScalars`.
```ts
// before
let foo: NexusGenRootTypes['String']
```
```ts
// after
let foo: NexusGenScalars['String']
```
- 122b0e1 base `hasNextPage` in connectionPlugin upon gt not gte (#458)
#### Features
- 1d97b78 (breaking) allow asNexusMethod to specify TS type (#473)
- Create a new `NexusGenScalars` for all scalar types
- Remove scalars from `NexusGenRootTypes` (might be a breaking change, need review)
- Use the `NexusGenScalars` for all non specified (base GraphQL) scalars in `input` and `output` types
- Add `rootTyping` parameter to `asNexusMethod` to allow the user to specify it, otherwise it will fallback to the `backingTypeMap`
- 903ceb8 add subscriptionType (#462)
- ee7c371 use prettier api to load config (#460)
- 9c8e776 support typescript 3.9 (#459)
- 122b0e1 (breaking) base hasNextPage in connectionPlugin upon gt not gte (#458)
#### Fixes
- 61eccca MaybePromiseDeep case of null with .then (#475)
- 5b900b1 connectionPlugin config: allow first and last to be zero (#436)
#### Improvements
- bf0df64 tests: add windows to os matrix (#405)
#### Chores
- f0c163a move renovate config into github dir
- 78af756 format with prisma-labs prettier config (#461)
- fe2553c Update repo name in examples readme (#443)
- b3abdb9 dripip managed version
### 0.14.0
#### Features
- 133c4a4 publish esm builds (#438)
- a6c29ba allow control over nexus schema import id (#408)
#### Fixes
- 8c7615e return types of queryField and mutationField (#415)
- 035e0a1 typegen stable path generation with Windows (#400)
#### Improvements
- 286bd66 improve: update warning to use new package name
- 358c33e refactor: add typegen utils module
- 72a13a9 refactor: update lang headers
- cd08bb2 refactor: update lang headers
- b9df04b refactor: getOwnPackage util (#409)
- 3156f9b refactor: sort imports
#### Chores
- 8c7b047 setup dripip for release scripts
- 7fce3dc fix links (#433)
- 57f1c7c update example lock file, fix tests
- 6e58acd Disable Renovate (#430)
- 0518101 fix typo on readme file (#420)
- 70d2abb fix link
- d74f997 examples update
- 17fad3a update snapshots
- 9deb327 setup renovate
- a10463e update lockfile entries (#404)
- ccae81a update changelog
#### Unspecified Changes
- d597086 v0.14.0-next.2
- 63e9ea0 v0.14.0-next.1
2020-03-31 04:39:33 +08:00
### 0.13.1
- fix: remove transition postinstall message
2020-03-31 04:35:21 +08:00
### 0.13.0
The first release of Nexus schema under the package name `@nexus/schema`
2020-03-31 03:11:08 +08:00
### 0.12.0
The last release of Nexus schema under the package name `nexus`
See previous release notes for details on what's new in `0.12.0`
2020-03-20 08:51:16 +08:00
### 0.12.0-rc.14
- improve: add post-install framework notice (#398)
### 0.12.0-rc.13
- improve: add post-install framework notice (#398)
- fix: typegen always use manifest for package import (#382)
### 0.12.0-rc.12
- feat: respect manifest name in typegen imports (#380)
2020-02-12 00:55:50 +08:00
### 0.12.0-rc.11
- fix: TypeScript error from missing `graphql-query-complexity` import (#376)
2020-02-11 08:13:49 +08:00
### 0.12.0-rc.10
- feat: add `queryComplexityPlugin` (#369)
- feat: expose `name` on `fieldConfig` (#368)
2020-01-23 10:36:30 +08:00
### 0.12.0-rc.9
- fix: iteration if # nodes requested > connection length
### 0.12.0-rc.8
- fix: typings for `connectionPlugin` node field (#364)
### 0.12.0-rc.7
2020-01-23 10:36:30 +08:00
- feat: Added `connectionPlugin` (#324)
### 0.12.0-rc.6
- fix: #329: Union members typing (#363)
- fix: #361, error when using interfaceType & implements (#362)
2019-11-20 21:18:34 +08:00
### 0.12.0-rc.5
- feat: Add `customPrintSchemaFn` to makeSchema config
2019-11-08 06:38:00 +08:00
### 0.12.0-rc.4
- refactor: Remove NEXUS_SHOULD_GENERATE_ARTIFACTS env var
- feat: Add `shouldExitAfterGenerateArtifacts`
- Warn on missing `outputs` in `makeSchema` config
- Type-level `defaultResolver` has been removed, similar functionality can be achieved with the `onCreateFieldResolver` plugin API
### 0.12.0-rc.2, rc.3
- fix: bug in nullability check plugin
### 0.12.0-rc
- feat(deps): Bumps the default minimum version of graphql-js to 14.5.0
Nexus uses the new [`extensions` property](https://github.com/graphql/graphql-js/pull/2097) on types to store metadata provided to Nexus types, in order to make them usable by plugins.
- feat: Adds "Plugins" API, [see the docs](docs/api-plugins.md) for more info on what all these can help accomplish
- feat(plugin): Add `nullabilityGuardPlugin`. See [the docs](docs/plugin-nullabilityGuard.md) for more info
- feat(plugin): Add `fieldAuthorizePlugin`. See [the docs](docs/plugin-fieldAuthorize.md) for more info
This is the same behavior as before, but implemented more flexibly as a plugin. This will be
automatically added if no plugins are specified, otherwise it will need to be imported & added
to `makeSchema`.
- feat(schema): Adds `shouldExitAfterGenerateArtifacts` option to `makeSchema`
The `shouldExitAfterGenerateArtifacts` makes it possible to exit after the types are generated,
useful if you do not check a schema artifact into source control, but wish to generate before the code runs.
- refactor: Removes `nexusWrappedType`
This was an internal implementation detail which should not affect end users
- refactor: Removes `t.modifyType` API
This may not have ever worked, it was only intended to modify fields on an `objectType` which were
originally implemented by an interface. Please open an issue if this is a breaking change for you, so we
can understand the use-case and design a better API.
- test: Improved code coverage, adds base threshold to new PRs
2019-10-08 09:03:25 +08:00
2019-10-17 05:06:44 +08:00
#### beta.14
- feat(plugins): onInstall hook (#236)
- feat(deps): add support for TypeScript 3.6 (#255)
2019-10-09 10:13:18 +08:00
#### beta.13
- fix(typegen): explicitly await removeFile before write (#254)
2019-10-08 09:52:00 +08:00
#### beta.12
2019-10-08 09:03:25 +08:00
- feat(config): <strike>env var for should-generate-artifacts (#244)
2019-10-08 09:03:25 +08:00
You can now set the `shouldGenerateArtifacts` config option by env var
`NEXUS_SHOULD_GENERATE_ARTIFACTS=true|false`.</strike> (removed, see 0.12 release notes)
2019-10-08 09:03:25 +08:00
- fix(typegen): delete prev file before writing next (#252)
Before, sometimes, you would have to open the typegen file to make VSCode pick
up its changed version. This change should reduce/remove the need for this
workaround.
* feat: <strike>by default typegen as an @types package (#230)
2019-10-08 09:03:25 +08:00
BREAKING CHANGE
You should not have to configure typegen manually anymore. We
generate by default into `node_modules/@types/nexus-typegen` which TypeScript
will automatically pick up. If you use the `types` `tsc` compiler option
however, make sure to include `nexus-typegen`.
This is a breaking change because typegen is enabled even when config
`outputs` have not been configured (before, they were required). The
heuristics of `shouldGenerateArtifacts` remain unchanged.</strike> (removed, see 0.12 release notes)
2019-10-08 09:03:25 +08:00
2019-04-27 04:30:37 +08:00
### 0.11.7
- Types: Allow Promise return value for subscriptions
2019-03-27 05:13:38 +08:00
### 0.11.6
- More for #55, incorrect return types.
2019-03-18 23:13:35 +08:00
### 0.11.5
- Fix lists w/ configurable depth/nullability, #89
2019-03-15 06:01:29 +08:00
### 0.11.4
- Fix import path gen on windows, #84
- More improvements to `MaybePromiseDeep`
2019-03-13 07:44:21 +08:00
### 0.11.3
- Fix type for passing `NexusWrappedType` as arg type #81
- Fix types on `MaybePromiseDeep`
2019-03-11 01:37:30 +08:00
### 0.11.2
- Fix `mkdir` for versions of node without recursive option (< 10.15.1).
### 0.11.1
- Export `queryField` & `subscriptionField` on public API
2019-03-08 08:49:00 +08:00
### 0.11.0
- Fix allowing nested input types (#68), fixes default type definitions for input fields
- Add `queryField` abstraction to mirror `mutationField`
- Alpha release of `subscriptionField` (working, but undocumented) for GraphQL subscriptions
### 0.10.0
- Add an optional field level authorize #32, part of a more robust authorization story in #23
- Add mutationField abstraction, #46
### 0.9.17
- More for #55, type error on Promise/null resolve
2019-02-23 06:49:25 +08:00
### 0.9.16
- Fix #52, args being incorrectly imported as types
- Feature: extendInputType, #51
2019-02-23 03:48:47 +08:00
### 0.9.15
- Fix #55, type error for Promise numeric field return
2019-02-19 07:06:18 +08:00
### 0.9.14
- Fix #44, add correct typings for union type
### 0.9.13
- Fix #41, replace `path.sep` with '/' in `typegenAutoConfig`
### 0.9.12
- Fix #33, consistent `t.list` chaining output for inputs & scalars
- Fix #34, include used imports on SDL converter
- Fix #27, args output for SDL converter
- Other SDL converter cleanup: reference types rather than strings, default values
### 0.9.11
- Fix typing regression in 0.9.10
### 0.9.10
- Fix #26, incorrect typing on boolean return type
### 0.9.9
- `TypegenConfigSourceModule`: `sources.module` -> `sources.source`
2019-02-05 22:07:45 +08:00
### 0.9.8
- Fix `MaybePromiseDeep` typing for non-object values
- `NexusGenCustomScalarMethods` -> `NexusGenCustomDefinitionMethods` for when we allow non-scalars to be `asNexusMethod`
2019-02-04 10:04:26 +08:00
### 0.9.7
2019-02-05 22:07:45 +08:00
- Fix `MaybePromiseDeep` typing
2019-02-04 10:04:26 +08:00
- Add `asNexusMethod` to annotate GraphQLScalarType
### 0.9.6
- Fallback Query construction to `missingType` internally
2019-02-03 06:44:06 +08:00
### 0.9.5
- Fix `nonNullDefaults` on schema
- Finalize objects as they are constructed
- Changes to a few internal methods
2019-02-03 02:42:28 +08:00
### 0.9.4
- Internal: nexusWrappedFn -> nexusWrappedType
### 0.9.3
- Minor internal changes
### 0.9.2
- Fixes for conditional nullability check
- Fixes for return type of MaybePromiseDeep
- Docs cleanup
### 0.9.1:
- General deploy/package.json cleanup
2019-01-31 23:56:45 +08:00
### 0.9.0:
- Major API changes. See #16 for more info
### 0.7.0-alpha.1
Changed the type-signatures around so fields which are not defined in the backing types associated with the
### 0.6.2
Initial release