routes-gen هي أداة CLI غير الملحمية الإطارية لطرق تحليل وتوليد مساعد من النوع الآمن لاستخدام المسار الآمن. فكر في الأمر على أنه Prisma ، ولكن بالنسبة للطرق.
أولاً ، يجب عليك تثبيت مولد المسارات نفسه:
yarn add routes-gen
يعمل المولد مع "برامج التشغيل" ، والتي هي محلات الطريق لأطر مختلفة.
| سائق | تثبيت |
|---|---|
| ريمكس | yarn add @routes-gen/remix |
| SolidStart | yarn add @routes-gen/solid-start |
يمكنك ببساطة الجري:
yarn routes-gen -d @routes-gen/remix
ستحلل وتصدير الطرق ، بناءً على السائق الذي قدمته.
على سبيل المثال ، ستقوم برنامج تشغيل @routes-gen/remix بتصدير الطرق افتراضيًا إلى /app/routes.d.ts routes.d.ts.
لاحظ أنه يمكنك تغيير مسار الإخراج عبر علامة
--outputأو-o.
يمكنك الآن استيراد المساعد الذي تم route في أي مكان والاستمتاع بالطباعة:
import { route } from "routes-gen" ;
// Compiles to /products
route ( "/products" ) ;
// Compiles to /products/1337
route ( "/products/:productId" , {
productId : "1337" ,
} ) ; يمكنك استخدام نوع RouteParams لإضافة كتابة إلى معلمات/مقاطع الطريق الديناميكية. مثال:
import { RouteParams } from "routes-gen" ;
const { productId } = params as RouteParams [ "/products/:productId" ] ;مثال ريمكس :
import { LoaderFunction , useParams } from "remix" ;
import { RouteParams } from "routes-gen" ;
export const loader : LoaderFunction = async ( { params } ) => {
const { productId } = params as RouteParams [ "/products/:productId" ] ;
} ;
export default function Product ( ) {
const { productId } = useParams < RouteParams [ "/products/:productId" ] > ( ) ;
return < div / >;
} | خيار | الاسم المستعار | وصف |
|---|---|---|
| --يساعد | اطبع رسالة المساعدة والخروج | |
| --إصدار | -v | اطبع إصدار CLI والخروج |
| -إخراج | -أ | مسار الصادرات للطرق |
| -سائق | -D | سائق التدريب على مسارات المعالجة |
| --يشاهد | -ب | مشاهدة التغييرات |
| -التصدير | تنفيذ أمر بعد تصدير الطرق |
إذا لم يكن هناك برنامج تشغيل لإطار عملك المفضل ، فيمكنك كتابة بنفسك. على سبيل المثال ، قم بإنشاء ملف driver.js بسيط في مشروعك ، مع المحتوى التالي:
module . exports = {
// Where to export the typings if the "output" flag was not provided.
defaultOutputPath : "src/routes.d.ts" ,
// The routes parser. Must export and array of routes matching the { path: string } interface.
routes : async ( ) => {
return [
{
path : "/products" ,
} ,
{
path : "/products/:productId" , // Note that the dynamic segments must match the :myVar pattern.
} ,
] ;
} ,
// The paths to be watched for changes. Must return and array of relative paths.
watchPaths : async ( ) => {
return [ "/my-routes/**/*.{ts,tsx,js,jsx}" ] ;
} ,
}يمكنك الآن استخدامه بسهولة:
routes-gen -d driver.js
يمكنك أيضًا نشره على NPM وتثبيته واستخدامه كحزمة:
routes-gen -d my-driver-package
يرجى النظر في تقديم برامج التشغيل الخاصة بك إلى هذا المستودع.