appwrite-utils-cli
Version:
Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.
76 lines (75 loc) • 2.58 kB
TypeScript
export interface DestructiveOperationOptions {
operation: string;
targets: string[];
consequences?: string[];
requireExplicitConfirmation?: boolean;
confirmationText?: string;
skipConfirmation?: boolean;
}
export interface BackupPromptOptions {
operation: string;
targets: string[];
recommendBackup?: boolean;
backupMessage?: string;
}
export declare class ConfirmationDialogs {
/**
* Shows a confirmation dialog for destructive operations
*/
static confirmDestructiveOperation(options: DestructiveOperationOptions): Promise<boolean>;
/**
* Prompts user about creating a backup before a destructive operation
*/
static promptForBackup(options: BackupPromptOptions): Promise<'yes' | 'no' | 'skip'>;
/**
* Shows a final confirmation before proceeding with an operation
*/
static finalConfirmation(operation: string, details?: string[]): Promise<boolean>;
/**
* Specialized confirmation for database wiping
*/
static confirmDatabaseWipe(databaseNames: string[], options?: {
includeStorage?: boolean;
includeUsers?: boolean;
skipConfirmation?: boolean;
}): Promise<boolean>;
/**
* Specialized confirmation for collection wiping
*/
static confirmCollectionWipe(databaseName: string, collectionNames: string[], options?: {
skipConfirmation?: boolean;
}): Promise<boolean>;
/**
* Specialized confirmation for function deployment
*/
static confirmFunctionDeployment(functionNames: string[], options?: {
isProduction?: boolean;
hasBreakingChanges?: boolean;
skipConfirmation?: boolean;
}): Promise<boolean>;
/**
* Shows operation summary and asks for final confirmation
*/
static showOperationSummary(title: string, summary: Record<string, string | number | string[]>, options?: {
confirmationRequired?: boolean;
warningMessage?: string;
}): Promise<boolean>;
/**
* Interactive selection with confirmation
*/
static selectWithConfirmation<T>(items: T[], options: {
message: string;
displayProperty?: keyof T;
multiSelect?: boolean;
confirmMessage?: string;
validator?: (selection: T[]) => string | true;
}): Promise<T[]>;
/**
* Confirms overwriting an existing file or directory
*/
static confirmOverwrite(target: string): Promise<boolean>;
/**
* Confirms removal of a file
*/
static confirmRemoval(target: string): Promise<boolean>;
}