mangayomi-mirror/lib/eval/dart/bridge/document.dart
Moustapha Kodjo Amadou 80efee40d1 dart format
2025-05-30 17:43:42 +01:00

56 lines
2.4 KiB
Dart

import 'package:d4rt/d4rt.dart';
import 'package:html/dom.dart';
import 'package:mangayomi/eval/model/document.dart';
class MDocumentBridge {
final documentBridgedClass = BridgedClassDefinition(
nativeType: MDocument,
name: 'MDocument',
constructors: {
'': (visitor, positionalArgs, namedArgs) {
return MDocument(positionalArgs[0] as Document);
},
},
getters: {
'body': (visitor, target) => (target as MDocument).body,
'documentElement': (visitor, target) =>
(target as MDocument).documentElement,
'head': (visitor, target) => (target as MDocument).head,
'parent': (visitor, target) => (target as MDocument).parent,
'outerHtml': (visitor, target) => (target as MDocument).outerHtml,
'text': (visitor, target) => (target as MDocument).text,
'children': (visitor, target) => (target as MDocument).children,
},
methods: {
'select': (visitor, target, positionalArgs, namedArgs) =>
(target as MDocument).select(positionalArgs[0] as String),
'selectFirst': (visitor, target, positionalArgs, namedArgs) =>
(target as MDocument).selectFirst(positionalArgs[0] as String),
'getElementsByClassName': (visitor, target, positionalArgs, namedArgs) =>
(target as MDocument).getElementsByClassName(
positionalArgs[0] as String,
),
'getElementsByTagName': (visitor, target, positionalArgs, namedArgs) =>
(target as MDocument).getElementsByTagName(
positionalArgs[0] as String,
),
'getElementById': (visitor, target, positionalArgs, namedArgs) =>
(target as MDocument).getElementById(positionalArgs[0] as String),
'attr': (visitor, target, positionalArgs, namedArgs) =>
(target as MDocument).attr(positionalArgs[0] as String),
'hasAttr': (visitor, target, positionalArgs, namedArgs) =>
(target as MDocument).hasAttr(positionalArgs[0] as String),
'xpath': (visitor, target, positionalArgs, namedArgs) =>
(target as MDocument).xpath(positionalArgs[0] as String),
'xpathFirst': (visitor, target, positionalArgs, namedArgs) =>
(target as MDocument).xpathFirst(positionalArgs[0] as String),
},
);
void registerBridgedClasses(D4rt interpreter) {
interpreter.registerBridgedClass(
documentBridgedClass,
'package:mangayomi/bridge_lib.dart',
);
}
}