Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spread operator does not work with util.appendError #753

Open
ryancausey opened this issue Sep 12, 2023 · 1 comment
Open

Spread operator does not work with util.appendError #753

ryancausey opened this issue Sep 12, 2023 · 1 comment

Comments

@ryancausey
Copy link

Note: If your issue/feature-request/question is regarding the AWS AppSync service, please log it in the
official AWS AppSync forum

Do you want to request a feature or report a bug?
Bug

What is the current behavior?
Spread operator does not work to pass arguments to util.appendError. This causes an error when attempting to update the resolver code: "Ln 12, Col 22 code.js(12,22): error TS2556: A spread argument must either have a tuple type or be passed to a rest parameter. "

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem.
Here is the minimal reproduction using a JavaScript unit resolver with a null data source:

export function request(ctx) {
    return {};
}

export function response(ctx) {
    const error_args = [
        `Downstream HTTP request failed with status foo.`,
        `http_504`,
        {a: 1},
        {b: 2},
    ]
    util.appendError(...error_args)
    return ctx.prev.result;
}

What is the expected behavior?
The util.appendError call should be allowed, and the resolver code should be updated without receiving a TypeScript error.

Which versions and which environment (browser, react-native, nodejs) / OS are affected by this issue? Did this work in previous versions?
APPSYNC_JS issue. It has never worked as far as I can tell.

A workaround is to define a wrapper function and use that to call util.AppendError:

function wrapper(a, b, c, d) {
    util.appendError(a, b, c, d)
}

export function request(ctx) {
    return {};
}

export function response(ctx) {
    const error_args = [
        `Downstream HTTP request failed with status foo.`,
        `http_504`,
        {a: 1},
        {b: 2},
    ]
    wrapper(...error_args)
    return ctx.prev.result;
}
@tvmendoza
Copy link

Hi there,

this would be the wrong repo for this particular issue. I created an issue there, feel free to track it there:
aws/aws-appsync-community#323

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants