pnpmSpec top-level property
Completion spec for 'pnpm' CLI
Implementation
final FigSpec pnpmSpec = FigSpec(
name: 'pnpm',
description: 'Fast, disk space efficient package manager',
args: [
Arg(
name: 'Scripts',
filterStrategy: FilterStrategy.fuzzy,
generators: npmScriptsGenerator,
isVariadic: true,
)
],
filterStrategy: FilterStrategy.fuzzy,
subcommands: subcommands,
options: COMMON_OPTIONS,
generateSpec: (List<String> tokens, dynamic executeShellCommand) async {
final gen = yarnDependenciesGenerator;
final postProcess = gen.postProcess;
if (postProcess == null) return null;
final script = gen.script;
if (script is! List || script.isEmpty) return null;
final scriptList = script;
try {
final result = await executeShellCommand(
command: scriptList[0].toString(),
args: scriptList.length > 1
? scriptList.sublist(1).map((e) => e.toString()).toList()
: <String>[],
);
final suggestions = postProcess(result.stdout, tokens);
final names = suggestions.map((e) => e.name).whereType<String>().toList();
final subcommandsList = names
.where((name) => nodeClis.contains(name))
.map((name) => Subcommand(
name: name,
loadSpec: name,
icon: 'fig://icon?type=package',
))
.toList();
return FigSpec(
name: 'pnpm',
subcommands: subcommandsList,
);
} catch (_) {
return null;
}
},
);