blitz
blitz copied to clipboard
BigInt in Session causes Do not know how to serialize a BigInt
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?
- Use BigInt in Schema
- 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
Todo: apply changes from https://github.com/blitz-js/blitz/pull/3289 in Toolkit
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.