@couleetech/n8n-nodes-pandoc
Version:
n8n node for document conversion using Pandoc
95 lines (94 loc) • 3.64 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.NpmSearch = void 0;
const axios_1 = __importDefault(require("axios"));
class NpmSearch {
constructor() {
this.description = {
displayName: 'NPM Search',
name: 'npmSearch',
icon: 'file:npm.svg',
group: ['transform'],
version: 1,
description: 'Search for NPM packages using AI-powered relevance scoring',
defaults: {
name: 'NPM Search',
},
codex: {
categories: ['AI'],
subcategories: {
'AI': ['Tools']
},
resources: {
primaryDocumentation: [
{
url: 'https://github.com/yourusername/n8n-nodes-npm-tools',
},
],
},
},
inputs: [],
outputs: ["ai_tool"],
properties: [],
};
}
async execute() {
const npmSearchTool = {
name: 'npm_search',
description: 'Search for NPM packages. Use this when you need to find Node.js packages, their versions, descriptions, and relevance scores.',
schema: {
type: 'object',
properties: {
searchQuery: {
type: 'string',
description: 'The search term to look for in NPM packages',
},
size: {
type: 'number',
description: 'Number of results to return (default: 20)',
optional: true,
},
from: {
type: 'number',
description: 'Offset for pagination (default: 0)',
optional: true,
},
},
required: ['searchQuery'],
},
async function({ searchQuery, size = 20, from = 0 }) {
try {
const response = await axios_1.default.get(`https://registry.npmjs.org/-/v1/search`, {
params: {
text: searchQuery,
size,
from,
},
});
const packages = response.data.objects.map((pkg) => ({
name: pkg.package.name,
version: pkg.package.version,
description: pkg.package.description,
keywords: pkg.package.keywords,
author: pkg.package.author,
publisher: pkg.package.publisher,
maintainers: pkg.package.maintainers,
links: pkg.package.links,
score: pkg.score,
searchScore: pkg.searchScore,
aiRelevanceScore: pkg.score.final * pkg.searchScore,
}));
return JSON.stringify(packages);
}
catch (error) {
throw new Error(`Failed to search NPM: ${error.message}`);
}
},
};
return [[{ json: { tools: [npmSearchTool] } }]];
}
}
exports.NpmSearch = NpmSearch;