princejs 1.8.0 → 1.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Readme.md +20 -1
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +102 -12526
- package/dist/prince.d.ts +10 -6
- package/dist/prince.d.ts.map +1 -1
- package/dist/prince.js +42 -24
- package/package.json +1 -1
package/Readme.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# 👑 **PrinceJS**
|
|
2
2
|
|
|
3
|
+

|
|
4
|
+
|
|
3
5
|
### ⚡ Ultra-clean, modern & minimal Bun web framework built by a 13 year old. Among the top three in performance.
|
|
4
6
|
|
|
5
7
|

|
|
@@ -75,6 +77,8 @@ app
|
|
|
75
77
|
|
|
76
78
|
### Response Compression
|
|
77
79
|
|
|
80
|
+
### Route-level Middleware
|
|
81
|
+
|
|
78
82
|
### Database (SQLite)
|
|
79
83
|
|
|
80
84
|
---
|
|
@@ -96,7 +100,7 @@ app
|
|
|
96
100
|
|
|
97
101
|
```ts
|
|
98
102
|
import { prince } from "princejs";
|
|
99
|
-
import { cors, logger, rateLimit, auth, apiKey, jwt, session, compress } from "princejs/middleware";
|
|
103
|
+
import { cors, logger, rateLimit, auth, apiKey, jwt, session, compress, serve } from "princejs/middleware";
|
|
100
104
|
import { validate } from "princejs/validation";
|
|
101
105
|
import { cache, upload, sse } from "princejs/helpers";
|
|
102
106
|
import { cron } from "princejs/scheduler";
|
|
@@ -110,6 +114,8 @@ app.use(cors());
|
|
|
110
114
|
app.use(logger());
|
|
111
115
|
app.use(rateLimit({ max: 100, window: 60 }));
|
|
112
116
|
|
|
117
|
+
app.use(serve({ root: "./public" }));
|
|
118
|
+
|
|
113
119
|
app.use(validate(z.object({ name: z.string() })));
|
|
114
120
|
|
|
115
121
|
app.use(jwt(key));
|
|
@@ -138,6 +144,17 @@ const Page = () => (
|
|
|
138
144
|
})
|
|
139
145
|
);
|
|
140
146
|
|
|
147
|
+
const requireAuth = async (req: any, next: any) => {
|
|
148
|
+
const token = req.headers.get("Authorization");
|
|
149
|
+
if (!token) return new Response("Unauthorized", { status: 401 });
|
|
150
|
+
req.user = { id: 1, name: "Alice" };
|
|
151
|
+
return next();
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
app.get("/protected", requireAuth, async (req) => {
|
|
155
|
+
return { user: req.user };
|
|
156
|
+
});
|
|
157
|
+
|
|
141
158
|
const users = db.sqlite("./db.sqlite", "CREATE TABLE users...");
|
|
142
159
|
|
|
143
160
|
app.ws("/chat", {
|
|
@@ -145,6 +162,8 @@ app.ws("/chat", {
|
|
|
145
162
|
message: (ws, msg) => ws.send(`Echo: ${msg}`)
|
|
146
163
|
});
|
|
147
164
|
|
|
165
|
+
app.get("/route-level" )
|
|
166
|
+
|
|
148
167
|
|
|
149
168
|
app.get("/protected", auth(), (req) => ({ user: req.user }));
|
|
150
169
|
app.get("/api", apiKey({ keys: ["key_123"] }), handler);
|
package/dist/middleware.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,KAAK,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,KAAK,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;AAIhD,eAAO,MAAM,IAAI,GAAI,SAAQ,MAAY,MACzB,KAAK,GAAG,EAAE,MAAM,QAAQ,iBA+BvC,CAAC;AAGF,eAAO,MAAM,MAAM,SACH,KAAK,aAAa,EAAE,MAAM,IAAI,kCAM7C,CAAC;AAGF,eAAO,MAAM,OAAO,GAAU,SAAS,GAAG,EAAE,QAAQ,UAAU,EAAE,WAAW,MAAM,oBAQhF,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,KAAK,UAAU,MACnB,KAAK,aAAa,EAAE,MAAM,IAAI,kCAuB7C,CAAC;AAGF,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,EAAE,eAAW,MAGlC,KAAK,aAAa,EAAE,MAAM,IAAI,kCAqC7C,CAAC;AAGF,eAAO,MAAM,QAAQ,GAAI,QAAQ,CAAC,CAAC,SAAS,MAC5B,KAAK,GAAG,EAAE,MAAM,QAAQ,iBAyEvC,CAAC;AAGF,eAAO,MAAM,IAAI,GAAI,UAAU;IAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,MACnC,KAAK,aAAa,EAAE,MAAM,IAAI,kCAwB7C,CAAC;AAGF,eAAO,MAAM,MAAM,GAAI,SAAS;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,MAInD,KAAK,aAAa,EAAE,MAAM,IAAI,kCAa7C,CAAC;AAGF,eAAO,MAAM,QAAQ,GAAI,UAAU;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC;CAC1C,MAIe,KAAK,aAAa,EAAE,MAAM,IAAI,kCAqC7C,CAAC;AAGF,eAAO,MAAM,OAAO,GAAI,SAAS;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,MAce,KAAK,aAAa,EAAE,MAAM,IAAI,kCA+C7C,CAAC"}
|