96 lines
3.0 KiB
Dart
96 lines
3.0 KiB
Dart
import 'package:brick_generator/models/variable_string_syntax.dart';
|
|
import 'package:yaml/yaml.dart';
|
|
|
|
class VariableSyntax {
|
|
String? camelCase;
|
|
String? constantCase;
|
|
String? dotCase;
|
|
String? headerCase;
|
|
String? lowerCase;
|
|
String? pascalCase;
|
|
String? paramCase;
|
|
String? sentenceCase;
|
|
String? snakeCase;
|
|
String? titleCase;
|
|
String? upperCase;
|
|
|
|
VariableSyntax({
|
|
required this.camelCase,
|
|
required this.constantCase,
|
|
required this.dotCase,
|
|
required this.headerCase,
|
|
required this.lowerCase,
|
|
required this.pascalCase,
|
|
required this.paramCase,
|
|
required this.sentenceCase,
|
|
required this.snakeCase,
|
|
required this.titleCase,
|
|
required this.upperCase,
|
|
});
|
|
|
|
VariableSyntax._();
|
|
factory VariableSyntax.parser() => VariableSyntax._();
|
|
|
|
static VariableSyntax? from(YamlMap? data) => data != null
|
|
? VariableSyntax(
|
|
camelCase: data[VariableStringSyntax.camelCase.mapKey] as String?,
|
|
constantCase:
|
|
data[VariableStringSyntax.constantCase.mapKey] as String?,
|
|
dotCase: data[VariableStringSyntax.dotCase.mapKey] as String?,
|
|
headerCase: data[VariableStringSyntax.headerCase.mapKey] as String?,
|
|
lowerCase: data[VariableStringSyntax.lowerCase.mapKey] as String?,
|
|
pascalCase: data[VariableStringSyntax.pascalCase.mapKey] as String?,
|
|
paramCase: data[VariableStringSyntax.paramCase.mapKey] as String?,
|
|
sentenceCase:
|
|
data[VariableStringSyntax.sentenceCase.mapKey] as String?,
|
|
snakeCase: data[VariableStringSyntax.snakeCase.mapKey] as String?,
|
|
titleCase: data[VariableStringSyntax.titleCase.mapKey] as String?,
|
|
upperCase: data[VariableStringSyntax.upperCase.mapKey] as String?,
|
|
)
|
|
: null;
|
|
String? getValue(VariableStringSyntax key) {
|
|
switch (key) {
|
|
case VariableStringSyntax.camelCase:
|
|
return camelCase;
|
|
case VariableStringSyntax.constantCase:
|
|
return constantCase;
|
|
case VariableStringSyntax.dotCase:
|
|
return dotCase;
|
|
case VariableStringSyntax.headerCase:
|
|
return headerCase;
|
|
case VariableStringSyntax.lowerCase:
|
|
return lowerCase;
|
|
case VariableStringSyntax.pascalCase:
|
|
return pascalCase;
|
|
case VariableStringSyntax.paramCase:
|
|
return paramCase;
|
|
case VariableStringSyntax.sentenceCase:
|
|
return sentenceCase;
|
|
case VariableStringSyntax.snakeCase:
|
|
return snakeCase;
|
|
case VariableStringSyntax.titleCase:
|
|
return titleCase;
|
|
case VariableStringSyntax.upperCase:
|
|
return upperCase;
|
|
}
|
|
}
|
|
|
|
void checkFormat() {
|
|
if (camelCase == null ||
|
|
constantCase == null ||
|
|
dotCase == null ||
|
|
headerCase == null ||
|
|
lowerCase == null ||
|
|
pascalCase == null ||
|
|
paramCase == null ||
|
|
sentenceCase == null ||
|
|
snakeCase == null ||
|
|
titleCase == null ||
|
|
upperCase == null) {
|
|
throw ArgumentError(
|
|
'Yaml file is not conform',
|
|
);
|
|
}
|
|
}
|
|
}
|