wobsoriano / fastify-next-auth

Auth.js plugin for Fastify.
MIT License
49 stars 3 forks source link

Api not compiling #3

Open statusunknown418 opened 1 year ago

statusunknown418 commented 1 year ago

The package doesn't compile due to a module not being exported.

See the issue here, with a reproducible example

I opened an issue on next-auth, but it actually seems to be an issue from the package itself so I'm forwarding it here:

wobsoriano commented 1 year ago

Can you try v0.3.0 and update me if you'll still encounter this issue?

statusunknown418 commented 1 year ago

still having a similar issue, could be fixed by setting type: "module" in the package.json makes it kinda work but then prisma throws more errors

> tsx ./index.tsx

/Users/a3tech/Developer/Turing/Dimension.dev/dimension-turbo/packages/api-v2/index.tsx:15
const prisma = new PrismaClient();
               ^

TypeError: PrismaClient is not a constructor
    at <anonymous> (/Users/a3tech/Developer/Turing/Dimension.dev/dimension-turbo/packages/api-v2/index.tsx:15:16)
    at ModuleJob.run (node:internal/modules/esm/module_job:193:25)

Node.js v19.8.1

Note: I'm using tsx instead of ts-node-dev

Using ts-node-dev without type:"module" throws this again

> ts-node-dev ./index.ts

[INFO] 09:20:17 ts-node-dev ver. 2.0.0 (using ts-node ver. 10.9.1, typescript ver. 5.0.2)
Error: Package subpath './providers/github' is not defined by "exports" in /Users/a3tech/Developer/Turing/Dimension.dev/dimension-turbo/packages/api-v2/node_modules/@auth/core/package.json
    at new NodeError (node:internal/errors:399:5)
    at exportsNotFound (node:internal/modules/esm/resolve:266:10)
    at packageExportsResolve (node:internal/modules/esm/resolve:597:13)
    at resolveExports (node:internal/modules/cjs/loader:579:36)
    at Function.Module._findPath (node:internal/modules/cjs/loader:648:31)
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1076:27)
    at Function.Module._load (node:internal/modules/cjs/loader:934:27)
    at Module.require (node:internal/modules/cjs/loader:1157:19)
    at require (node:internal/modules/helpers:119:18)
    at Object.<anonymous> (/Users/a3tech/Developer/Turing/Dimension.dev/dimension-turbo/packages/api-v2/index.ts:2:1)
[ERROR] 09:20:24 Error: Package subpath './providers/github' is not defined by "exports" in /Users/a3tech/Developer/Turing/Dimension.dev/dimension-turbo/packages/api-v2/node_modules/@auth/core/package.json
wobsoriano commented 1 year ago

Try to import prisma like this

import PrismaClientPkg from '@prisma/client'
const PrismaClient = PrismaClientPkg.PrismaClient

const prisma = new PrismaClient()
statusunknown418 commented 1 year ago

Still getting same errors. As a sidenote, the app is a turborepo so the prisma imports are made to @acme/db, looking like this

import * as db from "@acme/db";

const PrismaClient = db.PrismaClient;

const prisma = new PrismaClient();

where @acme/db/index exports this

import { PrismaClient } from "@prisma/client";

declare global {
  // eslint-disable-next-line no-unused-vars, no-var
  var prisma: PrismaClient | undefined;
}

export const prisma =
  global.prisma ||
  new PrismaClient({
    log: process.env.NODE_ENV === "development" ? ["query", "error", "warn"] : ["error"],
  });

if (process.env.NODE_ENV !== "production") {
  global.prisma = prisma;
}

export * from "@prisma/client";

With tsx index.ts

> tsx index.ts

/Users/a3tech/Developer/Turing/Dimension.dev/dimension-turbo/packages/api-v2/index.ts:15
const prisma = new PrismaClient();
               ^

TypeError: PrismaClient is not a constructor
    at <anonymous> (/Users/a3tech/Developer/Turing/Dimension.dev/dimension-turbo/packages/api-v2/index.ts:15:16)
    at ModuleJob.run (node:internal/modules/esm/module_job:193:25)

Node.js v19.8.1

with ts-node-dev index.ts

> ts-node-dev index.ts

[INFO] 10:59:05 ts-node-dev ver. 2.0.0 (using ts-node ver. 10.9.1, typescript ver. 5.0.2)
Compilation error in /Users/a3tech/Developer/Turing/Dimension.dev/dimension-turbo/packages/api-v2/index.ts
Error: Must use import to load ES Module: /Users/a3tech/Developer/Turing/Dimension.dev/dimension-turbo/packages/api-v2/index.ts
    at Object.<anonymous> (/Users/a3tech/Developer/Turing/Dimension.dev/dimension-turbo/packages/api-v2/index.ts:1:7)
    at Module._compile (node:internal/modules/cjs/loader:1275:14)
    at Module._compile (/Users/a3tech/Developer/Turing/Dimension.dev/dimension-turbo/node_modules/.pnpm/source-map-support@0.5.21/node_modules/source-map-support/source-map-support.js:568:25)
    at Module.m._compile (/private/var/folders/5q/1112yt4d1bb57k0118bb6q840000gn/T/ts-node-dev-hook-886512356905123.js:69:33)
    at Module._extensions..js (node:internal/modules/cjs/loader:1329:10)
    at require.extensions..jsx.require.extensions..js (/private/var/folders/5q/1112yt4d1bb57k0118bb6q840000gn/T/ts-node-dev-hook-886512356905123.js:114:20)
    at require.extensions.<computed> (/private/var/folders/5q/1112yt4d1bb57k0118bb6q840000gn/T/ts-node-dev-hook-886512356905123.js:71:20)
    at Object.nodeDevHook [as .ts] (/Users/a3tech/Developer/Turing/Dimension.dev/dimension-turbo/node_modules/.pnpm/ts-node-dev@2.0.0_@types+node@18.11.18_typescript@5.0.2/node_modules/ts-node-dev/lib/hook.js:63:13)
    at Module.load (node:internal/modules/cjs/loader:1133:32)
    at Function.Module._load (node:internal/modules/cjs/loader:972:12)
[ERROR] 10:59:05 Error: Must use import to load ES Module: /Users/a3tech/Developer/Turing/Dimension.dev/dimension-turbo/packages/api-v2/index.ts
^C ELIFECYCLE  Command failed.