yarnDependenciesGenerator top-level property
Implementation
final FigGenerator yarnDependenciesGenerator = FigGenerator(
script: [
'bash',
'-c',
"until [[ -f package.json ]] || [[ \$PWD = '/' ]]; do cd ..; done; cat package.json",
],
postProcess: (String out, [List<String>? context]) {
final tokens = context ?? [];
if (out.trim().isEmpty) {
return <FigSuggestion>[];
}
try {
final packageContent = jsonDecode(out) as Map<String, dynamic>;
final dependencies =
packageContent['dependencies'] as Map<String, dynamic>? ?? {};
final devDependencies =
packageContent['devDependencies'] as Map<String, dynamic>? ?? {};
final optionalDependencies =
packageContent['optionalDependencies'] as Map<String, dynamic>? ?? {};
final allDependencies = <String, dynamic>{};
allDependencies.addAll(dependencies);
allDependencies.addAll(devDependencies);
allDependencies.addAll(optionalDependencies);
return allDependencies.keys
.where((pkgName) => !tokens.any((current) => current == pkgName))
.map((pkgName) {
String description;
if (dependencies.containsKey(pkgName)) {
description = 'dependency';
} else if (optionalDependencies.containsKey(pkgName)) {
description = 'optionalDependency';
} else {
description = 'devDependency';
}
return FigSuggestion(
name: pkgName,
icon: '📦',
description: description,
);
}).toList();
} catch (e) {
print('Error in yarn dependencies generator: $e');
return <FigSuggestion>[];
}
},
);