Comments (9)
Likely yes, will continue working on an adapter after the PR landed on stable (likely Bun 0.5.7)
from elysia.
Sure, I love Remix.
Added to roadmap
from elysia.
Apparently elysia + remix is already supported. You just need to make some tweeks
https://github.com/wladiston/elysia-remix
from elysia.
Any update for official remix support?
from elysia.
Is this unblocked now via this PR?
from elysia.
Blocking on: oven-sh/bun#1864
from elysia.
any update? :)
from elysia.
any update?
from elysia.
I did also manage to make it work, though only with production mode
// plugins/remix.ts
import type { ServerBuild } from "@remix-run/node";
import { createRequestHandler } from "@remix-run/node";
import { join, parse } from "path";
import { Elysia } from "elysia";
export type RemixPlugin<T extends ServerBuild = any> = (
serverBuild: T,
publicDir?: string
) => Elysia;
export const remix: RemixPlugin = (serverBuild, publicDir = join(process.cwd(), "public")) =>
new Elysia().all("*", async function ({ request, store, path, set }) {
if (request.method === "GET" && parse(path).ext) {
const filepath = join(publicDir, path);
const file = Bun.file(filepath);
const fileExist = await file.exists();
if (!fileExist) {
set.status = 404;
return { error: "Requested resource does not exist" };
}
set.headers["Cache-Control"] = "public,max-age=31536000,immutable";
return file;
}
/**
* This only works for production build
*
* For development use remix dev instead
*/
const handleRequest = createRequestHandler(serverBuild, "production");
return await handleRequest(request, store);
});
// server.ts
import { remix, logger } from "./plugins";
import { Elysia } from "elysia";
import * as build from "./build/index";
const port = process.env.PORT;
const app = new Elysia()
.state("appLoadContext", "test")
.use(logger())
.use(remix(build))
.listen(port ? Number(port) : 3000);
console.log(`Server is running at http://${app.server?.hostname}:${app.server?.port}`);
// Axios accept-encoding header should be set to gzip to work
...
headers: {
common: {
"Accept-Encoding": "gzip",
},
},
...
I'n not sure about this but after few clicks to test the router link, i feel that running original remix with bun is still somehow smoother than running remix by elysia 😂 It could be my implementation broke somewhere
from elysia.
Related Issues (20)
- no catch case in case DELETE request has no body HOT 2
- `ws` type is not exported making it harder to store ws (WebSocket) objects in a TypeScript compliant way
- Add ability to use Connect middleware HOT 6
- Subscriptions work but the type annotations are wrong
- Endpoints with the same path but different method get mixed up types (using eden fetch)
- Beta: undefined class when using decorate and derive HOT 2
- Empty ObjectString missing validation inside query schema HOT 1
- Ability to rewrite an incoming request's url or have a prefix that's not actually added to the path?
- swagger breaks when used after logger
- Properly respect enums in OpenAPI/Swagger documentation HOT 2
- Elysia 1.0 Breaking Changes / Migration HOT 1
- t.String: String types with patterns must specify a default value
- 1.0.0-rc.0 server timing breaks beforeHandle guards HOT 2
- @elysiajs/[email protected] error typed as Unknown HOT 1
- Cookie settings not used
- Context not contains cookie element on 1.0.0-rc.6
- Swagger Adaptation Issue: Incorrect Response Examples Display HOT 3
- Using both Static and HTML plugins segfaults on Bun >=1.0.27 HOT 1
- Feature Request: Support Camel Case Access for Snake Case API Endpoints in Eden
- Minor DX request: Allow passing an `edenTreaty` value without a trailing slash HOT 2
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.