Nexus/src/examples.ts

93 lines
2.1 KiB
TypeScript

import { Application } from './core/Application';
import { ExampleService } from './services/ExampleService';
import logger from './utils/logger';
/**
* EJEMPLOS DE USO
*
* Este archivo muestra cómo usar los diferentes componentes de la aplicación.
* Puedes copiar estos ejemplos en tu index.ts o crear nuevos servicios.
*/
/**
* Ejemplo 1: Uso básico del servicio
*/
async function ejemploServicioBasico() {
const service = new ExampleService();
const resultado = await service.execute('Hola Mundo');
if (resultado.success) {
logger.info('Resultado del servicio:', resultado.data);
} else {
logger.error('Error:', resultado.error);
}
}
/**
* Ejemplo 2: Inicialización con servicios personalizados
*/
async function ejemploConServicios() {
const app = new Application();
await app.initialize();
// Usar servicios
const exampleService = new ExampleService();
const resultado = await exampleService.execute('Datos de prueba');
logger.info('Resultado:', resultado);
await app.shutdown();
}
/**
* Ejemplo 3: Manejo de errores
*/
async function ejemploManejoErrores() {
try {
const service = new ExampleService();
const resultado = await service.execute('test');
if (!resultado.success) {
throw new Error(resultado.error);
}
logger.info('Éxito:', resultado.data);
} catch (error) {
logger.error('Error capturado:', error);
}
}
/**
* Ejemplo 4: Uso de configuración
*/
async function ejemploConfiguracion() {
const { config } = await import('./config');
logger.info('Configuración actual:', {
entorno: config.nodeEnv,
nombre: config.appName,
puerto: config.appPort,
});
}
/**
* Ejemplo 5: Logger con diferentes niveles
*/
function ejemploLogger() {
logger.debug('Mensaje de debug - solo en desarrollo');
logger.info('Información general');
logger.warn('Advertencia');
logger.error('Error', new Error('Ejemplo de error'));
}
// Exportar ejemplos para uso en otros archivos
export {
ejemploServicioBasico,
ejemploConServicios,
ejemploManejoErrores,
ejemploConfiguracion,
ejemploLogger,
};