@aws-amplify/appsync-modelgen-plugin
Version:
72 lines • 2.69 kB
TypeScript
import { StringValueNode } from 'graphql';
export declare type Access = 'private' | 'public' | 'DEFAULT' | 'protected';
export declare type VariableFlag = {
readonly?: boolean;
static?: boolean;
};
export declare type VariableDeclaration = {
name: string;
type: string;
flags?: VariableFlag;
value?: string;
};
export declare type PropertyFlag = VariableFlag & {
optional?: boolean;
};
export declare type Property = VariableDeclaration & {
access: Access;
flags: PropertyFlag;
};
export declare type MethodArguments = VariableDeclaration;
export declare type MethodFlag = {
static?: boolean;
};
export declare type Method = {
name: string;
args: MethodArguments[];
access: Access;
returnType: string | null;
flags: MethodFlag;
implmentation: string | null;
comment: string;
};
export declare type EnumValues = {
[name: string]: string;
};
export declare type DeclarationKind = 'class' | 'enum' | 'interface' | 'type';
export declare type DeclarationFlags = {
isDeclaration?: boolean;
shouldExport?: boolean;
};
export declare class TypeScriptDeclarationBlock {
protected _name: string;
protected _kind: DeclarationKind;
protected _extends: string[];
protected _properties: Property[];
protected _methods: Method[];
protected _flags: DeclarationFlags;
protected _comments: string;
protected _block: string;
protected _enumValues: EnumValues;
withName(name: string): TypeScriptDeclarationBlock;
export(shouldExport?: boolean): TypeScriptDeclarationBlock;
withComment(comment: string | StringValueNode): TypeScriptDeclarationBlock;
withBlock(block: string): TypeScriptDeclarationBlock;
asKind(kind: DeclarationKind): TypeScriptDeclarationBlock;
withFlag(flags: Partial<DeclarationFlags>): TypeScriptDeclarationBlock;
addEnumValue(name: string, value?: string): void;
withEnumValues(values: {
[name: string]: string;
} | string[]): TypeScriptDeclarationBlock;
addProperty(name: string, type: string, value?: string, access?: Access, flags?: PropertyFlag): void;
addClassMethod(name: string, returnType: string | null, implmentation: string | null, args?: MethodArguments[], access?: Access, flags?: MethodFlag, comment?: string): void;
get string(): string;
protected generateEnum(): string;
protected generateClass(): string;
protected generateProperties(): string;
protected generateMethods(): string;
protected generateInterface(): string;
protected generateType(): string;
protected generatePropertyName(property: Property): string;
}
//# sourceMappingURL=typescript-declaration-block.d.ts.map