Skip to content

feat: plugs and adapters #8

@simonireilly

Description

@simonireilly

When need to allow for different request/response formats.

In general, we could have two scenario's:

Adapters

Option 1

We could configure the response adapter like:

const api = compeller(spec, {
  adapter: 'apigateway'
});

const { request, response } = api('/api/v1/line-items/{id}', 'get')

Option 2

Design an interface.

If we will hand off the interfaces of statusCode, body?, headers? then we can allow for an adapter to be written like:

const responder = (
  statusCode: number, 
  body: Record<string, unknown> = {}, 
  headers: Record<string, unknown> = {}
) => ({
  statusCode,
  body: JSON.stringify(body),
  headers
})

const api = compeller(spec, {
  responder,
});

const { request, response } = api('/api/v1/line-items/{id}', 'get')

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions