New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(ts): tweak Adapter related types #1914
Conversation
This pull request is being automatically deployed with Vercel (learn more). 🔍 Inspect: https://vercel.com/nextauthjs/next-auth/94PvhQXSUsnMqGxE1R49PdDkPAQd |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Coolios 📐
* Constrain the adapters type generics more accurately * Add types for the incoming messages to events callbacks * Code review comments from @lluia * Rebase from trunk and fix merge conflicts * Update documentation * Rip out generics * fix(build): export aliases from client (#1909) * docs(provider): update providers documentation (#1900) * docs(providers): update providers documentation - delineate clearly the 3 provider types (oauth, email, credentials) - make each section structure consistent - update the option list for every provider type - use emojis * docs(providers): instructions on new provider types * docs(providers): remove emojis To stay consistent with the rest of our documentation, for now we should not emojis on the sections of our documentation pages. * docs(providers): reword sentence Co-authored-by: Balázs Orbán <info@balazsorban.com> * docs(providers): add tip on overriding options * docs(providers): clarify `params` option usage * docs(providers): make names list inline Co-authored-by: Balázs Orbán <info@balazsorban.com> * fix(ts): unset generics defaults for overriding (#1891) Co-authored-by: Lluis Agusti <hi@llu.lu> * fix(ts): tweak Adapter related types (#1914) Contains the following squashed commits: * fix(ts): make first adapter parameter non-optional * fix(ts): make defaulted values non-optional internally * test(ts): fix linting * fix(page): don't pass params to custom signout page (#1912) * For the custom signout page addressed two issues with the query params being added to the signout url. A conditional check on the error value is now made before adding it as a query param. Also added a conditional check on the callbackUrl and if present that then gets appended as a query param to the signout api call. * Changed fix for bug #192 to have no querystring params in the custom signout page url. Co-authored-by: anubisoft <anubisoftprez@gmail.com> Co-authored-by: Lluis Agusti <hi@llu.lu> * docs(www): fix typo (#1922) * docs(provider): Update IdentityServer 4 demo configuration (#1932) * Responding to code review comments * Fix tests * Fix lint error Co-authored-by: Lluis Agusti <hi@llu.lu> Co-authored-by: Balázs Orbán <info@balazsorban.com> Co-authored-by: Kristóf Poduszló <kripod@protonmail.com> Co-authored-by: Anubisoft <1471887+anubisoft@users.noreply.github.com> Co-authored-by: anubisoft <anubisoftprez@gmail.com> Co-authored-by: Ernie Miranda <emiranda04@users.noreply.github.com> Co-authored-by: Mathis Møller <thisen-dk@hotmail.com>
Reasoning 💡
The first parameter of an adapter will always be something like a client that is used to communicate with a database, so we can require it. The second parameter will be reserved for any additional configuration for the adapter.
some parameters in the
AppOptions
interface were nullable, but in reality, we set a default for almost all of them here:next-auth/src/server/index.js
Lines 93 to 136 in 6647305
This means that the internal interface for
AppOptions
can be assumed to have much more non-nullable fields and thus playing better with theAdapter
interface and when it is used to type custom adapters.Checklist 🧢
Feel free cross items ( like this
~[] item~
) if they're irrelevant to your changes.To check an item, place an
x
in the box like so:- [x] Documentation
.Affected issues 🎟