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

import named export from parcel/watcher #2341

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

josefaidt
Copy link
Contributor

Problem

follow-up from #2332

in a limited env like WebContainers we're seeing issues related to the import of the "default" export from the commonjs distribution of parcel/watcher. "default" exports are a concept in ESM, where commonjs will export on module.exports or exports. Depending on the build process these are sometimes rebound to a named default -> module.exports.default = "something" or merged onto module.exports

Issue number, if available:

Changes

This change removes the import of parcel/watchers default export in favor of the named subscribe export. subscribe was already in use for typing, so this change is small

Corresponding docs PR, if applicable:

Validation

validated by re-running the sandbox command in the limited WebContainers env
CleanShot 2024-12-13 at 16 30 07

Checklist

  • If this PR includes a functional change to the runtime behavior of the code, I have added or updated automated test coverage for this change.
  • If this PR requires a change to the Project Architecture README, I have included that update in this PR.
  • If this PR requires a docs update, I have linked to that docs PR above.
  • If this PR modifies E2E tests, makes changes to resource provisioning, or makes SDK calls, I have run the PR checks with the run-e2e label set.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@josefaidt josefaidt requested a review from a team as a code owner December 16, 2024 22:07
Copy link

changeset-bot bot commented Dec 16, 2024

🦋 Changeset detected

Latest commit: 4f0c274

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@aws-amplify/sandbox Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@josefaidt josefaidt added the run-e2e Label that will include e2e tests in PR checks workflow label Dec 16, 2024
Comment on lines 42 to 43
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const subscribeMock = mock.fn(async (_dir, _effect, _options) => {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const subscribeMock = mock.fn(async (_dir, _effect, _options) => {
const subscribeMock = mock.fn(async () => {

that should be fine, if not then something like this:

writeFile: mock.fn<(path: string, content: string) => Promise<void>>(() =>

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was to appease the checks like this one where we're checking that subscribe was called with a specific argument, https://github.com/aws-amplify/amplify-backend/pull/2341/files#diff-a3a9ef2ca41c1c9b876d1523afccb0fa5478ffd7ef185395e103467e10bd6484R967

I can pull in the parameters type to give the arguments a type. The underscore satisfies tsc but I also had to add the eslint-disable comment to appease no-unused-vars

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

perhaps

const subscribeMock = mock.fn(async (..._args: Parameters<typeof subscribe>) => {
  return { unsubscribe: unsubscribeMockFn };
});

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the mock.fn<> satisfies both tsc and linter. Let's define parameterless stub AND provides typing for argument assertion.

The _dir or ..._args are not relevant for mock . this is for TSC - but that can be handled with <>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
run-e2e Label that will include e2e tests in PR checks workflow
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants