yumemi/gen/emit/gate
面の門 src/gen/gate.mjs ── 生成 shell の entry lifecycle hook。
before_route(request, env)── route 表(literal-first)で Page を引き、URL の段の-をフォルダの_に 戻し、門(sign-in・主体・同意・既定の admit)と条件つきの redirect を当てる。 返り値は{response}(門で止めた)か{request, route, session}(通した。route は外れなら null)after_response(request, env, response)── Page ごとの CSP の header と、数える印<meta name="yumemi-pageview">を足す(0.12)。印は頁の読み込みでも client 遷移の fetch でも同じ meta だけで、inline の script は出さない ── 送るのは client.mjs の送り手(yumemi/front/pageview.mjs)1 つserve(dispatch)── 上の 2 本で dispatch を挟んだ Worker のfetch。生成 shell の export default
値の運び(route の値・session・query を読みへ渡すこと)はここに無い。
Values
pub fn csp_for(
gate: gate.Gate,
path: String,
) -> option.Option(String)
Page の route の CSP の header の値(0.12)。csp の宣言のうち route に当たるものの指令を宣言順に足し合わせ、
同じ指令の host は 1 つにまとめる。各指令の先頭に 'self' を 1 つ自動で足す(framework の受け口・遷移の取得・
media は同じ origin にある。外す口は持たない)。当たる宣言が無ければ None。client 遷移の route 表(emit/front の
navigation)も同じ値を Page ごとに持つ。
pub fn csp_routes(
gate: gate.Gate,
route_paths: List(String),
) -> List(#(String, String))
route ごとの CSP(CSP を持つ route だけ)。