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

Dropped routes with "convert routes" #10

Open
jfsiii opened this issue Aug 9, 2023 · 3 comments
Open

Dropped routes with "convert routes" #10

jfsiii opened this issue Aug 9, 2023 · 3 comments

Comments

@jfsiii
Copy link

jfsiii commented Aug 9, 2023

What I did

I ran "Convert routes to v2 convention" from on a directory that looked like this

tree routes before: 19 directories, 47 files
routes/
├── __anonymous
│   ├── change-password.tsx
│   ├── forgot-password.tsx
│   ├── login.tsx
│   ├── logout.tsx
│   └── webhooks.ld-update.tsx
├── __anonymous.health.tsx
├── __anonymous.tsx
├── index.tsx
├── participant
│   ├── sessions
│   │   ├── $courseId
│   │   │   └── assessments
│   │   │       ├── $evaluationId
│   │   │       │   ├── index.tsx
│   │   │       │   └── result.tsx
│   │   │       ├── index.tsx
│   │   │       └── new.tsx
│   │   ├── $courseId.tsx
│   │   └── index.tsx
│   └── sessions.tsx
├── sessions
│   ├── $courseId
│   │   ├── assessments
│   │   │   ├── $assessmentType.$assessmentId
│   │   │   │   ├── $evaluationTemplateId
│   │   │   │   │   ├── evaluate.$participantId.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── response-breakdown.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   └── response-breakdown.tsx
│   │   │   ├── $assessmentType.$assessmentId.tsx
│   │   │   ├── $evaluationId.tsx
│   │   │   ├── components
│   │   │   │   └── AssessmentList.tsx
│   │   │   ├── index.tsx
│   │   │   └── types.ts
│   │   ├── facilitators
│   │   │   └── update.tsx
│   │   ├── participants
│   │   │   ├── index.tsx
│   │   │   ├── results.$participantId.tsx
│   │   │   ├── signin-info
│   │   │   │   ├── index.tsx
│   │   │   │   └── pdf.tsx
│   │   │   └── update.tsx
│   │   ├── participants.tsx
│   │   └── summary
│   │       └── index.tsx
│   ├── $courseId.tsx
│   ├── components.tsx
│   ├── create.tsx
│   └── index.tsx
└── users
    ├── $userId.change-password.tsx
    ├── $userId.edit.tsx
    ├── bulk-import
    │   ├── csv.ts
    │   ├── facility.tsx
    │   ├── index.tsx
    │   ├── upload.tsx
    │   └── validation-preview.tsx
    ├── bulk-import.tsx
    ├── create.tsx
    └── index.tsx

19 directories, 47 files
npx remix routes before
<Routes>
  <Route file="root.tsx">
    <Route path="users/:userId/change-password" file="routes/users/$userId.change-password.tsx" />
    <Route path="participant/sessions" file="routes/participant/sessions.tsx">
      <Route path=":courseId" file="routes/participant/sessions/$courseId.tsx">
        <Route path="assessments/:evaluationId/result" file="routes/participant/sessions/$courseId/assessments/$evaluationId/result.tsx" />
        <Route path="assessments/:evaluationId" index file="routes/participant/sessions/$courseId/assessments/$evaluationId/index.tsx" />
        <Route path="assessments" index file="routes/participant/sessions/$courseId/assessments/index.tsx" />
        <Route path="assessments/new" file="routes/participant/sessions/$courseId/assessments/new.tsx" />
      </Route>
      <Route index file="routes/participant/sessions/index.tsx" />
    </Route>
    <Route path="health" file="routes/__anonymous.health.tsx" />
    <Route path="sessions/:courseId" file="routes/sessions/$courseId.tsx">
      <Route path="assessments/:assessmentType/:assessmentId" file="routes/sessions/$courseId/assessments/$assessmentType.$assessmentId.tsx">
        <Route path=":evaluationTemplateId/evaluate/:participantId" file="routes/sessions/$courseId/assessments/$assessmentType.$assessmentId/$evaluationTemplateId/evaluate.$participantId.tsx" />
        <Route path=":evaluationTemplateId/response-breakdown" file="routes/sessions/$courseId/assessments/$assessmentType.$assessmentId/$evaluationTemplateId/response-breakdown.tsx" />
        <Route path=":evaluationTemplateId" index file="routes/sessions/$courseId/assessments/$assessmentType.$assessmentId/$evaluationTemplateId/index.tsx" />
        <Route path="response-breakdown" file="routes/sessions/$courseId/assessments/$assessmentType.$assessmentId/response-breakdown.tsx" />
        <Route index file="routes/sessions/$courseId/assessments/$assessmentType.$assessmentId/index.tsx" />
      </Route>
      <Route path="assessments/:evaluationId" file="routes/sessions/$courseId/assessments/$evaluationId.tsx" />
      <Route path="facilitators/update" file="routes/sessions/$courseId/facilitators/update.tsx" />
      <Route path="assessments" index file="routes/sessions/$courseId/assessments/index.tsx" />
      <Route path="summary" index file="routes/sessions/$courseId/summary/index.tsx" />
      <Route path="participants" file="routes/sessions/$courseId/participants.tsx">
        <Route path="results/:participantId" file="routes/sessions/$courseId/participants/results.$participantId.tsx" />
        <Route path="signin-info" index file="routes/sessions/$courseId/participants/signin-info/index.tsx" />
        <Route path="signin-info/pdf" file="routes/sessions/$courseId/participants/signin-info/pdf.tsx" />
        <Route path="update" file="routes/sessions/$courseId/participants/update.tsx" />
        <Route index file="routes/sessions/$courseId/participants/index.tsx" />
      </Route>
    </Route>
    <Route path="users/:userId/edit" file="routes/users/$userId.edit.tsx" />
    <Route path="users/bulk-import" file="routes/users/bulk-import.tsx">
      <Route path="validation-preview" file="routes/users/bulk-import/validation-preview.tsx" />
      <Route path="facility" file="routes/users/bulk-import/facility.tsx" />
      <Route path="upload" file="routes/users/bulk-import/upload.tsx" />
      <Route index file="routes/users/bulk-import/index.tsx" />
      <Route path="csv" file="routes/users/bulk-import/csv.ts" />
    </Route>
    <Route path="sessions/create" file="routes/sessions/create.tsx" />
    <Route path="sessions" index file="routes/sessions/index.tsx" />
    <Route path="users/create" file="routes/users/create.tsx" />
    <Route file="routes/__anonymous.tsx">
      <Route path="webhooks/ld-update" file="routes/__anonymous/webhooks.ld-update.tsx" />
      <Route path="change-password" file="routes/__anonymous/change-password.tsx" />
      <Route path="forgot-password" file="routes/__anonymous/forgot-password.tsx" />
      <Route path="logout" file="routes/__anonymous/logout.tsx" />
      <Route path="login" file="routes/__anonymous/login.tsx" />
    </Route>
    <Route path="users" index file="routes/users/index.tsx" />
    <Route index file="routes/index.tsx" />
  </Route>
</Routes>

What I observed

It said it succeeded but it lost a lot of files

Screenshot 2023-08-09 at 11 22 09 AM
tree routes after: 1 directory, 19 files
routes/
├── _anonymous..login.md
├── _anonymous.change-password.tsx
├── _anonymous.forgot-password.tsx
├── _anonymous.health.tsx
├── _anonymous.login.tsx
├── _anonymous.logout.tsx
├── _anonymous.tsx
├── _anonymous.webhooks.ld-update.tsx
├── _index.tsx
├── participant.sessions.tsx
├── sessions.$courseId.tsx
├── sessions._index.tsx
├── sessions.components.tsx
├── sessions.create.tsx
├── users.$userId.change-password.tsx
├── users.$userId.edit.tsx
├── users._index.tsx
├── users.bulk-import.tsx
└── users.create.tsx

1 directory, 19 files
npx remix routes after
<Routes>
  <Route file="root.tsx">
    <Route path="_anonymous/webhooks/ld-update" file="routes/_anonymous.webhooks.ld-update.tsx" />
    <Route path="users/:userId/change-password" file="routes/users.$userId.change-password.tsx" />
    <Route path="_anonymous/change-password" file="routes/_anonymous.change-password.tsx" />
    <Route path="_anonymous/forgot-password" file="routes/_anonymous.forgot-password.tsx" />
    <Route path="participant/sessions" file="routes/participant.sessions.tsx" />
    <Route path="sessions/components" file="routes/sessions.components.tsx" />
    <Route path="sessions/:courseId" file="routes/sessions.$courseId.tsx" />
    <Route path="users/:userId/edit" file="routes/users.$userId.edit.tsx" />
    <Route path="_anonymous//login" file="routes/_anonymous..login.md" />
    <Route path="_anonymous/health" file="routes/_anonymous.health.tsx" />
    <Route path="_anonymous/logout" file="routes/_anonymous.logout.tsx" />
    <Route path="users/bulk-import" file="routes/users.bulk-import.tsx" />
    <Route path="_anonymous/login" file="routes/_anonymous.login.tsx" />
    <Route path="sessions/_index" file="routes/sessions._index.tsx" />
    <Route path="sessions/create" file="routes/sessions.create.tsx" />
    <Route path="users/_index" file="routes/users._index.tsx" />
    <Route path="users/create" file="routes/users.create.tsx" />
    <Route path="_anonymous" file="routes/_anonymous.tsx" />
    <Route path="_index" file="routes/_index.tsx" />
  </Route>
</Routes>

It's not clear to me what the issue is, but hopefully the before/after routes will help. Let me know if I can do any thing to give more data or context.

@AlemTuzlak
Copy link
Contributor

@jfsiii Thank you for the report! I've been trying to figure this one out because it was reported to me but had no luck due to lack of info. This is greatly appreciated. Will try to replicate with this to find the root cause.

@AlemTuzlak
Copy link
Contributor

@jfsiii there have been some improvements to the underlying code, could you try this again if it works? I have a feeling it is due to an OS difference because when I test it on windows it works.

@jfsiii
Copy link
Author

jfsiii commented Dec 19, 2023

@AlemTuzlak Still no luck.

Here's some info about the before/initial routes

remix-routes-main.txt
tree-routes-main.txt

And here's what I saw running in VS Code

Screenshot 2023-12-18 at 7 50 43 PM

Here's the routes after conversion

remix-routes-forge.txt
tree-routes-forge.txt

The diff of the last line from the two tree outuput

- 21 directories, 53 files
+ 1 directory, 22 files

I'm not sure of the process for conversion but it's losing alot of routes. All (?) the routes in users/bulk-import/* for example.

In getting the screenshots for this response, I started fresh and ran it in VS Code again. This time I got only the "Flattening route to v2 convention finished!" success message but the results were still the same on disk.

We do have some non-route files in there (a components subdirectory in one, two? types.ts files)

ignoredFilePatterns from remix.config.js
  // ignore all files in routes folder to prevent
  // default remix convention from picking up routes
  ignoredRouteFiles: ['**/*'],
  routes(defineRoutes) {
    // uses the v1 convention, works in v1.15+ and v2
    return createRoutesFromFolders(
      defineRoutes,
      // optionally add the real ignored route files here as needed
      {
        ignoredFilePatterns: [
          // ignore (do not make accessible in UI) any files under `routes/` which:
          // start with a `.`
          '**/.*',
          // are named types.ts, types.tsx, components.ts, etc
          '**/{components,utils,types}.ts{,x}',
          // are in a routes/**/components, routes/**/utils, or routes/**/types directory
          '**/{components,utils,types}/*',
        ],
      }
    );

but there's only a few of them, and none a directory like users/bulk-import which is getting lost

└── users
    ├── $userId.change-password.tsx
    ├── $userId.edit.tsx
    ├── bulk-import
    │   ├── csv.ts
    │   ├── facility.tsx
    │   ├── index.tsx
    │   ├── upload.tsx
    │   └── validation-preview.tsx
    ├── bulk-import.tsx
    ├── create.tsx
    └── index.tsx

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