jsEGD - v1.0.39

Biblioteca javascript para desenvolvimento front-end

Você pode importar a biblioteca jsegd em seu arquivo main.js.

import { BankController } from "https://jsegd.netlify.app/jsegd.js";
import { BankController } from "https://jsegd.netlify.app/jsegd.js";
const controller = await new BankController();
const banks = controller.list();
for (const bank of banks) {
console.log(bank.toString());
}

Faça a instalação via npm

npm install --save jsegd
import { BankController } from "jsegd";
const controller = await new BankController();
const banks = controller.list();
for (const bank of banks) {
console.log(bank.toString());
}

Conheça todas os módulos disponíveis aqui

Sistema de eventos type-safe e configurável para pub/sub pattern.

import { EventBus } from "jsegd";

// Obter instância singleton
const bus = EventBus.getInstance();

// Inscrever em evento
const unsubscribe = bus.subscribe('userLogin', (userData) => {
console.log('Usuário fez login:', userData);
});

// Publicar evento
bus.publish('userLogin', { userId: '123', name: 'João' });

// Desinscrever
unsubscribe();
import { EventBus, EventBusConfig, EventPayloadMap } from "jsegd";

// Definir tipos de eventos
type AppEvents = 'login' | 'logout' | 'error';

// Definir payloads tipados
interface AppPayloads extends EventPayloadMap<AppEvents> {
login: { userId: string; timestamp: Date };
logout: { reason: string };
error: { code: number; message: string };
}

// Criar instância tipada
const bus = EventBus.getInstance<AppEvents, AppPayloads>();

// Callback com payload tipado automaticamente
bus.subscribe('login', (payload) => {
console.log(payload.userId); // TypeScript sabe que existe!
});
import { EventBus } from "jsegd";

const bus = EventBus.create({
allowedEvents: ['login', 'logout'], // whitelist de eventos
validateEvents: true, // validar em runtime
enableMetrics: true, // coletar métricas
onError: (error, eventName) => { // error handler customizado
console.error(`Erro em ${eventName}:`, error);
}
});

// Consultar métricas
const metrics = bus.getMetrics();
console.log('Total de publishes:', metrics.totalPublishes);
  • ✅ Type-safety completo com TypeScript
  • ✅ Validação de eventos configurável
  • ✅ Métricas de uso opcionais (zero overhead quando desabilitadas)
  • ✅ Error handling customizável
  • ✅ Suporte a instâncias singleton e independentes
  • ✅ API de inspeção (getEventNames(), hasSubscribers(), getSubscriberCount())

Documentação Completa:


Veja o arquivo LICENSE para mais detalhes