jsify static method
JSAny?
jsify(
- dynamic dartObject
)
Implementation
static JSAny? jsify(dynamic dartObject) {
// We do exhaustive types check here
// because `dartObject.jsify()` throws a "NoSuchMethodError: 'jsify'"
// without explicit cast.
if (dartObject == null) return null;
try {
if (dartObject is BigInt) return dartObject.toJS;
if (dartObject is Iterable) return dartObject.toJSArray;
if (dartObject is String) return dartObject.toJS;
if (dartObject is int) return dartObject.toJS;
if (dartObject is bool) return dartObject.toJS;
if (dartObject is double) return dartObject.toJS;
if (dartObject is num) return dartObject.toJS;
if (dartObject is Int8List) return dartObject.toJS;
if (dartObject is Uint8List) return dartObject.toJS;
if (dartObject is Int16List) return dartObject.toJS;
if (dartObject is Uint16List) return dartObject.toJS;
if (dartObject is Int32List) return dartObject.toJS;
if (dartObject is Uint32List) return dartObject.toJS;
if (dartObject is Float32List) return dartObject.toJS;
if (dartObject is Float64List) return dartObject.toJS;
if (dartObject is List) return dartObject.toJSArray;
if (dartObject is Map) {
// Handle any type of Map, not just Map<String, dynamic>
final jsObject = JSObject();
dartObject.forEach((key, value) {
if (key is String) {
jsObject[key] = UtilsJS.jsify(value);
}
});
return jsObject;
}
return dartObject.jsify();
} catch (e) {
// WASM fallback - if jsify fails, return null to prevent crashes
return null;
}
}