メインコンテンツへスキップ
バージョン: v18.0.0

中継リゾルバーの有効化

中継リゾルバーは依然として中継の試験的機能です。そのため、有効にするために追加の設定が必要です。さらに、ドキュメント内のAPIが、コミュニティによって保守されているTypeScriptの型に反映されていない場合があります。

ランタイム

中継リゾルバーは、実験的な LiveResolverStore を中継ストアとして使用し、ENABLE_RELAY_RESOLVERS ランタイム機能フラグを有効にすることでランタイムコードで有効にする必要があります

import { Environment, RecordSource, RelayFeatureFlags } from "relay-runtime";
// highlight-next-line
import LiveResolverStore from "relay-runtime/lib/store/live-resolvers/LiveResolverStore";

RelayFeatureFlags.ENABLE_RELAY_RESOLVERS = true;

// It is recommended to log errors thrown by Resolvers
function fieldLogger(event) {
if(event.kind === "relay_resolver.error") {
// Log this somewhere!
console.warn(`Resolver error encountered in ${event.owner}.${event.fieldPath}`)
console.warn(event.error)
}
}

const environment = new Environment({
network: Network.create(/* your fetch function here */),
store: new LiveResolverStore(new RecordSource()),
requiredFieldLogger: fieldLogger
});

// ... create your Relay context with your environment

コンパイラ

中継コンパイラの設定で "enable_relay_resolver_transform" 機能フラグを有効にする必要があります

relay.config.json
{
"src": "./src",
"schema": "./schema.graphql",
"language": "typescript",
"featureFlags": {
// highlight-next-line
"enable_relay_resolver_transform": true
}
}