addJavascriptFile method

  1. @override
Future<void> addJavascriptFile(
  1. String filePath
)
override

Implementation

@override
Future<void> addJavascriptFile(String filePath) async {
  await _ensureBridgeInitialized();

  final scriptElement = web.HTMLScriptElement()
    ..type = 'text/javascript'
    ..src = filePath;

  final completer = Completer<void>();

  void loadHandler(web.Event event) {
    completer.complete();
  }

  void errorHandler(web.Event event) {
    completer.completeError('Failed to load JavaScript file: $filePath');
  }

  scriptElement.addEventListener('load', loadHandler.toJS);
  scriptElement.addEventListener('error', errorHandler.toJS);

  web.document.head?.appendChild(scriptElement);

  return completer.future;
}