forge42dev / remix-forge Goto Github PK
View Code? Open in Web Editor NEWVS Code extension that allows you to generate configurable Remix code
License: MIT License
VS Code extension that allows you to generate configurable Remix code
License: MIT License
When using forge actions via right click - only the files specifically prompted get placed correctly.
Init shadcn-ui in your template via package.json in apps/your-remix-app/package.json
the tailwind.config.js file gets created at the monorepo root rather than remaining contextually aware of where package.json
lived.
I ran "Convert routes to v2 convention" from on a directory that looked like this
tree routes
before: 19 directories, 47 filesroutes/
├── __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>
It said it succeeded but it lost a lot of files
tree routes
after: 1 directory, 19 filesroutes/
├── _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.
When using the Insert Remix meta function it still uses the MetaFunction_V2 type.
Related question, can all those Insert options in the context menu be added to a submenu?
updating, initializing shadcn, adding shadcn components nothing worked..
happy to share my repo if that helps you out.
Background: remix-routes
package codegens you a typesafe method $path
that you can use for typesafe routing. In addition to this you can give your route typesafe search params by exporting a SearchParams
type.
A couple of awesome things this could enable:
please support the new shad cn components. thanks.
Hi Alem,
First of all, thank you for making Remix Forge.
I've tried to generate the ESLint and Prettier config and it works fine.
I'm also trying to initialize shadcn/ui on the fresh Remix install (v1.17.1) but it just stuck like this:
There's an error from Output > Extension Host like this:
Thank you.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.