public bool TryConvert(Engine engine, object value, out JsValue result) { result = null; if (value is Enum) { result = value.ToString(); return(true); } switch (value) { case IUser user: result = JintUser.Create(engine, user); return(true); case ClaimsPrincipal principal: result = JintUser.Create(engine, principal); return(true); case Instant instant: result = JsValue.FromObject(engine, instant.ToDateTimeUtc()); return(true); case NamedContentData content: result = new ContentDataObject(engine, content); return(true); } return(false); }
private static NamedContentData ExecuteScript(NamedContentData original, string script) { var engine = new Engine(o => o.Strict()); var value = new ContentDataObject(engine, original); engine.SetValue("data", value); engine.Execute(script); value.TryUpdate(out var result); return(result); }
public bool TryConvert(Engine engine, object value, [MaybeNullWhen(false)] out JsValue result) { result = null !; if (value is Enum) { result = value.ToString(); return(true); } switch (value) { case IUser user: result = JintUser.Create(engine, user); return(true); case ClaimsPrincipal principal: result = JintUser.Create(engine, principal); return(true); case DomainId domainId: result = domainId.ToString(); return(true); case Guid guid: result = guid.ToString(); return(true); case Instant instant: result = JsValue.FromObject(engine, instant.ToDateTimeUtc()); return(true); case Status status: result = status.ToString(); return(true); case ContentData content: result = new ContentDataObject(engine, content); return(true); } return(false); }