apollo icon indicating copy to clipboard operation
apollo copied to clipboard

feat!: Support Nuxt 3

Open Diizzayy opened this issue 3 years ago • 4 comments

This PR introduces a variety of changes, many of which are in-fact breaking changes.

The first and perhaps biggest being the adaptation of Vue 3 using Vue Apollo v4

Changes

  • clientConfigs is now clients
  • authenticationType is now authType
  • tokenName defaults to apollo:<client-name>.token
  • proxyCookies flag
  • authHeader support
  • tokenStorage - ( cookie or localStorage )
  • defineApolloClient helper
  • auto imports gql wrapper and apollo composables
  • new apollo:auth hook; replaces getAuth
  • new apollo:error hook; replaces global errorHandler
  • Improved auth integration via cookie and localStorage
  • Migrated from subscriptions-transport-ws to GraphQLWsLink via graphql-ws
  • Improved loading of .gql / .graphql files (Vite & Webpack)
  • Improved SSR support
  • Proper documentation site
  • HMR for external client config files ( Greatly improves DX )
  • support for Vue Apollo Composables ie: useQuery, useMutation, useSubscription, etc...

Closes #312 Closes #297 Closes #426

Diizzayy avatar Jul 30 '22 18:07 Diizzayy

I reviewed the docs and looks good to me now.

Beautiful work ❤️

atinux avatar Aug 12 '22 07:08 atinux

Had some time to play around with this and test it out on a demo project, working really nicely. I'm not sure how useful I'll be, but if you need any help with testing or anything else let me know.

Thanks @Diizzayy and anyone else who has contributed, amazing work in putting this together!

slavanossar avatar Aug 19 '22 04:08 slavanossar

Had some time to play around with this and test it out on a demo project, working really nicely. I'm not sure how useful I'll be, but if you need any help with testing or anything else let me know.

Thanks @Diizzayy and anyone else who has contributed, amazing work in putting this together!

Would love to play with this but having difficulties with upstream dependency conflicts, how'd you install it? Would also love to know what's hindering this from being merged.

joshistoast avatar Sep 09 '22 19:09 joshistoast

Had some time to play around with this and test it out on a demo project, working really nicely. I'm not sure how useful I'll be, but if you need any help with testing or anything else let me know. Thanks @Diizzayy and anyone else who has contributed, amazing work in putting this together!

Would love to play with this but having difficulties with upstream dependency conflicts, how'd you install it? Would also love to know what's hindering this from being merged.

I was also having issues so my installation is semi-manual, I'm only using it for testing at the moment so it's not critical to have it working seamlessly just yet:

  1. Add branch as dependency
yarn add Diizzayy/apollo-module#chore/nuxt3
  1. Separately clone branch, install packages and build /dist
pnpm install && pnpm build

The build step would fail for me when doing it from node_modules/@nuxtjs/apollo within repository

  1. Copy /dist files to something like lib/apollo-module in repository
  2. Specify postinstall script in package.json
{
  "scripts": {
    "postinstall": "cp -R lib/apollo-module node_modules/@nuxtjs/apollo/dist"
  }
}

Obviously this requires completing steps 2 & 3 again as updates are pushed to the branch.

slavanossar avatar Sep 12 '22 04:09 slavanossar

@Diizzayy Thanks for putting in the effort to make it compatible with Nuxt 3! @kieusonlam, when will this change be merged into v5 and when do you plan to make v5 official?

dwin0 avatar Oct 03 '22 10:10 dwin0

@dwin94 This will be merged and released under v5 soon enough.

Diizzayy avatar Oct 03 '22 10:10 Diizzayy

waiting for a stable release of nuxt?

Luferov avatar Oct 06 '22 19:10 Luferov