@aws-amplify/appsync-modelgen-plugin
Version:
46 lines • 2.63 kB
TypeScript
import { NormalizedScalarsMap } from '@graphql-codegen/visitor-plugin-common';
import { GraphQLSchema } from 'graphql';
import { SwiftDeclarationBlock } from '../languages/swift-declaration-block';
import { AppSyncModelVisitor, CodeGenField, CodeGenModel, ParsedAppSyncModelConfig, RawAppSyncModelConfig } from './appsync-visitor';
export interface RawAppSyncModelSwiftConfig extends RawAppSyncModelConfig {
emitAuthProvider?: boolean;
generateIndexRules?: boolean;
}
export interface ParsedAppSyncModelSwiftConfig extends ParsedAppSyncModelConfig {
emitAuthProvider?: boolean;
generateIndexRules?: boolean;
}
export declare class AppSyncSwiftVisitor<TRawConfig extends RawAppSyncModelSwiftConfig = RawAppSyncModelSwiftConfig, TPluginConfig extends ParsedAppSyncModelSwiftConfig = ParsedAppSyncModelSwiftConfig> extends AppSyncModelVisitor<TRawConfig, TPluginConfig> {
protected modelExtensionImports: string[];
protected imports: string[];
constructor(schema: GraphQLSchema, rawConfig: TRawConfig, additionalConfig: Partial<TPluginConfig>, defaultScalars?: NormalizedScalarsMap);
generate(): string;
generateStruct(): string;
generateEnums(): string;
generateNonModelType(): string;
generateSchema(): string;
generateCodingKeys(name: string, model: CodeGenModel, extensionDeclaration: SwiftDeclarationBlock): void;
generateModelSchema(name: string, model: CodeGenModel, extensionDeclaration: SwiftDeclarationBlock): void;
protected generatePrimaryKeyExtensions(model: CodeGenModel): string;
protected generateModelPathExtensions(model: CodeGenModel): string;
protected generateClassLoader(): string;
private getInitBody;
private getDecoderBody;
private getDecoderBodyFieldType;
private getEncoderBody;
protected getListType(typeStr: string, field: CodeGenField): string;
private generateFieldSchema;
private getSwiftModelTypeName;
private getFieldTypePathValue;
protected getEnumValue(value: string): string;
protected isFieldRequired(field: CodeGenField): boolean;
protected generateKeyRules(model: CodeGenModel): string[];
protected generatePrimaryKeyRules(model: CodeGenModel): string;
protected isHasManyConnectionField(field: CodeGenField): boolean;
protected isHasOneOrBelongsToConnectionField(field: CodeGenField): boolean;
protected generateAuthRules(model: CodeGenModel): string;
protected getWritableFields(model: CodeGenModel): CodeGenField[];
protected hasReadOnlyFields(model: CodeGenModel): boolean;
private getCodingKey;
}
//# sourceMappingURL=appsync-swift-visitor.d.ts.map