/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
packages/server/src/cors.ts
34 строки
1 KB
Shoubhit Dash
refactor(core): canonicalize pty service (#32182)
14 июн 2026, 13:46
Не верифицирован
14 июн 2026, 13:46
f2cf607
Код
Авторство
О чём код?
import { Context } from "effect" const opencodeOrigin = /^https:\/\/([a-z0-9-]+\.)*opencode\.ai$/ export type CorsOptions = { readonly cors?: ReadonlyArray<string> } export const CorsConfig = Context.Reference<CorsOptions | undefined>("@opencode/ServerCorsConfig", { defaultValue: () => undefined, }) export function isAllowedCorsOrigin(input: string | undefined, opts?: CorsOptions) { if (!input) return true if (input.startsWith("http://localhost:")) return true if (input.startsWith("http://127.0.0.1:")) return true if (input.startsWith("oc://renderer")) return true if (input === "tauri://localhost" || input === "http://tauri.localhost" || input === "https://tauri.localhost") return true if (opencodeOrigin.test(input)) return true return opts?.cors?.includes(input) ?? false } export function isAllowedRequestOrigin(input: string | undefined, host: string | undefined, opts?: CorsOptions) { if (!input) return true if (host && sameHost(input, host)) return true return isAllowedCorsOrigin(input, opts) } function sameHost(origin: string, host: string) { try { return new URL(origin).host === host } catch { return false } }