Line data Source code
1 : import 'dart:async';
2 :
3 : import 'package:matrix/matrix.dart';
4 :
5 : class NativeImplementationsWebWorker extends NativeImplementations {
6 : /// the default handler for stackTraces in web workers
7 0 : static StackTrace defaultStackTraceHandler(String obfuscatedStackTrace) {
8 0 : return StackTrace.fromString(obfuscatedStackTrace);
9 : }
10 :
11 0 : NativeImplementationsWebWorker(
12 : Uri href, {
13 : Duration timeout = const Duration(seconds: 30),
14 : WebWorkerStackTraceCallback onStackTrace = defaultStackTraceHandler,
15 : });
16 : }
17 :
18 : class WebWorkerError extends Error {
19 : /// the error thrown in the web worker. Usually a [String]
20 : final Object? error;
21 :
22 : /// de-serialized [StackTrace]
23 : @override
24 : final StackTrace stackTrace;
25 :
26 0 : WebWorkerError({required this.error, required this.stackTrace});
27 :
28 0 : @override
29 : String toString() {
30 0 : return '$error, $stackTrace';
31 : }
32 : }
33 :
34 : /// converts a stringifyed, obfuscated [StackTrace] into a [StackTrace]
35 : typedef WebWorkerStackTraceCallback = FutureOr<StackTrace> Function(
36 : String obfuscatedStackTrace,
37 : );
|