1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

nexusがtypescriptを適用してくれない!!

Last updated at Posted at 2021-08-30

趣味でgraphqlを触っていて、技術選定として、
ApolloServer + Prisma + nexusの組わせを
使っていたが、nexusの

####型作成コマンド

ts-node --transpile-only src/schema // src/schemaのパスは各自のshcema定義ファイルを指定

によるtypesが適用されなかった。

原因は以下のコードだった。

const schema = makeSchema({
    types: [ NexusPrismaScalars, types ],
    plugins: [
        connectionPlugin(),
        fieldAuthorizePlugin()
    ],
    outputs: { // こいつが原因!!!!!
        schema: path.join(__dirname, 'generated/schema.gen.graphql'),
        typegen: path.join(__dirname, 'generated/nexusTypes.gen.ts'),
    },
    contextType: {
        module: path.join(__dirname, './types/context.ts'),
        export: "Context"
    },
    
    sourceTypes: {
        modules: [
            { module: "@prisma/client", alias: "prisma" },
        ]
    },

})

どうやら型作成コマンド時に、 outputsのパスが、
型作成コマンドで指定したスキーマファイルのパスと同じ階層か、
指定したパス以下の階層を指定してやらなければ適用されないらしい。
もしそれでもtypescriptのタイプが敵意されなかったらouputsの
パスをいじくってみると正常に動くと思う... ...

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?