Files
yaak/plugin-runtime/src/plugins.ts
2024-07-19 10:41:47 -07:00

19 lines
628 B
TypeScript

import * as fs from 'node:fs';
import path from 'node:path';
import { PluginHandle } from './PluginHandle';
export interface PluginInfo {
name: string;
dir: string;
capabilities: ('import' | 'export' | 'filter')[];
}
export function loadPlugins(workerJsPath: string): PluginHandle[] {
const pluginsDir = process.env.PLUGINS_DIR;
if (!pluginsDir) throw new Error('PLUGINS_DIR is not set');
console.log('Loading plugins from', pluginsDir);
const pluginDirs = fs.readdirSync(pluginsDir).map((p) => path.join(pluginsDir, p));
return pluginDirs.map((pluginDir) => new PluginHandle({ pluginDir, workerJsPath }));
}