convertToValue<T> static method
Implementation
static T? convertToValue<T>(
Pointer<JSContext> context, JsEvalResult evalResult) {
Type type = getTypeForJsValue(evalResult.rawResult);
if (_jsIsArray(context, evalResult.rawResult) == 1) {
Pointer<JSValueConst>? stringifiedValue = calloc();
Pointer<Pointer<Utf8NullTerminated>> stringResultPointer = calloc();
_jSJSONStringify(
context,
evalResult.rawResult,
stringifiedValue,
stringResultPointer,
);
final stringResult =
Utf8NullTerminated.fromUtf8(stringResultPointer.value);
return jsonDecode(stringResult);
}
switch (type) {
case int:
return int.parse(evalResult.stringResult) as T;
case bool:
return (evalResult.stringResult == "true") as T;
case String:
return (evalResult.stringResult) as T;
case Null:
return null;
case Object:
Pointer<JSValueConst>? stringifiedValue = calloc<JSValueConst>();
Pointer<Pointer<Utf8NullTerminated>> stringResultPointer = calloc();
_jSJSONStringify(
context,
evalResult.rawResult,
stringifiedValue,
stringResultPointer,
);
final stringResult =
Utf8NullTerminated.fromUtf8(stringResultPointer.value);
return jsonDecode(stringResult);
}
return null;
}