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);
getEventNames(), hasSubscribers(), getSubscriberCount())Documentação Completa:
Veja o arquivo LICENSE para mais detalhes