execute method

  1. @override
Future<void> execute(
  1. AFCommandContext context
)
override

Implementation

@override
Future<void> execute(AFCommandContext context) async {
  final generator = context.generator;

  final args = context.parseArguments(
    command: this,
    unnamedCount: 1,
    named: {
      argResultModelType: "",
      argRootStateType: generator.nameRootState,
      argExportTemplates: "",
      argOverrideTemplates: "",
      argExportTemplates: "false",
      argOverrideTemplates: "",
      AFGenerateSubcommand.argMemberVariables: "",
      AFGenerateSubcommand.argResolveVariables: "",
    }
  );

  final queryName = args.accessUnnamedFirst;

  verifyMixedCase(queryName, "query name");
  verifyEndsWith(queryName, suffixQuery);
  var querySuffix = suffixQuery;
  if(queryName.endsWith(suffixListenerQuery)) {
    querySuffix = suffixListenerQuery;
  } else if(queryName.endsWith(suffixDeferredQuery)) {
    querySuffix = suffixDeferredQuery;
  } else if(queryName.endsWith(suffixIsolateQuery)) {
    querySuffix = suffixIsolateQuery;
  }
  final resultType = args.accessNamed(argResultModelType);

  createQuery(
    context: context,
    querySuffix: querySuffix,
    queryType: queryName,
    resultType: resultType,
    args: args,
    usage: usage,
  );

  // replace any default
  context.generator.finalizeAndWriteFiles(context);

}