yumemi/gen/emit/http
src/gen/http_runtime.mjs(WGy r3)── HTTP の入口の表。検査 1〜10 の機関は yumemi の
yumemi/server/http.mjs(http(spec))で、ここは宣言から導いた表だけを書く。
- hosts:入口(
src/entry.gleam)の名 -> env の<NAME>_HOST - args:Service の
Argsの欄の型から decode の語彙(値型・整数・日付・blob・cursor・色・列挙・Option・List)。 型から導けない欄は ★ hookarg_<service>_<key>/arg_<key>(宣言した名がそのまま勝つ) - phaseGates:root を持たず、句が全部
As<Entity>で相を絞る Service(主体の相で門を閉じる) - accepted:Accepted の応答の欄(root の Entity の名)
- ports:attached の口のうち、機関を framework が持つ役(
attached_rolesのDeclare/ReadSession/SwitchSubject)でないものは ★ hookattached_<name> - roles / browserCookie:
attached_rolesとbrowserの宣言をそのまま(framework は app の口の名も cookie の名も申告の種類の名も知らない ── WGy r4、0.12)。種類を持つ役はdeclare:<kind>/needs_declared:<kind> - pageviews:面の門の数える口(0.12)。入口の名 ->
{only, fields, sink}。ToServiceの sink は Service が 印を root に運ぶか(Carried(.., "browser", ..))をbrowserに持つ ── 運ばない Service では印の cookie を焼かない - hooks:業務の行(
args_before/api_encode/failure_status/failure/respond/route_skip/origin/early/judge/raw_body/attached_args/external_id/db_error/write_gate)
Values
pub fn carries_browser(app: model.App, service: String) -> Bool
Service が印(Carried(.., "browser", ..))を root に運ぶか。
pub fn decodes_from_event(
app: model.App,
units: List(source.Unit),
service: model.Service,
arg: model.Arg,
field: String,
) -> Result(Bool, Nil)
数える口の event の欄 field の値から、Args の欄 arg の型を decode できるか(51 v6 第 36 条)。
event の欄の値は文字列で、kind は initial / reload / spa の 3 値。文字列から読む語彙(文字列・値型・hook)は
どの欄でも通し、client_at は日時も、kind は 3 値を全部持つ列挙も通す。Option は中身を見る。
型から decode を導けない欄は Error(decode を導けない の検査が止める)。
pub fn text(
app: model.App,
units: List(source.Unit),
header: String,
) -> #(String, List(stop.Note))