Skip to main content

Class: Reader

Resolver and function reader.

import { Reader } from '@appsync-butler/core';
const reader = new Reader();
reader.readTypes(); // ['Query', 'Mutation', 'Post']
reader.readFields('Query'); // ['getPost', 'getAuthor']
const resolver = reader.readResolver('Query', 'getPost');

reader.readFunctions(); // ['getPostById', 'getAuthorByPostId']
const func = reader.readFunction('getPostById');

Extended by

Constructors

new Reader()

new Reader(optionsOrRoot): Reader

Parameters

optionsOrRoot

Path to VTL directory or reading directives

string | ReaderOptions

Returns

Reader

Properties

structure

protected readonly structure: object

functions

functions: string

functionStructure

functionStructure: object

functionStructure.description

functionStructure.description: string

functionStructure.request

functionStructure.request: string

functionStructure.response

functionStructure.response: string

pipelineStructure

pipelineStructure: object

pipelineStructure.after

pipelineStructure.after: string

pipelineStructure.before

pipelineStructure.before: string

pipelineStructure.pipeline

pipelineStructure.pipeline: string

resolvers

resolvers: string

root

root: string

unitStructure

unitStructure: object

unitStructure.request

unitStructure.request: string

unitStructure.response

unitStructure.response: string

Methods

getFunctionPath()

protected getFunctionPath(functionName): string

Parameters

functionName

string

Returns

string


getResolverPath()

protected getResolverPath(typeName, fieldName): string

Parameters

typeName

string

fieldName

string

Returns

string


path()

protected path(...args): string

Parameters

args

...string[]

Returns

string


readFields()

readFields(typeName): string[]

Reads the on-disk GraphQL field names. Essentially, the second-level subdirectories of resolvers are read.

vtl
├── functions
└── resolvers
├── Mutation
└── Query
└── getPost
├── request.vtl
└── response.vtl
reader.readFields('Query'); // ['getPost']

Parameters

typeName

string

GraphQL type name

Returns

string[]

A list of GraphQL fields


readFunction()

readFunction(functionName): FunctionInfo

Reads an AWS AppSync Function from disk.

Parameters

functionName

string

Function name

Returns

FunctionInfo

Function information


readFunctions()

readFunctions(): string[]

Reads the on-disk function directory names. Essentially, the first-level subdirectories of functions are read.

vtl
├── functions
│ └── GetPostById
│ ├── request.vtl
│ └── response.vtl
└── resolvers
reader.readFunctions(); // ['GetPostById']

Returns

string[]

A list of function names


readResolver()

readResolver(typeName, fieldName): ResolverInfo

Reads a GraphQL field resolver from disk.

Parameters

typeName

string

GraphQL type name

fieldName

string

GraphQL field name

Returns

ResolverInfo

Unit or Pipeline Resolver information


readSubdirsSync()

protected readSubdirsSync(dir, ignoreNoent): string[]

Parameters

dir

string

ignoreNoent

boolean = false

Returns

string[]


readTypes()

readTypes(): string[]

Reads the on-disk GraphQL type names. Essentially, the first-level subdirectories of resolvers are read.

vtl
├── functions
└── resolvers
├── Mutation
└── Query
└── Post
reader.readTypes(); // ['Mutation', 'Query', 'Post']

Returns

string[]

A list of GraphQL types