toJson method

Map<String, Object?> toJson()

Implementation

Map<String, Object?> toJson() => {
  'name': name,
  'kind': kind.name,
  if (defaultValue != null)
    'default': encodePropertyValue(defaultValue!, (id) => id.toToken()),
  if (doc != null) 'doc': doc,
  if (group != null) 'group': group,
  if (resourceKind != null) 'resourceKind': resourceKind,
  if (options != null) 'options': options,
  if (constraints.isNotEmpty)
    'constraints': [
      for (final constraint in constraints) constraint.toJson(),
    ],
  if (formerNames.isNotEmpty) 'formerNames': formerNames,
  if (transient) 'transient': true,
  if (itemDef != null) 'item': itemDef!.toJson(),
  if (objectFields != null)
    'fields': [for (final field in objectFields!) field.toJson()],
  if (unionVariants != null) ...{
    if (unionTag != 'kind') 'unionTag': unionTag,
    'variants': {
      for (final entry in unionVariants!.entries)
        entry.key: [for (final field in entry.value) field.toJson()],
    },
  },
};