//
// Copyright (c) 2024, Brian Frank and Andy Frank
// Licensed under the Academic Free License version 3.0
//
// History:
// 13 Feb 2024 Matthew Giannini Creation
//
**
** JsProps
**
class JsProps
{
static Void writePod(OutStream out, Pod pod, Uri uri, Duration maxAge := 1sec)
{
props := Env.cur.props(pod, uri, maxAge)
writeProps(out, "${pod.name}:${uri}", props)
}
static Void writeProps(OutStream out, Str key, Str:Str props)
{
if (!props.isEmpty) doWrite(JsWriter(out), key, props)
}
internal static Void doWrite(JsWriter js, Str key, Str:Str props)
{
js.wl("(function() {")
js.wl("let m = sys.Map.make(sys.Str.type\$, sys.Str.type\$);")
props.each |v,k| { js.wl("m.set(${k.toCode},${v.toCode});") }
js.wl("sys.Env.cur().__props(${key.toCode}, m);")
js.wl("})();")
}
}