keyComands property

List<Command> keyComands
final

Implementation

static final List<Command> keyComands = [
  Command(
    prefix: '\@',
    command: 'JsonKey',
    callback: (DartDeclaration self, String? testSubject,
        {String? key, dynamic value}) {
      var jsonKey = JsonKeyMutate.fromJsonKeyParamaString(testSubject);
      self.jsonKey = jsonKey;
      var newDeclaration = DartDeclaration.fromCommand(valueCommands, self,
          testSubject: value, key: key, value: value);
      self.decorators.replaceDecorator(Decorator(self.jsonKey.toString()));
      self.type = DartDeclaration.getTypeFromJsonKey(testSubject) ??
          newDeclaration.type ??
          self.type;
      self.name = DartDeclaration.getNameFromJsonKey(testSubject) ??
          newDeclaration.name ??
          self.name;
      if (self.name == null) self.setName(value);

      return self;
    },
  ),
  Command(
    prefix: '\@',
    command: 'import',
    callback: (DartDeclaration self, dynamic testSubject,
        {String? key, dynamic value}) {
      self.addImport(value);
      return self;
    },
  ),
  Command(
    prefix: '@',
    command: '_',
    callback: (DartDeclaration self, dynamic testSubject,
        {String? key, dynamic value}) {
      if (key != null && key.substring(1) != null)
        self.type = key.substring(1);
      self.name = value;
      return self;
    },
  ),
  Command(
    prefix: '',
    command: '',
    callback: (DartDeclaration self, dynamic testSubject,
        {String? key, dynamic value}) {
      if (key != null) {
        self.setName(key);
        oldKey = key;
        if (value == null) {
          self.type = 'dynamic';
          return self;
        }

        if (value is Map<String, dynamic>) {
          self.type = key.toTitleCase();
          self.nestedClasses?.add(JsonModel.fromMap(key, value));
          return self;
        }
      }

      if (value is List && value.isNotEmpty) {
        final firstListValue = value.first;
        if (firstListValue is List) {
          final nestedFirst = firstListValue.first;
          if (nestedFirst is Map<String, dynamic>) {
            final key = nestedFirst['\$key'];
            nestedFirst.remove('\$key');
            self.type =
                'List<List<${key != null ? key.toTitleCase() : oldKey.toTitleCase()}>>';
            self.nestedClasses?.add(JsonModel.fromMap(
                key != null ? key.toTitleCase() : oldKey.toTitleCase(),
                nestedFirst));
          }
        } else if (firstListValue is Map<String, dynamic>) {
          final key = firstListValue['\$key'];
          firstListValue.remove('\$key');
          self.type =
              'List<${key != null ? key.toString().toTitleCase() : oldKey.toTitleCase()}>';
          self.nestedClasses?.add(JsonModel.fromMap(
              key != null ? key.toTitleCase() : oldKey.toTitleCase(),
              firstListValue));
        } else {
          final listValueType = firstListValue.runtimeType.toString();
          self.type = 'List<$listValueType>';
        }
        return self;
      }

      var newDeclaration = DartDeclaration.fromCommand(
        valueCommands,
        self,
        testSubject: value,
        key: key,
        value: value,
      );

      self.type = newDeclaration.type ?? value.runtimeType.toString();

      return self;
    },
  ),
];