mangayomi/lib/eval/compiler/compiler.dart
2023-10-25 19:04:57 +01:00

27 lines
917 B
Dart

import 'dart:typed_data';
import 'package:dart_eval/dart_eval.dart';
import 'package:mangayomi/eval/bridge/m_http_response.dart';
import 'package:mangayomi/eval/bridge/m_manga.dart';
import 'package:mangayomi/eval/bridge/m_status.dart';
import 'package:mangayomi/eval/bridge/m_track.dart';
import 'package:mangayomi/eval/bridge/m_video.dart';
import 'package:mangayomi/eval/bridge/m_bridge.dart';
import 'package:mangayomi/eval/utils.dart';
Uint8List compilerEval(String sourceCode) {
final compiler = Compiler();
compiler.defineBridgeClasses([
$MBridge.$declaration,
$MManga.$declaration,
$MVideo.$declaration,
$MTrack.$declaration,
$MHttpResponse.$declaration
]);
compiler.defineBridgeEnum($MStatus.$declaration);
final program = compiler.compile({
'mangayomi': {'source_code.dart': sourceCode, 'utils.dart': utils}
});
final bytecode = program.write();
return bytecode;
}