Files
twenty/packages/twenty-sdk/src/cli/commands/function/function-logs.ts
T
2026-01-20 14:10:01 +00:00

63 lines
1.7 KiB
TypeScript

import chalk from 'chalk';
import { CURRENT_EXECUTION_DIRECTORY } from '@/cli/utilities/config/constants/current-execution-directory';
import { ApiService } from '@/cli/utilities/api/services/api.service';
import { buildManifest } from '@/cli/utilities/manifest/utils/manifest-build';
export class FunctionLogsCommand {
private apiService = new ApiService();
async execute({
appPath = CURRENT_EXECUTION_DIRECTORY,
functionUniversalIdentifier,
functionName,
}: {
appPath?: string;
functionUniversalIdentifier?: string;
functionName?: string;
}): Promise<void> {
try {
const { manifest } = await buildManifest(appPath);
this.logWatchInfo({
appName: manifest.application.displayName,
functionUniversalIdentifier,
functionName,
});
await this.apiService.subscribeToLogs({
applicationUniversalIdentifier:
manifest.application.universalIdentifier,
functionUniversalIdentifier,
functionName,
});
} catch (error) {
console.error(
chalk.red('Watch logs failed:'),
error instanceof Error ? error.message : error,
);
process.exit(1);
}
}
private logWatchInfo({
appName,
functionUniversalIdentifier,
functionName,
}: {
appName?: string;
functionUniversalIdentifier?: string;
functionName?: string;
}): void {
const appPath = appName ?? 'Twenty Application';
const functionIdentifier =
functionUniversalIdentifier || functionName
? `function "${functionUniversalIdentifier || functionName}"`
: 'functions';
console.log(
chalk.blue(`🚀 Watching ${appPath} ${functionIdentifier} logs:`),
);
console.log('');
}
}