* test for esm/esbuild use of nexus
* refactor: add nodeImports, remove top-level references
* Don't minify the esbuild test script
* A bit more explicit of a check on the process being node
* Use ReadonlArray when generating output types
* Add useReadonlyArrayForInputs config and use it accordingly
* Update tests snapshots
* Move useReadonlyArrayForInputs in ConfiguredTypegen option
* Add tests for useReadonlyArrayForInputs
Co-authored-by: Jason Kuhrt <jasonkuhrt@me.com>
Co-authored-by: Tim Griesser <tgriesser10@gmail.com>
- Adds a new feature mergeSchema to the makeSchema config, to consume an external schema and merge with the locally defined Nexus types
- Standardizes the consumption of external GraphQLNamedType's so they are converted into Nexus type definitions, simplifying code paths
- Order of resolution goes from local Nexus types -> graphql-js types -> external schema types
- Adds asNexusMethod to all types, allowing for any commonly used types to be used as methods, not just scalars
- Convert methods / properties from protected -> private in Builder to better detect unused code
- Add Maybe on resolveType to match GraphQL signature
- Don't create placeholder Query type when renamed
- Internal rename rootTypings -> sourceTypings
- Adds `(root, ctx)` to `validateArgs`
- Iterate all nodes if neither `first` or `last` are provided, e.g. with custom `validateArgs`
- Export additional internal fns on `connectionPlugin`
Co-authored-by: Jason Kuhrt <jasonkuhrt@me.com>
COMPLETES INITIAL DEVELOPMENT
BREAKING CHANGE:
You will now need to install Nexus Schema from the npm package `nexus` instead of `@nexus/schema`.
BREAKING CHANGES:
- `contextType` is no longer nested in `typegenAutoConfig`
- `contextType` can no longer references `sources` registered in `typegenAutoConfig`
- `contextType` API was refactored to use `module` instead of `path` and `export` instead of `name`
- `rootTyping` API was refactored to use `module` instead of `path` and `export` instead of `name`
- Renames `EnumTypeConfig` -> `NexusEnumTypeConfig` for consistency
- Adds `.asArg` on `enumType`, since these are often defined inline for one-off field args
- Fixes types so `default` type is properly inferred, eases types elsewhere so valid types which haven't been added to the manifest do not show as type errors