Skip to content
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

Is this a turborepo issue? #64

Closed
1 task done
dugan-dev opened this issue Feb 10, 2024 · 4 comments
Closed
1 task done

Is this a turborepo issue? #64

dugan-dev opened this issue Feb 10, 2024 · 4 comments
Labels
question Further information is requested

Comments

@dugan-dev
Copy link

dugan-dev commented Feb 10, 2024

Is there an existing issue for this?

  • I have searched the existing issues and found nothing that matches

Library version (optional)

6.1.0

Ask a question

I've been using next-safe-action since v3 and think this is a great tool. Please keep up the great work!

I recently migrated to a turborepo mono repo and am using pnpm as the package manager. In VSCode when looking at the safe-action file or the safe actions themselves code and when I try to build I get this error.

vbpay:build: Type error: The inferred type of 'action' cannot be named without a reference to '../../node_modules/next-safe-action/dist/index-7AaVMS6R.mjs'. This is likely not portable. A type annotation is necessary.
nextjs:build:
nextjs:build: 2 | import { createSafeActionClient } from "next-safe-action";
nextjs:build: 3 |
nextjs:build: > 4 | export const action = createSafeActionClient({
nextjs:build: | ^
nextjs:build: 5 | async middleware() {
nextjs:build: 6 | const { userId } = auth();
nextjs:build: 7 | if (userId === null) {
nextjs:build:  ELIFECYCLE  Command failed with exit code 1.

When I open ../../node_modules/next-safe-action/dist/index-7AaVMS6R.mjs I saw it had an error bc it was importing @decs/typeschema which wasn't installed so i installed that but still getting the same error.

The funny thing is everything works perfectly fine when I run in dev mode. Of course, if I have a type mismatch between my action schema and type im passing in its brutal because of these errors the typing doesn't work for me to know if its a real error or not.

Additional context

I thought maybe it was pnpm issue but I get the same error when using npm as the package manager for the turbo repo mono repo.

@dugan-dev dugan-dev added the question Further information is requested label Feb 10, 2024
@TheEdoRan
Copy link
Owner

Hi @dugan-dev, it could be. Can you please provide a link to a repo with a minimal reproducible example of this issue? Thanks!

@dugan-dev
Copy link
Author

@TheEdoRan As requested here a link to a repo with the issue.

https://github.com/dugan-dev/safe-action-issue-reproduction

@TheEdoRan
Copy link
Owner

TheEdoRan commented Mar 11, 2024

Sorry for the delay and thank you for providing a reproduction link. This is a very tricky one, and I still have to find a way to properly solve it. This problem affects multiple projects, and I am unsure if in this case it's caused by tsup bundling, a TypeScript config, or simply using pnpm in a monorepo. It's related (at least) to these TypeScript issues, and a number of others in multiple repos:

As a workaround, suggested by some users, setting these two options in tsconfig.json seem to work, but it's certainly not that great of a solution, and if you need to emit declaration files when building the project you can't use them. Anyways, here they are:

{
  "compilerOptions": {
    "declaration": false,
    "declarationMap": false,
  }
}

Let me know if this works for you as well, thanks.

@dugan-dev
Copy link
Author

@TheEdoRan This solved my problem. Thank you so much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants