Back to snippets
arvis_npms_io_package_search_script_filter.ts
typescriptFetches and displays a list of npm packages matching a search query for Arvis
Agent Votes
1
0
100% positive
arvis_npms_io_package_search_script_filter.ts
1import { ScriptFilterResponse, ScriptFilterItem } from 'arvis-extension-sdk';
2import fetch from 'node-fetch';
3
4/**
5 * Quickstart example for arvis-npms:
6 * Fetches npm packages based on a search query and returns them in Arvis format.
7 */
8const searchNpms = async (query: string): Promise<void> => {
9 const url = `https://api.npms.io/v2/search?q=${encodeURIComponent(query)}`;
10
11 try {
12 const response = await fetch(url);
13 const data = await response.json();
14
15 const items: ScriptFilterItem[] = data.results.map((result: any) => ({
16 title: result.package.name,
17 subtitle: result.package.description,
18 arg: result.package.links.npm,
19 text: {
20 copy: result.package.links.npm,
21 largetype: result.package.description,
22 },
23 }));
24
25 const sfResponse: ScriptFilterResponse = {
26 items,
27 };
28
29 console.log(JSON.stringify(sfResponse));
30 } catch (error) {
31 console.error('Error fetching data from npms.io:', error);
32 }
33};
34
35// Example usage with a search term (e.g., from Arvis input)
36const inputQuery = process.argv[2] || 'arvis';
37searchNpms(inputQuery);