Comments (2)
Yes, you can do something like this:
class Group {
constructor(
public prefix: string,
public group: (app: Elysia) => Elysia<any>
) {}
getPrefix() {
return this.prefix
}
getGroup() {
return this.group
}
}
const group = new Group('/games', (app) => app.get('/blue-archive', () => '😭'))
const app = new Elysia()
.group(group.getPrefix(), group.getGroup())
.listen(3000)
However, I recommend inlining variables into the method would have a better type-inference.
May I ask why do you want to separate it into a separate class so I can improve or introduce new features in your regard in the future?
from elysia.
hey, thanks that works! yeah wanted to avoid the anys for the type inference, but don't think this will be an issue.
basically trying to mimic controller service architecture for my app similar to spring boot.
where my routes are defined at the controller level (group), and then business logic in services.
I use a wrapper class around the group to represent the controller.
hope it makes sense :)
from elysia.
Related Issues (20)
- Revolutionizing ElysiaJS: Proposing a Scalability Boost by Emulating Spring Boot or NestJS Structure
- Validation error message unclear when requiring array length HOT 1
- Client IP is always 'null' HOT 2
- Elysia telling wrong path to cd into
- `afterHandle` executes even after validation fails HOT 1
- Issue with Exporting Client in Monorepo with ReactJS and TurboRepo HOT 3
- Object encoding in query parameters HOT 1
- `t.String()` validation does not work on body.
- Elysia should auto generate types like SvelteKit
- Headers is undefined in production mode in NextJS
- Async derive type does not exist in WS data HOT 1
- problem with derives HOT 4
- bun update upgraded to alysia 1.0.13, and app broken with content-type plain HOT 1
- `derive` properties with `{ as: 'global' }` are typed in `onError` context, but not present at runtime HOT 2
- forgot to remove console.log in package HOT 2
- add returning new instance in group & guard HOT 1
- `set.headers` is ignored in some situations HOT 1
- `app.once()`
- `app.onStart()` types and documentation does not match and does not work HOT 1
- Accessing a c.query variable removes c.cookie. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from elysia.