Command-line interface tool for MikroORM TypeScript ORM providing database management, migrations, schema operations, and entity generation
—
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Pending
The risk profile of this skill
MikroORM CLI Helper API provides programmatic access to CLI functionality for custom tooling, scripts, and integrations. The CLIHelper class offers static methods for common ORM operations used throughout the CLI commands.
Load and validate MikroORM configuration from various sources and contexts.
/**
* Load ORM configuration with context and path resolution
*/
static async getConfiguration<D extends IDatabaseDriver = IDatabaseDriver>(
contextName?: string,
configPaths?: string[],
options?: Partial<Options<D>>
): Promise<Configuration<D>>;Usage Examples:
import { CLIHelper } from '@mikro-orm/cli';
// Load default configuration
const config = await CLIHelper.getConfiguration();
// Load specific context
const prodConfig = await CLIHelper.getConfiguration('production');
// Load with custom config paths
const config = await CLIHelper.getConfiguration('default', ['./custom.config.js']);
// Load with additional options
const config = await CLIHelper.getConfiguration('default', undefined, {
debug: true,
discovery: { warnWhenNoEntities: false }
});Initialize MikroORM instances with CLI-specific configuration and settings.
/**
* Initialize MikroORM instance with CLI settings
*/
static async getORM<D extends IDatabaseDriver = IDatabaseDriver>(
contextName?: string,
configPaths?: string[],
opts?: Partial<Options<D>>
): Promise<MikroORM<D>>;Usage Examples:
import { CLIHelper } from '@mikro-orm/cli';
// Initialize default ORM instance
const orm = await CLIHelper.getORM();
// Initialize with specific context
const orm = await CLIHelper.getORM('development');
// Initialize with custom options
const orm = await CLIHelper.getORM('default', undefined, {
pool: { min: 1, max: 2 },
discovery: { warnWhenNoEntities: false }
});
// Don't forget to close when done
await orm.close(true);Test database connections and validate connectivity status.
/**
* Check database connection status
*/
static async isDBConnected(config: Configuration, reason?: false): Promise<boolean>;
static async isDBConnected(config: Configuration, reason: true): Promise<true | string>;Usage Examples:
import { CLIHelper } from '@mikro-orm/cli';
const config = await CLIHelper.getConfiguration();
// Simple boolean check
const connected = await CLIHelper.isDBConnected(config);
if (connected) {
console.log('Database is connected');
}
// Get connection status with reason
const status = await CLIHelper.isDBConnected(config, true);
if (status === true) {
console.log('Connection successful');
} else {
console.log(`Connection failed: ${status}`);
}Retrieve system and dependency information for debugging and diagnostics.
/**
* Get Node.js version
*/
static getNodeVersion(): string;
/**
* Get database driver dependencies
*/
static getDriverDependencies(config: Configuration): string[];
/**
* Get module version information
*/
static async getModuleVersion(name: string): Promise<string>;Usage Examples:
import { CLIHelper } from '@mikro-orm/cli';
// Get Node.js version
const nodeVersion = CLIHelper.getNodeVersion();
console.log(`Node.js: ${nodeVersion}`);
// Get driver dependencies
const config = await CLIHelper.getConfiguration();
const drivers = CLIHelper.getDriverDependencies(config);
console.log('Drivers:', drivers);
// Get specific module version
const tsVersion = await CLIHelper.getModuleVersion('typescript');
console.log(`TypeScript: ${tsVersion}`);Format and display information with consistent styling and formatting.
/**
* Output text with optional syntax highlighting
*/
static dump(text: string, config?: Configuration): void;
/**
* Display formatted table
*/
static dumpTable(options: TableOptions): void;
/**
* Display dependency information
*/
static async dumpDependencies(): Promise<void>;
/**
* Show CLI help
*/
static showHelp(): void;Usage Examples:
import { CLIHelper } from '@mikro-orm/cli';
// Simple text output
CLIHelper.dump('Operation completed successfully');
// Output with highlighting (if configured)
const config = await CLIHelper.getConfiguration();
CLIHelper.dump('SELECT * FROM users;', config);
// Display table
CLIHelper.dumpTable({
columns: ['Name', 'Version', 'Status'],
rows: [
['mikro-orm', '6.5.2', 'installed'],
['typescript', '5.2.0', 'installed']
],
empty: 'No packages found'
});
// Display system dependencies
await CLIHelper.dumpDependencies();
// Show help
CLIHelper.showHelp();Manage and discover configuration file paths.
/**
* Get standard configuration file paths
*/
static getConfigPaths(): string[];Usage Examples:
import { CLIHelper } from '@mikro-orm/cli';
// Get standard config paths
const paths = CLIHelper.getConfigPaths();
console.log('Searching config paths:', paths);
// Use with configuration loading
const config = await CLIHelper.getConfiguration('default', paths);// Table formatting options
interface TableOptions {
columns: string[]; // Column headers
rows: string[][]; // Table data rows
empty: string; // Message when no rows
}
// Database driver interface
interface IDatabaseDriver {
// Driver-specific implementation
}
// Configuration options
interface Options<D extends IDatabaseDriver> {
debug?: boolean;
discovery?: {
warnWhenNoEntities?: boolean;
};
pool?: {
min?: number;
max?: number;
};
connect?: boolean;
allowGlobalContext?: boolean;
preferTs?: boolean;
entities?: any[];
entitiesTs?: any[];
// ... other MikroORM options
}import { CLIHelper } from '@mikro-orm/cli';
try {
const config = await CLIHelper.getConfiguration('invalid-context');
} catch (error) {
console.error('Configuration error:', error.message);
}
try {
const orm = await CLIHelper.getORM();
// ... use ORM
} catch (error) {
console.error('ORM initialization failed:', error.message);
} finally {
// Ensure proper cleanup
if (orm) await orm.close(true);
}#!/usr/bin/env node
import { CLIHelper } from '@mikro-orm/cli';
async function customMigrationCheck() {
try {
const orm = await CLIHelper.getORM();
const migrator = orm.getMigrator();
const pending = await migrator.getPendingMigrations();
if (pending.length > 0) {
CLIHelper.dump(`Found ${pending.length} pending migrations`);
process.exit(1);
}
CLIHelper.dump('Database is up to date');
await orm.close(true);
} catch (error) {
CLIHelper.dump(`Error: ${error.message}`);
process.exit(1);
}
}
customMigrationCheck();import { CLIHelper } from '@mikro-orm/cli';
export async function validateDatabaseSetup(): Promise<boolean> {
try {
const config = await CLIHelper.getConfiguration();
const connected = await CLIHelper.isDBConnected(config);
if (!connected) {
console.error('Database connection failed');
return false;
}
// Additional validation...
return true;
} catch (error) {
console.error('Setup validation failed:', error.message);
return false;
}
}await orm.close(true)