@aws-amplify/graphql-transformer-core
Version:
A framework to transform from GraphQL SDL to AWS CloudFormation.
58 lines • 2.96 kB
TypeScript
import { AppSyncAuthConfiguration, TransformerPluginProvider, TransformHostProvider, TransformerLog, NestedStackProvider, SynthParameters, LogConfig } from '@aws-amplify/graphql-transformer-interfaces';
import type { AssetProvider, StackManagerProvider, TransformParameterProvider, TransformParameters, DataSourceStrategiesProvider, RDSLayerMappingProvider, RDSSNSTopicMappingProvider } from '@aws-amplify/graphql-transformer-interfaces';
import { DocumentNode } from 'graphql/language';
import { Construct } from 'constructs';
import { ResolverConfig } from '../config/transformer-config';
import { GraphQLApi } from '../graphql-api';
import { TransformerOutput } from '../transformer-context/output';
import { UserDefinedSlot } from './types';
export interface GraphQLTransformOptions {
readonly transformers: TransformerPluginProvider[];
readonly stackMapping?: StackMapping;
readonly authConfig?: AppSyncAuthConfiguration;
readonly transformParameters?: Partial<TransformParameters>;
readonly host?: TransformHostProvider;
readonly userDefinedSlots?: Record<string, UserDefinedSlot[]>;
readonly resolverConfig?: ResolverConfig;
}
export interface TransformOption extends DataSourceStrategiesProvider, RDSLayerMappingProvider, RDSSNSTopicMappingProvider {
scope: Construct;
nestedStackProvider: NestedStackProvider;
parameterProvider?: TransformParameterProvider;
assetProvider: AssetProvider;
synthParameters: SynthParameters;
schema: string;
logging?: true | LogConfig;
}
export type StackMapping = {
[resourceId: string]: string;
};
export declare class GraphQLTransform {
private readonly options;
private transformers;
private stackMappingOverrides;
private readonly authConfig;
private readonly resolverConfig?;
private readonly userDefinedSlots;
private readonly transformParameters;
private seenTransformations;
private logs;
constructor(options: GraphQLTransformOptions);
preProcessSchema(schema: DocumentNode): DocumentNode;
transform({ assetProvider, dataSourceStrategies, nestedStackProvider, parameterProvider, rdsLayerMapping, rdsSnsTopicMapping, schema, scope, sqlDirectiveDataSourceStrategies, synthParameters, logging, }: TransformOption): void;
protected generateGraphQlApi(stackManager: StackManagerProvider, assetProvider: AssetProvider, synthParameters: SynthParameters, output: TransformerOutput, transformParameters: TransformParameters, logging?: true | LogConfig): GraphQLApi;
private collectResolvers;
private transformObject;
private transformField;
private transformArgument;
private transformInterface;
private transformScalar;
private transformUnion;
private transformEnum;
private transformEnumValue;
private transformInputObject;
private transformInputField;
getLogs(): TransformerLog[];
private ensureNoneDataSource;
}
//# sourceMappingURL=transform.d.ts.map