Open2
Honoにgraphql-yogaをマウントする
これでできた
import { serve } from '@hono/node-server';
import SchemaBuilder from '@pothos/core';
import { createYoga } from 'graphql-yoga';
import { Hono } from 'hono';
const builder = new SchemaBuilder({});
builder.queryType({
fields: (t) => ({
healthCheck: t.string({
resolve: () => {
return 'Ok';
},
}),
}),
});
const schema = builder.toSchema();
const app = new Hono();
const yoga = createYoga({
graphqlEndpoint: '/',
fetchAPI: {
fetch,
Request,
ReadableStream,
Response,
},
schema,
});
app.mount('/graphql', yoga);
serve(app, (info) => {
console.log(`Listening on http://localhost:${info.port}/graphql`);
});
最初素朴に作ると以下のようなエラーが出たが、createYoga
にfetchAPI
オプションを渡すことで解決できた。
TypeError: The "readableStream" argument must be an instance of ReadableStream. Received an instance of bound PonyfillReadableStream
at new NodeError (node:internal/errors:399:5)
at Object.newStreamReadableFromReadableStream (node:internal/webstreams/adapters:482:11)
at Function.Readable.fromWeb (node:internal/streams/readable:1403:27)
at Server.<anonymous> (/Users/nakanoasaservice/repo/node_modules/.pnpm/@hono+node-server@1.2.0/node_modules/@hono/node-server/dist/listener.js:71:75)
at processTicksAndRejections (node:internal/process/task_queues:95:5) {
code: 'ERR_INVALID_ARG_TYPE'
}