WitGeneratorConfig.fromJson constructor

WitGeneratorConfig.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 WitGeneratorConfig.fromJson(Object? json_) {
  final json = json_ is Map
      ? _spec.fields.map((f) => json_[f.label]).toList(growable: false)
      : json_;
  return switch (json) {
    [
      final inputs,
      final jsonSerialization,
      final copyWith_,
      final equalityAndHashCode,
      final toString_,
      final generateDocs,
      final fileHeader,
      final objectComparator,
      final useNullForOption,
      final requiredOption,
      final int64Type,
      final typedNumberLists,
      final asyncWorker,
      final sameClassUnion
    ] ||
    (
      final inputs,
      final jsonSerialization,
      final copyWith_,
      final equalityAndHashCode,
      final toString_,
      final generateDocs,
      final fileHeader,
      final objectComparator,
      final useNullForOption,
      final requiredOption,
      final int64Type,
      final typedNumberLists,
      final asyncWorker,
      final sameClassUnion
    ) =>
      WitGeneratorConfig(
        inputs: WitGeneratorInput.fromJson(inputs),
        jsonSerialization: jsonSerialization! as bool,
        copyWith_: copyWith_! as bool,
        equalityAndHashCode: equalityAndHashCode! as bool,
        toString_: toString_! as bool,
        generateDocs: generateDocs! as bool,
        fileHeader: Option.fromJson(
            fileHeader,
            (some) =>
                some is String ? some : (some! as ParsedString).value).value,
        objectComparator: Option.fromJson(
            objectComparator,
            (some) =>
                some is String ? some : (some! as ParsedString).value).value,
        useNullForOption: useNullForOption! as bool,
        requiredOption: requiredOption! as bool,
        int64Type: Int64TypeConfig.fromJson(int64Type),
        typedNumberLists: typedNumberLists! as bool,
        asyncWorker: asyncWorker! as bool,
        sameClassUnion: sameClassUnion! as bool,
      ),
    _ => throw Exception('Invalid JSON $json_')
  };
}