Files
AFFiNE-Mirror/packages/frontend/apps/ios/App/App/JSValueContainerExt.swift
T
Lakr 9a1ce2ba3c chore: define view model (#12949)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Introduced a chat interface with message list, empty state view, and
support for user, assistant, and system messages.
* Added a chat manager for session and message handling, including
session creation, message sending, and error management.
* Implemented various chat cell types (attachments, context references,
workflow status, loading, and error cells) with corresponding data
models and view models.
* Enabled asynchronous message sending from the input box with error
alerts and automatic session creation.
* Added workflow and context-related models for advanced chat features.

* **Enhancements**
* Improved UI responsiveness with table view updates and dynamic empty
state handling.
  * Provided a method to clear all attachments in the input box.

* **Bug Fixes / Style**
* Refined code formatting, access control, and minor stylistic
improvements across multiple files for consistency.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-27 06:36:37 +00:00

56 lines
1.2 KiB
Swift

//
// JSValueContainerExt.swift
// App
//
// Created by EYHN on 2025/1/2.
//
import Capacitor
enum RequestParamError: Error {
case request(key: String)
}
public extension JSValueContainer {
func getStringEnsure(_ key: String) throws -> String {
guard let str = getString(key) else {
throw RequestParamError.request(key: key)
}
return str
}
func getIntEnsure(_ key: String) throws -> Int {
guard let int = getInt(key) else {
throw RequestParamError.request(key: key)
}
return int
}
func getDoubleEnsure(_ key: String) throws -> Double {
guard let doub = getDouble(key) else {
throw RequestParamError.request(key: key)
}
return doub
}
func getBoolEnsure(_ key: String) throws -> Bool {
guard let bool = getBool(key) else {
throw RequestParamError.request(key: key)
}
return bool
}
func getArrayEnsure(_ key: String) throws -> JSArray {
guard let arr = getArray(key) else {
throw RequestParamError.request(key: key)
}
return arr
}
func getArrayEnsure<T>(_ key: String, _ ofType: T.Type) throws -> [T] {
guard let arr = getArray(key, ofType) else {
throw RequestParamError.request(key: key)
}
return arr
}
}