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 だけ)。
pub fn csp_unmatched(gate: gate.Gate) -> option.Option(String)
route に当たらない path の CSP(0.14.3 r2、失敗の頁を宣言した面の門だけが使う)。Every を含む csp の宣言の
指令を、route の CSP と同じ規則で足し合わせる。無ければ None。
pub fn text_failure(
header: String,
gate: gate.Gate,
route_paths: List(String),
live: Bool,
failure: Bool,
) -> String
failure(0.14.3、面が src/failure.gleam で失敗の頁を宣言した):門の平文の失敗(403・404・503・Deny)を
serve の 2 つ目の引数(生成の shell の失敗の頁)へ渡し、route に当たらない path の頁を求める要求にも Every の
規則を掛ける。shell と共に使う plain・isPlain・wantsPage を export する。False の出力は 0.14.2 と同じ字。