fix: remove dependency from tenant router
This commit is contained in:
@@ -12,7 +12,7 @@ The Worker forwards each request to one of two Render services based on path:
|
||||
|
||||
| Host / path | Upstream |
|
||||
| ------------- | ------------------------------------------------------------ |
|
||||
| `embed.*` | R2 `assets` bucket — `/{widget}` maps to internal keys (`@cio/utils/constants/embeds`) |
|
||||
| `embed.*` | R2 `assets` bucket — `/{widget}` maps to internal keys (`src/embed-assets.ts`) |
|
||||
| `/proxy/*` | API service (`/proxy` prefix stripped, rest forwarded as-is) |
|
||||
| anything else | Dashboard service |
|
||||
|
||||
@@ -29,8 +29,6 @@ It preserves the original host as `X-Forwarded-Host` so:
|
||||
|
||||
## Deploy
|
||||
|
||||
`deploy` runs `predeploy`, which builds `@cio/utils` first (Wrangler resolves `@cio/utils/constants/*` from `dist/`).
|
||||
|
||||
```bash
|
||||
pnpm --filter @cio/tenant-router deploy
|
||||
```
|
||||
|
||||
@@ -5,17 +5,11 @@
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "wrangler dev",
|
||||
"predev": "pnpm --filter @cio/utils build",
|
||||
"deploy": "wrangler deploy",
|
||||
"predeploy": "pnpm --filter @cio/utils build",
|
||||
"tail": "wrangler tail",
|
||||
"typecheck": "tsc --noEmit",
|
||||
"pretypecheck": "pnpm --filter @cio/utils build",
|
||||
"format": "prettier --write ."
|
||||
},
|
||||
"dependencies": {
|
||||
"@cio/utils": "workspace:*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@cloudflare/workers-types": "^4.20250109.0",
|
||||
"typescript": "^5.5.2",
|
||||
|
||||
@@ -1,4 +1,20 @@
|
||||
import { EMBED_WIDGET_ROUTES } from '@cio/utils/constants/embeds';
|
||||
type EmbedWidgetRoute = {
|
||||
scriptKey: string;
|
||||
pageKey?: string;
|
||||
pageQueryParam?: string;
|
||||
};
|
||||
|
||||
/** Public path segment → R2 object keys under the `assets` bucket. */
|
||||
const EMBED_WIDGET_ROUTES: Record<string, EmbedWidgetRoute> = {
|
||||
'course-widget': {
|
||||
scriptKey: 'embeds/course-widget/course-widget.js',
|
||||
pageKey: 'embeds/course-widget/embed.html',
|
||||
pageQueryParam: 'key'
|
||||
},
|
||||
'question-type-picker': {
|
||||
scriptKey: 'embeds/question-type-picker/question-type-picker.js'
|
||||
}
|
||||
};
|
||||
|
||||
const EMBED_CONTENT_TYPES: Record<string, string> = {
|
||||
html: 'text/html',
|
||||
@@ -43,7 +59,7 @@ function cacheControlForObjectKey(objectKey: string): string {
|
||||
}
|
||||
|
||||
function resolvePublicWidgetKey(pathname: string, searchParams: URLSearchParams): string | null {
|
||||
const route = EMBED_WIDGET_ROUTES[pathname as keyof typeof EMBED_WIDGET_ROUTES];
|
||||
const route = EMBED_WIDGET_ROUTES[pathname];
|
||||
if (!route) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user