///|
fn moonbit_internal_json_object(
json : Json,
context : String,
) -> Map[String, Json] raise OpenCodeSdkError {
@lens.root().get(json) catch {
_ => raise InvalidEvent(message="\{context} must be an object")
}
}
///|
fn moonbit_internal_required_json(
object : Map[String, Json],
key : String,
context : String,
) -> Json raise OpenCodeSdkError {
@lens.root().json(key).get(Json::object(object)) catch {
_ => raise InvalidEvent(message="\{context}.\{key} is required")
}
}
///|
fn moonbit_internal_required_string(
object : Map[String, Json],
key : String,
context : String,
) -> String raise OpenCodeSdkError {
@lens.root().string(key).get(Json::object(object)) catch {
@lens.LensError::LensError(issue) if issue.code ==
@lens.IssueCode::MissingProperty =>
raise InvalidEvent(message="\{context}.\{key} is required")
_ => raise InvalidEvent(message="\{context}.\{key} must be a string")
}
}
///|
fn moonbit_internal_required_double(
object : Map[String, Json],
key : String,
context : String,
) -> Double raise OpenCodeSdkError {
@lens.root().number(key).get(Json::object(object)) catch {
@lens.LensError::LensError(issue) if issue.code ==
@lens.IssueCode::MissingProperty =>
raise InvalidEvent(message="\{context}.\{key} is required")
_ => raise InvalidEvent(message="\{context}.\{key} must be a number")
}
}
///|
fn moonbit_internal_required_int(
object : Map[String, Json],
key : String,
context : String,
) -> Int raise OpenCodeSdkError {
@lens.root().int(key).get(Json::object(object)) catch {
@lens.LensError::LensError(issue) if issue.code ==
@lens.IssueCode::MissingProperty =>
raise InvalidEvent(message="\{context}.\{key} is required")
_ => raise InvalidEvent(message="\{context}.\{key} must be a number")
}
}