blitz-js / blitz

⚡️ The Missing Fullstack Toolkit for Next.js
https://Blitzjs.com
MIT License
13.52k stars 790 forks source link

BigInt in Session causes Do not know how to serialize a BigInt #3281

Open siddharthsharma94 opened 2 years ago

siddharthsharma94 commented 2 years ago

What is the problem?

createSessionToken uses JSON.stringify on the publicData being passed in, which doesn’t support BigInt. Seems like a use case for superjson instead?

Paste all your error logs here:

TypeError Do not know how to serialize a BigInt error stack: • blitzjs-core-server.cjs.dev.js:805 createSessionToken node_modules/@blitzjs/core/server/dist/blitzjs-core-server.cjs.dev.js:805:29

• blitzjs-core-server.cjs.dev.js:1167 createNewSession node_modules/@blitzjs/core/server/dist/blitzjs-core-server.cjs.dev.js:1167:24 • blitzjs-core-server.cjs.dev.js:729 $create


### Paste all relevant code snippets here:

TypeError  Do not know how to serialize a BigInt
error stack:
• blitzjs-core-server.cjs.dev.js:805 createSessionToken
    node_modules/@blitzjs/core/server/dist/blitzjs-core-server.cjs.dev.js:805:29

• blitzjs-core-server.cjs.dev.js:1167 createNewSession
    node_modules/@blitzjs/core/server/dist/blitzjs-core-server.cjs.dev.js:1167:24
• blitzjs-core-server.cjs.dev.js:729 $create

What are detailed steps to reproduce this?

  1. Use BigInt in Schema
  2. Create a session variable with BigInt

Run blitz -v and paste the output here:

macOS Monterey | darwin-arm64 | Node: v16.10.0

blitz: 0.45.3 (global)
blitz: 0.45.3 (local)

  Package manager: yarn 
  System:
    OS: macOS 12.3.1
    CPU: (8) arm64 Apple M1
    Memory: 263.78 MB / 16.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 16.10.0 - ~/.nvm/versions/node/v16.10.0/bin/node
    Yarn: 1.22.18 - ~/.yarn/bin/yarn
    npm: 7.24.0 - ~/.nvm/versions/node/v16.10.0/bin/npm
    Watchman: 2022.03.14.00 - /usr/local/bin/watchman
  npmPackages:
    @prisma/client: 3.12.0 => 3.12.0 
    blitz: 0.45.3 => 0.45.3 
    prisma: 3.12.0 => 3.12.0 
    react: 18.0.0-beta-149b420f6-20211119 => 18.0.0-beta-149b420f6-20211119 
    react-dom: 18.0.0-alpha-5ca4b0433-20211020 => 18.0.0-alpha-5ca4b0433-20211020 
    typescript: ~4.5 => 4.5.5 

Please include below any other applicable logs and screenshots that show your problem:

cc @dillonraphael No response

beerose commented 2 years ago

Todo: apply changes from https://github.com/blitz-js/blitz/pull/3289 in Toolkit

etcimon commented 1 year ago

Prisma supports BigInt since a while now. Can we use SuperJson to serialize the publicData? It looks like the merge request went stale and the stuff was moved to blitz-auth now.