graphql-mapping-template
Version:
An AST wrapper around AWS AppSync resolvers
157 lines • 5.15 kB
TypeScript
export interface IfNode {
kind: 'If';
predicate: Expression;
expr: Expression;
inline: boolean;
}
export declare function iff(predicate: Expression, expr: Expression, inline?: boolean): IfNode;
export interface IfElseNode {
kind: 'IfElse';
predicate: Expression;
ifExpr: Expression;
elseExpr: Expression;
inline: boolean;
}
export declare function ifElse(predicate: Expression, ifExpr: Expression, elseExpr: Expression, inline?: boolean): IfElseNode;
export interface AndNode {
kind: 'And';
expressions: Expression[];
}
export declare function and(expressions: Expression[]): AndNode;
export interface OrNode {
kind: 'Or';
expressions: Expression[];
}
export declare function or(expressions: Expression[]): OrNode;
export interface ParensNode {
kind: 'Parens';
expr: Expression;
}
export declare function parens(expr: Expression): ParensNode;
export interface EqualsNode {
kind: 'Equals';
leftExpr: Expression;
rightExpr: Expression;
}
export declare function equals(leftExpr: Expression, rightExpr: Expression): EqualsNode;
export interface NotEqualsNode {
kind: 'NotEquals';
leftExpr: Expression;
rightExpr: Expression;
}
export declare function notEquals(leftExpr: Expression, rightExpr: Expression): NotEqualsNode;
export interface GreaterThanNode {
kind: 'GreaterThan';
leftExpr: Expression;
rightExpr: Expression;
}
export declare function greaterThan(leftExpr: Expression, rightExpr: Expression): GreaterThanNode;
export interface NotNode {
kind: 'Not';
expr: Expression;
}
export declare function not(expr: Expression): NotNode;
export interface ReturnNode {
kind: 'Return';
value: Expression;
}
export declare function ret(value?: Expression): ReturnNode;
export interface ForEachNode {
kind: 'ForEach';
key: ReferenceNode;
collection: ReferenceNode;
expressions: Expression[];
}
export declare function forEach(key: ReferenceNode, collection: ReferenceNode, expressions: Expression[]): ForEachNode;
export interface StringNode {
kind: 'String';
value: string;
}
export declare function str(value: string): StringNode;
export interface RawNode {
kind: 'Raw';
value: string;
}
export declare function raw(value: string): RawNode;
export interface QuotesNode {
kind: 'Quotes';
expr: Expression;
}
export declare function quotes(expr: Expression): QuotesNode;
export interface FloatNode {
kind: 'Float';
value: number;
}
export declare function float(value: number): FloatNode;
export interface IntNode {
kind: 'Int';
value: number;
}
export declare function int(value: number): IntNode;
export interface BooleanNode {
kind: 'Boolean';
value: boolean;
}
export declare function bool(value: boolean): BooleanNode;
export interface NullNode {
kind: 'Null';
}
export declare function nul(): NullNode;
export interface ReferenceNode {
kind: 'Reference';
value: string;
}
export declare function ref(value: string): ReferenceNode;
export interface QuietReferenceNode {
kind: 'QuietReference';
value: string | Expression;
}
export declare function qref(value: string | Expression): QuietReferenceNode;
export interface ObjectNode {
kind: 'Object';
attributes: [string, Expression][];
}
export declare function obj(o: {
[key: string]: Expression;
}): ObjectNode;
export interface ListNode {
kind: 'List';
expressions: Expression[];
}
export declare function list(expressions: Expression[]): ListNode;
export interface SetNode {
kind: 'Set';
key: ReferenceNode;
value: Expression;
}
export declare function set(key: ReferenceNode, value: Expression): SetNode;
export interface CommentNode {
kind: 'Comment';
text: string;
}
export declare function comment(text: string): CommentNode;
export interface CompoundExpressionNode {
kind: 'CompoundExpression';
expressions: Expression[];
joiner: string;
recurseIndent: boolean;
}
export declare function compoundExpression(expressions: Expression[], joiner?: string, recurseIndent?: boolean): CompoundExpressionNode;
export type ToJsonNode = {
kind: 'Util.ToJson';
expr: Expression;
};
export declare function toJson(expr: Expression): ToJsonNode;
export type IsNullOrEmptyNode = {
kind: 'Util.isNullOrEmpty';
expr: Expression;
};
export declare function isNullOrEmpty(expr: Expression): IsNullOrEmptyNode;
export type NewLineNode = {
kind: 'NewLine';
};
export declare function newline(): NewLineNode;
export declare function block(name: string, exprs: Expression[]): CompoundExpressionNode;
export declare function methodCall(methodName: ReferenceNode, ...params: Expression[]): CompoundExpressionNode;
export type Expression = IfNode | IfElseNode | AndNode | OrNode | ParensNode | EqualsNode | NotEqualsNode | GreaterThanNode | ForEachNode | StringNode | RawNode | QuotesNode | FloatNode | IntNode | BooleanNode | NullNode | ReferenceNode | QuietReferenceNode | ObjectNode | ListNode | SetNode | CommentNode | CompoundExpressionNode | ToJsonNode | IsNullOrEmptyNode | NotNode | NewLineNode | ReturnNode;
//# sourceMappingURL=ast.d.ts.map