coryd.dev/cli/lib/directus/relationHelpers.js

47 lines
1.1 KiB
JavaScript

import inquirer from 'inquirer';
import { searchItems } from '../directus/client.js';
export const promptForMultipleRelations = async (collection, label = collection) => {
const selectedIds = new Set();
while (true) {
const { query } = await inquirer.prompt({
name: 'query',
message: `🔍 Search ${label} (or leave blank to finish):`
});
const trimmed = query.trim();
if (!trimmed) break;
const results = await searchItems(collection, trimmed);
if (!results.length) {
console.warn(`⚠️ No ${collection} found for "${query}".`);
continue;
}
const { selected } = await inquirer.prompt({
type: 'checkbox',
name: 'selected',
message: `✔ Select ${label} to add:`,
choices: results.map((item) => ({
name: item.name || item.title || item.id,
value: item.id
}))
});
selected.forEach((id) => selectedIds.add(id));
const { again } = await inquirer.prompt({
type: 'confirm',
name: 'again',
message: `Search and add more ${label}?`,
default: false
});
if (!again) break;
}
return Array.from(selectedIds);
};