SetOptions constructor

SetOptions({
  1. bool? merge = null,
  2. List? mergeFields = null,
})

Creates a SetOptions instance.

Implementation

SetOptions({
  // ignore: avoid_init_to_null
  this.merge = null,
  // ignore: avoid_init_to_null
  List<dynamic>? mergeFields = null,
}) {
  // ignore: prefer_asserts_in_initializer_lists
  assert(!(merge == null && mergeFields == null),
      "options must provide 'merge' or 'mergeFields'");
  // ignore: prefer_asserts_in_initializer_lists
  assert(!(mergeFields != null && merge != null),
      "options cannot have both 'merge' & 'mergeFields'");
  if (mergeFields != null) {
    assert(
        mergeFields
                .where((value) => value is String || value is FieldPath)
                .length ==
            mergeFields.length,
        '[mergeFields] must be a [String] or [FieldPath]');
    this.mergeFields = mergeFields.map((field) {
      if (field is String) return FieldPath.fromString(field);
      return field as FieldPath;
    }).toList(growable: false);
  }
}