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.
79 lines (78 loc) • 3.33 kB
TypeScript
import { type CollectionCreate } from "appwrite-utils";
/**
* Recursively searches for TypeScript configuration files (appwriteConfig.ts)
* @param dir The directory to start the search from
* @param depth Current search depth for recursion limiting
* @returns Path to the config file or null if not found
*/
export declare const findAppwriteConfigTS: (dir: string, depth?: number) => string | null;
/**
* Recursively searches for configuration files starting from the given directory.
* Priority: 1) YAML configs in .appwrite directories, 2) appwriteConfig.ts files in subdirectories
* @param dir The directory to start the search from
* @returns The directory path where the config was found, suitable for passing to loadConfig()
*/
export declare const findAppwriteConfig: (dir: string) => string | null;
/**
* Recursively searches for the functions directory
* @param dir The directory to start searching from
* @param depth Current search depth for recursion limiting
* @returns Path to the functions directory or null if not found
*/
export declare const findFunctionsDir: (dir: string, depth?: number) => string | null;
/**
* Loads a YAML collection file and converts it to CollectionCreate format
* @param filePath Path to the YAML collection file
* @returns CollectionCreate object or null if loading fails
*/
export declare const loadYamlCollection: (filePath: string) => CollectionCreate | null;
/**
* Loads a YAML table file and converts it to CollectionCreate format
* @param filePath Path to the YAML table file
* @returns CollectionCreate object or null if loading fails
*/
export declare const loadYamlTable: (filePath: string) => CollectionCreate | null;
/**
* Result of discovering collections from a directory
*/
export interface CollectionDiscoveryResult {
collections: CollectionCreate[];
loadedNames: Set<string>;
conflicts: Array<{
name: string;
source1: string;
source2: string;
}>;
}
/**
* Discovers and loads collections from a collections/ directory
* @param collectionsDir Path to the collections directory
* @returns Discovery result with loaded collections and metadata
*/
export declare const discoverCollections: (collectionsDir: string) => Promise<CollectionDiscoveryResult>;
/**
* Result of discovering tables from a directory
*/
export interface TableDiscoveryResult {
tables: CollectionCreate[];
loadedNames: Set<string>;
conflicts: Array<{
name: string;
source1: string;
source2: string;
}>;
}
/**
* Discovers and loads tables from a tables/ directory
* @param tablesDir Path to the tables directory
* @param existingNames Set of already-loaded collection names to check for conflicts
* @returns Discovery result with loaded tables and metadata
*/
export declare const discoverTables: (tablesDir: string, existingNames?: Set<string>) => Promise<TableDiscoveryResult>;
/**
* Discovers and loads collections/tables from legacy single directory structure
* @param configFileDir Directory containing the config file
* @param dirName Directory name to search for ('collections' or 'tables')
* @returns Array of discovered collections/tables
*/
export declare const discoverLegacyDirectory: (configFileDir: string, dirName: "collections" | "tables") => Promise<CollectionCreate[]>;