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

Help to set this up in nextjs #307

Open
peguerosdc opened this issue May 1, 2024 · 6 comments
Open

Help to set this up in nextjs #307

peguerosdc opened this issue May 1, 2024 · 6 comments

Comments

@peguerosdc
Copy link

I am using this project as a template for my application and I can't set this library up.

I have created the following @types/my-prisma.d.ts similar to the existing @types/next-auth.d.ts with the following content:

declare global {
  namespace PrismaJson {
    type LocationJson =
      | {
          address: string;
          lat: number;
          lng: number;
        }
      | undefined;

And added this to my prisma.schema bellow the client generator:

generator json {
  provider = "prisma-json-types-generator"
}

Along with the types as comments in my models:

model Profile {
  // LocationJson
  location Json
}

But it is not working.

Can someone help me? In case it is something related to the typescript configuration, this is my tsconfig.json file:

{
  "compilerOptions": {
    "target": "es5",
    "lib": ["dom", "dom.iterable", "esnext"],
    "allowJs": true,
    "skipLibCheck": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "noEmit": true,
    "esModuleInterop": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "jsx": "preserve",
    "incremental": true,
    "plugins": [
      {
        "name": "next",
      },
    ],
    "paths": {
      "@/*": ["./*"],
    },
    "types": ["node", "jest"],
  },
  "include": [
    "next-env.d.ts",
    "**/*.ts",
    "**/*.tsx",
    ".next/types/**/*.ts",
  ],
  "exclude": ["node_modules"],
}
@peguerosdc
Copy link
Author

You can find a minimum reproducible error here. It's a commit adding prisma-json-types-generator to the template I mentioned.

@arthurfiorette
Copy link
Owner

Please provide logging details and what is not working. I do not have time to setup you maximum reproducible example.

@peguerosdc
Copy link
Author

There are no logging details because nothing is logged and what is not working is that LocationJson is not being recognized as the type of Profile.location .

I thought that setting up a project for you with all my settings was the best way to share how to reproduce it. As I don't know where the problem is, I don't know how to make it smaller, sorry.

But don't worry, if you don't have the time to run it (it'd be one line in the terminal: git clone ... & npm install & npm run dev ) just feel free to close the ticket.

@unflores
Copy link

FWIW I have the same issue. @peguerosdc I've added a comment on your link that may be useful.

@unflores
Copy link

I'm running through the same case I think right now... @peguerosdc
In running the lib I get the following:

unflores:prisma-json-types-generator (main*%) $ pnpm prisma generate --schema test/schemas/normal.prisma 
Prisma schema loaded from test/schemas/normal.prisma

✔ Generated Prisma Client (v5.13.0) to ./test/target/normal in 52ms

✔ Generated Prisma Json Types Generator (3.0.4) to ./test/schemas in 75ms

However, when I run it in my local app I don't see Generated Prisma Json Types Generator. So make sure that it is showing up in your output.

@peguerosdc
Copy link
Author

peguerosdc commented May 14, 2024

@unflores thanks for taking a look! Indeed I made a type and the comments should have three backslashes, but that only partially solved the problem.

Now profile.location is correctly typed with PrismaJson.LocationJson, but its properties are not as they all show up as any.

Anyway, I committed the ///  fix to the repo :) and Generated Prisma Json Types Generator is being logged.

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

No branches or pull requests

3 participants