yesod-routes-typescript alternatives and similar packages
Based on the "yesod" category.
Alternatively, view yesod-routes-typescript alternatives based on common mentions on social networks and blogs.
-
yesod-dsl
A domain specific language and a code generator desined to create RESTful services for managing an RDBMS with Yesod web framework and Persistent. -
yesod-raml
Generate Yesod framework route definitions, documentaiton, mock-handler, and more from your RAML spec. -
yesod-datatables
Routines for implementing server-side processing for DataTables (jQuery grid) in Haskell -
yesod-auth-hmac-keccak
DISCONTINUED. An account authentication plugin for yesod with encrypted token transfer.
CodeRabbit: AI Code Reviews for Developers

Do you think we are missing an alternative of yesod-routes-typescript or a related project?
README
yesod-routes-typescript
parse the Yesod routes data structure and generate routes that can be used in typescript
The routing structure is generated by:
mkYesodDispatch "App" resourcesApp
You can generate routes at startup inside the makeApplication
function
when development $
genTypeScriptRoutes resourcesApp "assets/ts/paths-gen.ts"
This generates typescript code:
class PATHS_TYPE_paths {
public contacts: PATHS_TYPE_paths_contacts;
public admin: PATHS_TYPE_paths_admin;
constructor(){
this.contacts = new PATHS_TYPE_paths_contacts();
this.admin = new PATHS_TYPE_paths_admin();
}
}
class PATHS_TYPE_paths_contacts {
public get():string { return '/api/v1/contacts/get'; }
}
class PATHS_TYPE_paths_admin {
public adminDocs: PATHS_TYPE_paths_admin_adminDocs;
constructor(){
this.adminDocs = new PATHS_TYPE_paths_admin_adminDocs();
}
}
class PATHS_TYPE_paths_admin_adminDocs {
public get():string { return '/api/v1/admin/docs/get'; }
}
var PATHS:PATHS_TYPE_paths = new PATHS_TYPE_paths();
In your typescript code you can now do:
PATHS.admin.adminDocs.get()
Please note that the Haskell code was hastily translated from javascript code and is pretty horrible. There are bugs and edge cases to be addressed, but this works ok for us.