openapi-to-graphql-lxwang2
Version:
Generates a GraphQL schema for a given OpenAPI Specification (OAS)
55 lines (46 loc) • 961 B
text/typescript
// Copyright IBM Corp. 2018. All Rights Reserved.
// Node module: openapi-to-graphql
// This file is licensed under the MIT License.
// License text available at https://opensource.org/licenses/MIT
/**
* Custom type definitions for GraphQL.
*/
import {
GraphQLObjectType,
GraphQLScalarType,
GraphQLInputObjectType,
GraphQLList,
GraphQLEnumType,
GraphQLUnionType
} from 'graphql'
export enum GraphQLOperationType {
Query,
Mutation
// TODO: Subscription
}
export type GraphQLType =
| GraphQLObjectType
| GraphQLInputObjectType
| GraphQLList<any>
| GraphQLUnionType
| GraphQLEnumType
| GraphQLScalarType
type Arg = {
type: any
description?: string
}
export type Args = {
[key: string]: Arg
}
export type ResolveFunction = (
root: object,
args: object,
ctx: object,
info: object
) => Promise<any> | any
export type Field = {
type: GraphQLType
resolve?: ResolveFunction
args?: Args
description: string
}