| // Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| @JS() | |
| library; | |
| import 'dart:convert'; | |
| // TODO: https://github.com/dart-lang/webdev/issues/2508 | |
| // ignore: deprecated_member_use | |
| import 'dart:html'; | |
| // TODO: https://github.com/dart-lang/webdev/issues/2508 | |
| // ignore: deprecated_member_use | |
| import 'dart:js'; | |
| import 'package:dwds/data/debug_info.dart'; | |
| // TODO: https://github.com/dart-lang/webdev/issues/2508 | |
| // ignore: deprecated_member_use | |
| import 'package:js/js.dart'; | |
| void main() { | |
| final debugInfoJson = _readDartDebugInfo(); | |
| document.dispatchEvent(CustomEvent('dart-app-ready', detail: debugInfoJson)); | |
| } | |
| String _readDartDebugInfo() { | |
| final windowContext = JsObject.fromBrowserObject(window); | |
| return jsonEncode( | |
| DebugInfo( | |
| appEntrypointPath: windowContext['\$dartEntrypointPath'] as String?, | |
| appId: windowContext['\$dartAppId'] as String?, | |
| appInstanceId: windowContext['\$dartAppInstanceId'] as String?, | |
| appOrigin: window.location.origin, | |
| appUrl: window.location.href, | |
| extensionUrl: windowContext['\$dartExtensionUri'] as String?, | |
| isInternalBuild: windowContext['\$isInternalBuild'] as bool?, | |
| isFlutterApp: windowContext['\$isFlutterApp'] as bool?, | |
| ), | |
| ); | |
| } |