8 Repos
Functions that execute automatically upon entering or exiting specific states.
Distinct from State-Driven Callbacks: Distinct from state-driven callbacks: specifically targets the lifecycle phases (entry/exit) of a state machine rather than threshold-based triggers.
Explore 8 awesome GitHub repositories matching software engineering & architecture · State Lifecycle Callbacks. Refine with filters or upvote what's useful.
Transitions is an object-oriented finite state machine library for Python. It provides a framework for managing valid states and the logic for moving between them, including implementations for asynchronous state machines and thread-safe state managers. The library supports hierarchical state machines that allow states to be nested to organize complex subtasks and logical contexts. It includes tools for generating visual diagrams of states and transitions to document machine logic. The project covers state management primitives such as lifecycle callbacks, conditional transition guarding, an
Executes registered functions automatically during specific transition phases like entry and exit.
Leva ist ein React-GUI-Kontrollpanel und Echtzeit-Parameter-Editor, der verwendet wird, um den Anwendungsstatus und Variablen zu überwachen und anzupassen, ohne den Code zu ändern oder die Seite neu zu laden. Es fungiert als dynamischer Status-Debugger und erweiterbare Eingabebibliothek, die eine visuelle Schnittstelle für das Feintuning numerischer, boolescher und Textwerte innerhalb einer laufenden Webanwendung bietet. Das Projekt zeichnet sich durch ein Plugin-System aus, das die Erstellung benutzerdefinierter Eingabekomponenten und spezialisierter Verhaltensweisen zur Unterstützung einzigartiger Datentypen ermöglicht. Es nutzt Typinferenz, um Daten automatisch dem passenden visuellen Widget zuzuordnen, wobei dieses Mapping überschrieben werden kann, um spezifische Eingabetypen zu erzwingen. Die Schnittstelle unterstützt diverse Eingabekategorien, einschließlich numerischer Bereiche, Vektoren, Farbwähler und Medien-Upload-Felder. Steuerelemente können in hierarchischen Ordnern organisiert, basierend auf anderen Werten bedingt angezeigt und mit externen Datenspeichern synchronisiert werden. Das System überwacht zudem den Bearbeitungslebenszyklus und ermöglicht Callbacks, wenn Benutzer Interaktionen starten oder beenden, um die Performance für rechenintensive Operationen zu optimieren.
Triggers callbacks when a user starts and finishes interacting with a control to optimize performance for expensive operations.
Diese Bibliothek bietet ein Framework zur Definition von Finite State Machines innerhalb von Ruby-Klassen, um komplexe Objekt-Lebenszyklen zu verwalten. Sie fungiert als deklarative Workflow-Engine, die es Entwicklern ermöglicht, Objektzustände, Ereignisse und Übergänge über eine lesbare Domain-Specific Language (DSL) zu modellieren. Durch die direkte Integration in Datenbank-Persistenzschichten stellt das Framework sicher, dass Zustandsänderungen mit den gespeicherten Datensätzen synchronisiert werden, während die Datenintegrität durch Transaktionsmanagement und Row-Locking gewahrt bleibt. Die Bibliothek zeichnet sich dadurch aus, dass sie strikte Geschäftsregeln durch bedingte Transition-Guards erzwingt und direkte Zustandsänderungen verhindert, wodurch sichergestellt wird, dass alle Lebenszyklusänderungen ausschließlich über definierte Ereignisse erfolgen. Sie unterstützt mehrere unabhängige State Machines innerhalb einer Klasse, indem sie diese auf unterschiedliche Datenbankfelder abbildet, was eine isolierte Lebenszyklussteuerung ermöglicht. Zudem generiert sie automatisch dynamische Instanzmethoden für Zustandsabfragen und Ereignisauslöser sowie Datenbank-Query-Scopes, die das Filtern von Objekten basierend auf ihrem aktuellen Status vereinfachen. Über das reine Lebenszyklusmanagement hinaus enthält das Framework Hilfsmittel zur Lokalisierung von Zustandsnamen für mehrsprachige Schnittstellen und bietet Hooks zur Ausführung benutzerdefinierter Logik vor oder nach Übergängen. Es bietet zudem spezialisierte Test-Matcher, um State-Machine-Konfigurationen und Übergangslogik innerhalb automatisierter Test-Suites zu verifizieren. Das Projekt enthält Tools zum Kompilieren von Quellcode und Konfigurationen in strukturierte Dokumentationen zur Systemreferenz.
Triggers custom logic automatically before or after state transitions to perform lifecycle side effects.
SoundManager2 ist eine JavaScript-Audio-API und eine browserübergreifende Audio-Engine, die entwickelt wurde, um eine konsistente Wiedergabe über verschiedene Webbrowser und Geräte hinweg zu gewährleisten. Es fungiert als HTML5-Audio-Wrapper und Wiedergabemanager, der native APIs in eine einheitliche Schnittstelle abstrahiert und die Kompatibilität durch einen automatischen Umschaltmechanismus zwischen verfügbaren Audio-Backends und Codecs sicherstellt. Die Bibliothek zeichnet sich durch einen RTMP-Audio-Streamer für die Netzwerkkommunikation mit Medienservern und einen integrierten ID3-Metadaten-Parser zum Extrahieren von Titeln, Künstlerinformationen und Genre-Tags aus Audiodateien aus. Sie implementiert zudem Byte-Range-Audio-Streaming, um Dateien in kleinen Segmenten zu laden, was das Suchen und die Wiedergabe ermöglicht, ohne die gesamte Datei in den Speicher herunterzuladen. Das System deckt breite Funktionen in der Audiomanipulation ab, einschließlich Echtzeit-Signalanalyse für Wellenformen und Frequenzspektren sowie Audioeffektverarbeitung für Pitch-Bending und Equalizing. Es verwaltet den gesamten Ressourcen-Lebenszyklus von Sound-Objekten, bietet Wiedergabe-Statusmanagement mit ereignisgesteuerter Überwachung und enthält Tools zur Überprüfung der Unterstützung von Audioformaten und zum Debuggen von Initialisierungsfehlern.
Uses a callback system to trigger application logic when audio enters or exits states like loading and completion.
Mixitup ist eine abhängigkeitsfreie DOM-Element-Animationsbibliothek und Grid-Layout-Engine. Sie dient als clientseitiger Inhaltsfilter und datengesteuerter UI-Controller, der darauf ausgelegt ist, den reibungslosen visuellen Übergang von HTML-Elementen während Einfüge-, Entfernungs- und Sortieroperationen zu verwalten. Das System ist auf die Erstellung interaktiver Galerie-Schnittstellen und dynamischer Inhaltsfilterung spezialisiert. Es ermöglicht die Reorganisation von Elementen unter Verwendung benutzerdefinierter Attribute oder zufälliger Sequenzen, während die Anordnung und Sichtbarkeit von Schnittstellenelementen mit einem zugrunde liegenden Datenmodell synchronisiert wird. Über die Filterung und Sortierung hinaus deckt die Bibliothek das DOM-Element-Management ab, einschließlich des dynamischen Einfügens und Entfernens von Zielen. Sie bietet Funktionen zum Animieren von Container-Größenänderungen, zum Definieren benutzerdefinierter Animationseffekte und zur Verwendung nicht-linearer Stagger-Effekte für das Erscheinen von Elementen.
Triggers custom callback functions at specific stages such as start, end, failure, or busy states.
react-waypoint ist eine React-Komponente und ein Viewport-Tracking-Tool, das Funktionen basierend auf der Sichtbarkeit eines DOM-Knotens innerhalb eines scrollbaren Bereichs ausführt. Es überwacht, wann Elemente den Browser-Viewport oder einen spezifizierten Scroll-Container betreten oder verlassen, um Callbacks auszulösen. Das Projekt ermöglicht die Implementierung von Infinite Scrolling, Lazy Loading von Assets und scroll-getriggerten Animationen. Es erlaubt benutzerdefinierte Definitionen von Scroll-Containern und Viewport-Grenzen unter Verwendung von Offsets, um exakt zu bestimmen, wann Ereignisse ausgelöst werden. Das Tool bietet Element-Positions-Tracking und Sichtbarkeitsüberwachung für vertikales und horizontales Scrollen. Es beinhaltet eine Steuerung der Trigger-Empfindlichkeit und Event-Throttling, um die Callback-Ausführung bei schnellem Scrollen zu verwalten.
Provides callbacks that execute automatically when elements enter or exit the viewport state.
Dieses Projekt ist eine Referenzimplementierung und ein Boilerplate zur Verwaltung von Benutzerauthentifizierung und Session-Zustand innerhalb des Next.js-Frameworks. Es dient als praktisches Beispiel für die Integration von NextAuth.js zum Schutz von Routen und zur Handhabung der Identitätsverifizierung. Das Repository demonstriert verschiedene Authentifizierungs-Workflows, einschließlich OAuth-Identitätsintegration mit Drittanbietern, passwortloser Authentifizierung mittels E-Mail-Magic-Links und traditioneller Anmeldeverfahren mit Zugangsdaten. Es zeigt spezifisch, wie Standard-Authentifizierungsbildschirme durch benutzerdefinierte Anmeldeseiten ersetzt werden können. Die Implementierung deckt ein breites Spektrum an Funktionen ab, einschließlich Datenbank-Session-Persistenz über Adapter, Rotation von Access-Tokens und die Verwendung von Umgebungsvariablen für die Provider-Konfiguration. Es enthält zudem Beispiele für die Verknüpfung mehrerer Authentifizierungsmethoden mit einem einzigen Benutzerprofil und die Integration von Observability-Tools zur Protokollierung von Authentifizierungsereignissen.
Provides hook functions to modify user profiles and session data during the authentication lifecycle.
Dieses Projekt ist eine Ruby-Bibliothek für die Definition und Verwaltung von Objekt-Lebenszyklen durch Zustände, Ereignisse und Übergangsregeln. Sie fungiert als deklarative Workflow-Engine, die Geschäftslogik durchsetzt, indem sie Attributänderungen auf vordefinierte, gültige Pfade innerhalb von Ruby-Klassen beschränkt. Die Bibliothek zeichnet sich durch eine tiefe Integration mit Datenbank-Persistenzschichten aus, wodurch sie Zustandsänderungen automatisch mit Datenmodellen, Validierungs-Frameworks und Transaktionsmanagement synchronisieren kann. Sie unterstützt dynamische Konfiguration, was die Erstellung von Lebenszyklusregeln zur Laufzeit aus externen Datenquellen ermöglicht, und bietet Diagnose-Tools wie die grafische Visualisierung von Zustandsbeziehungen und die Analyse von Übergangspfaden, um komplexe Workflows zu auditieren. Über das reine Übergangsmanagement hinaus enthält das Framework ein Callback-gesteuertes Hook-System für die Ausführung benutzerdefinierter Logik während Lebenszyklus-Updates und bietet Methoden für die Abfrage des aktuellen Objektstatus oder die Verifizierung erlaubter Übergänge. Es bietet zudem dynamische Methodeninjektion, um Zustandsabfragen und Ereignisauslösungen direkt auf Objekten zu handhaben.
Executes custom logic automatically upon entering or exiting specific states during lifecycle transitions.