run method
Runs this command.
The return value is wrapped in a Future
if necessary and returned by
CommandRunner.runCommand
.
Implementation
@override
FutureOr? run() async {
final args = argResults;
if (args == null) {
return;
}
final fileId = args['fileId'] as String;
final token = args['token'] as String;
final jsonOutput = args['jsonOutputFile'] as String?;
final dartOutputFolder = args['dartOutputFolder'] as String;
final collectionOverrides = args['collectionOverrides'] as List<String>;
final variableOverrides = args['variableOverrides'] as List<String>;
final excludedCollections = args['excludedCollections'] as List<String>;
logger.log('Fetching the file $fileId from Figma');
final (response, rawResponse) = await figmaApi.getVariables(
token: token,
fileId: fileId,
variableOverrides: parseOverrides(variableOverrides),
collectionOverrides: parseOverrides(collectionOverrides),
excludedCollections: excludedCollections.toSet(),
);
if (jsonOutput != null) {
await writer.write([
WriteTask(
jsonOutput,
jsonEncode(rawResponse),
),
]);
}
logger.log('Parsing json response');
final classes = parser.parse(response);
logger.log('Converting variables to Dart');
await write(dartOutputFolder, classes);
}