feat(cli): add support for repeated directus tasks
This commit is contained in:
parent
8a12e83b13
commit
1f9e2d856f
11 changed files with 601 additions and 5 deletions
46
cli/lib/directus/relationHelpers.js
Normal file
46
cli/lib/directus/relationHelpers.js
Normal file
|
@ -0,0 +1,46 @@
|
|||
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);
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue