createCLIsGenerator top-level property
Implementation
final FigGenerator createCLIsGenerator = FigGenerator(
script: (List<String> context) {
if (context.isEmpty || context.last.isEmpty) return null;
final searchTerm = 'create-${context.last}';
return [
'curl',
'-s',
'-H',
'Accept: application/json',
'https://api.npms.io/v2/search?q=$searchTerm&size=20',
];
},
cache: FigCache(
ttl: 100 * 24 * 60 * 60 * 3, // 3 days
),
postProcess: (String out, [List<String>? tokens]) {
try {
final jsonData = jsonDecode(out) as Map<String, dynamic>;
final results = jsonData['results'] as List<dynamic>?;
if (results == null) return <FigSuggestion>[];
return results
.map<FigSuggestion?>((item) {
final packageData = (item as Map<String, dynamic>)['package']
as Map<String, dynamic>?;
if (packageData == null) return null;
final packageName = packageData['name']?.toString() ?? '';
final description = packageData['description']?.toString() ?? '';
return FigSuggestion(
name: packageName.startsWith('create-')
? packageName.substring(7)
: packageName,
description: description,
icon: '⚡',
);
})
.whereType<FigSuggestion>()
.toList();
} catch (e) {
print('Error parsing create CLI results: $e');
return <FigSuggestion>[];
}
},
);