UndoManagerOptions.fromJson constructor

UndoManagerOptions.fromJson(
  1. Object? json_
)

Returns a new instance from a JSON value. May throw if the value does not have the expected structure.

Implementation

factory UndoManagerOptions.fromJson(Object? json_) {
  final json = json_ is Map
      ? _spec.fields.map((f) => json_[f.label]).toList(growable: false)
      : json_;
  return switch (json) {
    [
      final captureTimeoutMillis,
      final trackedOrigins,
      final captureTransaction
    ] ||
    (
      final captureTimeoutMillis,
      final trackedOrigins,
      final captureTransaction
    ) =>
      UndoManagerOptions(
        captureTimeoutMillis: Option.fromJson(
            captureTimeoutMillis, (some) => bigIntFromJson(some)).value,
        trackedOrigins: Option.fromJson(
            trackedOrigins,
            (some) => (some! as Iterable)
                .map((e) => (e is Uint8List
                    ? e
                    : Uint8List.fromList((e! as List).cast())))
                .toList()).value,
        captureTransaction:
            Option.fromJson(captureTransaction, (some) => some! as bool)
                .value,
      ),
    _ => throw Exception('Invalid JSON $json_')
  };
}