Skip to content

ResolverResource

Source: src/AWS/AppSync/Resolver.ts

An AppSync resolver — attaches request/response logic to a schema field.

UNIT resolvers target a single data source; PIPELINE resolvers run a sequence of Functions. The modern default is APPSYNC_JS code (a module exporting request(ctx) / response(ctx)); VTL mapping templates remain supported.

const resolver = yield* AppSync.Resolver("AddResolver", {
api,
typeName: "Query",
fieldName: "add",
dataSource: lambdaDS,
code: `
export function request(ctx) {
return { operation: "Invoke", payload: { args: ctx.args } };
}
export function response(ctx) {
return ctx.result;
}
`,
});
const fn = yield* AppSync.Function("Step", {
api,
dataSource: lambdaDS,
code: fnCode,
});
const resolver = yield* AppSync.Resolver("PipelineResolver", {
api,
typeName: "Query",
fieldName: "double",
kind: "PIPELINE",
pipelineFunctionIds: [fn.functionId],
code: `
export function request(ctx) { return {}; }
export function response(ctx) { return ctx.prev.result; }
`,
});