From eb818e40c3bbeb6e1a73a3a0f5e52c8a8e69d34c Mon Sep 17 00:00:00 2001 From: Pedro Cattori Date: Fri, 16 Dec 2022 11:59:57 -0500 Subject: [PATCH] fix(dev): build modules for ts->js conversion (#4891) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(remix-dev): convert `config.appDirectory` to relative unix path (#4709) * fix(remix-dev): convert appDirectory to unix style for fast-glob Signed-off-by: Logan McAnsh * chore: relative path Signed-off-by: Logan McAnsh * chore: add test Signed-off-by: Logan McAnsh * fix test Signed-off-by: Logan McAnsh * fix: typo Signed-off-by: Logan McAnsh * chore: update test Signed-off-by: Logan McAnsh Signed-off-by: Logan McAnsh * chore: add changeset for #4709 (#4718) * ci: add typechecking for deno (#4715) * ci: add typechecking for deno * ci: install deno for integration tests * chore: format * chore: format * fix: Firefox LiveReload (#4725) Firefox infinitely reloads the page as long as `` is rendering. Closes #4692 * fix(remix-dev): allow defining multiple routes for the same route module file (#3970) * Allow multiple routes for same route module * Update packages/remix-dev/config/routes.ts Co-authored-by: Andrew Leedham * Update routes.ts - Better name for automated ID variable; - Small adjust in `id` option comment; * - Removing redundant IF * Update routes.ts Revert complex custom ID in routes * Non unique custom routes ID error and test * Update assets.ts Trying to solve a conflict * Revert "Update assets.ts" This reverts commit 2064c57032e56c8709053c8f12c304aae932ef5d. * Error on collisions with non-custom routeIds * Create big-spoons-grab.md Co-authored-by: Andrew Leedham Co-authored-by: Matt Brophy * feat: Allow pass-through script props in `ScrollRestoration` (#2879) * ci(nightly): add deno for typechecking deno files (#4738) * ci: fix race condition writing globals.d.ts shim (#4717) Co-authored-by: Chance Strickland * chore: bump @playwright/test to latest (#4749) Signed-off-by: Logan McAnsh Signed-off-by: Logan McAnsh * Fix 4199: TypedResponse allows incompatible types (#4734) * Fixes #4199: Do not allow assignment of incompatible TypedResponses * Add myself to contributors.yml * Create light-sheep-give.md * slight changeset tweak * additional changeset tweaks Co-authored-by: Pedro Cattori * chore: format * test: add transition integration tests (#4739) test: useTransition to wait for states This approach could probably be applied across other flakey tests and could also be documented as a good approach of if there is user-feedback for a specific action when running integration tests. * feat: testing helpers (#4539) Co-authored-by: James Restall Signed-off-by: Logan McAnsh * chore: format * chore(remix-testing): update dependencies (#4756) * fix(remix-testing): fix deps (#4757) * Fix deps for new remix-testing package * fix lint * Remove ENABLE_REMIX_ROUTER flags (#4732) * chore: add `@remix-run/testing` to changesets (#4781) * chore: add `@remix-run/testing` to changesets Signed-off-by: Logan McAnsh * chore: update `ADDING_A_PACKAGE.md` Signed-off-by: Logan McAnsh Signed-off-by: Logan McAnsh * refactor(remix-react): upgrade Remix to `react-router-dom@6.4` (non-data-router) and drop `history` (#4731) * Bump remix to react-router-dom@6.4.4 (#4668) Co-authored-by: Mehdi Achour * Bump remix to RR 6.4.4 and drop history dependency (#4702) Co-authored-by: Mehdi Achour * ci(nightly): move git operations after build (#4797) * ci(nightly): move git operations after build when adding deno typechecking (#4715), nightly now refers to the version we just calculated which hasnt been published when trying to build and typecheck Signed-off-by: Logan McAnsh * ci: update tmp branch name Signed-off-by: Logan McAnsh Signed-off-by: Logan McAnsh * perf(remix-dev): Optimize `parentRouteId` lookup in `defineConventionalRoutes` (#4538) * Use object for parentRouteId lookup * Sign CLA * Move parentRouteId logic to a separate function * Update test fixture path * chore: format * chore(dev): add changeset for PR #4538 (#4800) * chore: format * refactor(remix-react): use `react-router-dom` import instead of `react-router` (#3325) * chore: manually bump remix-testing version due to not being on main just yet Signed-off-by: Logan McAnsh * fixup! chore: manually bump remix-testing version due to not being on main just yet * fixup! chore: manually bump remix-testing version due to not being on main just yet Signed-off-by: Logan McAnsh * chore: unify error usage (#4696) * chore: format * Add fetcher state/type tests (#4803) * chore(deps): bump esbuild to latest (#4754) * chore: add invariant instead of using `!` Signed-off-by: Logan McAnsh * chore(deps): bump esbuild to latest Signed-off-by: Logan McAnsh * Create fresh-shrimps-join.md Signed-off-by: Logan McAnsh Co-authored-by: Pedro Cattori * test(integration): close server synchronously (#4785) * chore: normalize afterAll Signed-off-by: Logan McAnsh * test: close server synchronously Signed-off-by: Logan McAnsh * chore: appFixture.close isnt async anymore Signed-off-by: Logan McAnsh * Update integration/helpers/create-fixture.ts Co-authored-by: Pedro Cattori Signed-off-by: Logan McAnsh Co-authored-by: Pedro Cattori * feat: remix optional segments (#4706) * feat: transform optional routes from remix to react router * Add to contributors * Add changeset * fix(optional-segments): fix escaping of parenthesis * small function fix * Update packages/remix-dev/__tests__/routesConvention-test.ts Co-authored-by: Pedro Cattori Co-authored-by: Pedro Cattori * chore: format * chore: edit the optional segments changeset (#4815) to make it clear that Remix won't support optional segments until integrated with React Router 6.5 * chore: format * docs: rearrange docs, give everything its own page (#4821) * chore: format * fix: wrong parentheses in the optional segments changeset (#4825) * fix: wrong parentheses in the optional segments changeset * add: akamfoad to the contributers * ci(nightly): add workflow_call for testing purposes Signed-off-by: Logan McAnsh * Revert "ci(nightly): add workflow_call for testing purposes" This reverts commit f3fa77ea311936e14f55fc9a420ab9eea2118cd4. * chore(scripts): Use relaxed peer dependencies to avoid triggering major version bumps (#4736) - Add script to bump peer deps with changesets version Co-authored-by: Mateusz Burzyński * Add integration tests for request structures (#4829) * fix(remix-dev): resolve asset entry full path to support mono-repo import of styles (#4855) * chore: have eslint report unused eslint comments (#4863) * chore: have eslint report unused eslint comments Signed-off-by: Logan McAnsh * chore: remove additional comment Signed-off-by: Logan McAnsh * perf(remix-architect,remix-netlify): improve performance of `isBinaryType` (#4761) Co-authored-by: Logan McAnsh Co-authored-by: Pannatier Guillaume * chore: format * chore(remix-testing): remove internal installGlobals (#4755) * chore: remove internal installGlobals Signed-off-by: Logan McAnsh * chore: add README Signed-off-by: Logan McAnsh * Create quick-cats-fix.md * Update .changeset/quick-cats-fix.md Co-authored-by: Michaël De Boey * chore(deps): remove jsdom and happydom from devDependencies Signed-off-by: Logan McAnsh Signed-off-by: Logan McAnsh Co-authored-by: Michaël De Boey * fix(dev): build js modules for ts->js conversion The TS->JS migration was removed from the CLI codemod options, but still used for TS->JS conversion when creating a new Remix project from the CLI. The TS modules responsible for the TS->JS conversion were incorrectly removed from the Rollup build, resulting in the corresponding built JS modules being absent. That caused the CLI to error when trying to perform TS->JS conversion. This changes reintroduces the wiring to build the modules responsible for the TS->JS conversion. Fixes #4854 Signed-off-by: Logan McAnsh Co-authored-by: Logan McAnsh Co-authored-by: Matt Kane Co-authored-by: Remix Run Bot Co-authored-by: Chance Strickland Co-authored-by: Ryan Florence Co-authored-by: Lucas Ferreira Co-authored-by: Andrew Leedham Co-authored-by: Matt Brophy Co-authored-by: dabdine <1955040+dabdine@users.noreply.github.com> Co-authored-by: Jacob Ebey Co-authored-by: James Restall Co-authored-by: Michaël De Boey Co-authored-by: Mehdi Achour Co-authored-by: Dylan Markow Co-authored-by: Daniel Rios Co-authored-by: Akam Foad <41629832+akamfoad@users.noreply.github.com> Co-authored-by: Mateusz Burzyński Co-authored-by: Guillaume Pannatier Co-authored-by: Pannatier Guillaume --- .changeset/many-zebras-arrive.md | 14 +++++++++++++ .../cli/migrate/migrations/transforms.ts | 2 ++ packages/remix-dev/rollup.config.js | 20 +++++++++++++++++++ 3 files changed, 36 insertions(+) create mode 100644 .changeset/many-zebras-arrive.md create mode 100644 packages/remix-dev/cli/migrate/migrations/transforms.ts diff --git a/.changeset/many-zebras-arrive.md b/.changeset/many-zebras-arrive.md new file mode 100644 index 00000000000..6617a9bfbbb --- /dev/null +++ b/.changeset/many-zebras-arrive.md @@ -0,0 +1,14 @@ +--- +"@remix-run/dev": patch +--- + +Fix TS->JS conversion when creating a new Remix project via the CLI + +The TS->JS migration was removed from the CLI codemod options, but still +used for TS->JS conversion when creating a new Remix project from the +CLI. The TS modules responsible for the TS->JS conversion were +incorrectly removed from the Rollup build, resulting in the +corresponding built JS modules being absent. That caused the CLI to +error when trying to perform TS->JS conversion. This changes +reintroduces the wiring to build the modules responsible for the TS->JS +conversion. diff --git a/packages/remix-dev/cli/migrate/migrations/transforms.ts b/packages/remix-dev/cli/migrate/migrations/transforms.ts new file mode 100644 index 00000000000..89cfa4616a8 --- /dev/null +++ b/packages/remix-dev/cli/migrate/migrations/transforms.ts @@ -0,0 +1,2 @@ +// escape-hatch to include these files in the build +export * as ConvertToJavaScriptTransform from "./convert-to-javascript/transform"; diff --git a/packages/remix-dev/rollup.config.js b/packages/remix-dev/rollup.config.js index 39c01b3de4f..6bb4b9ab048 100644 --- a/packages/remix-dev/rollup.config.js +++ b/packages/remix-dev/rollup.config.js @@ -71,6 +71,26 @@ module.exports = function rollup() { ], }, getCliConfig({ packageName, version }), + { + external: (id) => isBareModuleId(id), + input: [`${sourceDir}/cli/migrate/migrations/transforms.ts`], + output: { + banner: createBanner("@remix-run/dev", version), + dir: `${outputDist}/cli/migrate/migrations`, + exports: "named", + format: "cjs", + preserveModules: true, + }, + plugins: [ + babel({ + babelHelpers: "bundled", + exclude: /node_modules/, + extensions: [".ts"], + }), + nodeResolve({ extensions: [".ts"] }), + copyToPlaygrounds(), + ], + }, { external() { return true;