@chillicream/nitro-express-middleware
Version:
Express middleware for Nitro GraphQL IDE
41 lines (40 loc) • 1.66 kB
text/typescript
/// <reference types="express" />
interface HttpHeaderDictionary {
readonly [key: string]: string | string[];
}
type SubscriptionProtocol = "auto" | "graphql-transport-ws" | "graphql-ws" | "graphql-sse";
interface Options {
readonly title?: string;
readonly disableTelemetry?: boolean;
readonly gaTrackingId?: string;
readonly useBrowserUrlAsEndpoint: boolean;
readonly includeCookies?: boolean;
readonly useGet?: boolean;
readonly subscriptionProtocol?: SubscriptionProtocol;
readonly sdlEndpoint?: string;
readonly endpoint?: string;
readonly httpHeaders?: HttpHeaderDictionary;
readonly graphQLDocument?: string;
readonly variables?: Record<string, any>;
}
type Config = {
readonly mode: "cdn";
/** Endpoint **url** for the `cdn` hosted version. */
readonly target?: {
baseUrl: string;
version?: string;
} | string;
readonly options?: Options;
} | {
readonly mode: "embedded";
/** Package **id** or **path** for the `embedded` version. */
readonly target?: string;
readonly options?: Options;
};
declare function combineMiddlewares(...middlewares: Handler[]): Handler;
declare function createRootMiddleware(): Handler;
declare function createConfigMiddleware(options?: Options): Handler;
declare function cdnMiddleware(target: string, options?: Options): Handler;
declare function selfMiddleware(target: string, options?: Options): Handler;
declare function nitroMiddleware({ mode, target, options, }: Config): Handler;
export { combineMiddlewares, createRootMiddleware, createConfigMiddleware, cdnMiddleware, selfMiddleware, nitroMiddleware as default };