8 repository-uri
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 este un panou de control GUI pentru React și un editor de parametri în timp real utilizat pentru a monitoriza și ajusta starea și variabilele aplicației fără a modifica codul sau a reîncărca pagina. Acesta funcționează ca un debugger de stare dinamic și o bibliotecă de input extensibilă care oferă o interfață vizuală pentru ajustarea fină a valorilor numerice, booleene și text în cadrul unei aplicații web care rulează. Proiectul se distinge printr-un sistem de plugin-uri care permite crearea de componente de input personalizate și comportamente specializate pentru a suporta tipuri de date unice. Utilizează type-inference pentru a mapa automat datele către widget-ul vizual corespunzător, deși această mapare poate fi suprascrisă pentru a forța anumite tipuri de input. Interfața suportă diverse categorii de input, inclusiv intervale numerice, vectori, selectoare de culoare și câmpuri de upload media. Controalele pot fi organizate în foldere ierarhice, afișate condiționat pe baza altor valori și sincronizate cu depozite de date externe. Sistemul monitorizează, de asemenea, ciclul de viață al editării, permițând callback-uri atunci când utilizatorii încep și termină interacțiunile pentru a optimiza performanța pentru operațiunile costisitoare.
Triggers callbacks when a user starts and finishes interacting with a control to optimize performance for expensive operations.
Această bibliotecă oferă un framework pentru definirea mașinilor cu stări finite (finite state machines) în interiorul claselor Ruby pentru a gestiona cicluri de viață complexe ale obiectelor. Funcționează ca un motor de workflow declarativ, permițând dezvoltatorilor să modeleze stările, evenimentele și tranzițiile obiectelor printr-un limbaj specific domeniului (DSL) ușor de citit. Prin integrarea directă cu straturile de persistență a bazei de date, framework-ul asigură sincronizarea schimbărilor de stare cu înregistrările din stocare, menținând în același timp integritatea datelor prin gestionarea tranzacțiilor și blocarea rândurilor. Biblioteca se distinge prin impunerea unor reguli de business stricte prin intermediul gardelor de tranziție condiționale și prevenirea modificării directe a stării, asigurându-se că toate schimbările ciclului de viață au loc exclusiv prin evenimente definite. Suportă mai multe mașini cu stări independente în cadrul unei singure clase prin maparea lor la câmpuri distincte din baza de date, oferind un control izolat al ciclului de viață. Mai mult, generează automat metode de instanță dinamice pentru interogarea stărilor și declanșarea evenimentelor, alături de scope-uri de interogare a bazei de date care simplifică filtrarea obiectelor pe baza stării lor curente. Dincolo de gestionarea de bază a ciclului de viață, framework-ul include utilitare pentru localizarea numelor stărilor pentru a susține interfețe multilingve și oferă hook-uri pentru executarea de logică personalizată înainte sau după tranziții. De asemenea, oferă matchere de testare specializate pentru a verifica configurațiile mașinii cu stări și logica de tranziție în cadrul suitelor de teste automatizate. Proiectul include instrumente pentru compilarea codului sursă și a configurațiilor în documentație structurată pentru a asista referința sistemului.
Triggers custom logic automatically before or after state transitions to perform lifecycle side effects.
SoundManager2 este un API audio JavaScript și un motor audio cross-browser conceput pentru a oferi o redare consistentă în diferite browsere web și dispozitive. Acesta funcționează ca un wrapper audio HTML5 și manager de redare care abstractizează API-urile native într-o interfață unificată, asigurând compatibilitatea printr-un mecanism de comutare automată între backend-urile audio și codecurile disponibile. Biblioteca se distinge printr-un streamer audio RTMP pentru comunicarea în rețea cu servere media și un parser de metadate ID3 încorporat pentru extragerea titlurilor pieselor, informațiilor despre artist și a genurilor din fișierele audio. De asemenea, implementează streaming audio byte-range pentru a încărca fișierele în segmente mici, ceea ce permite căutarea și redarea fără a descărca întregul fișier în memorie. Sistemul acoperă capabilități largi în manipularea audio, inclusiv analiza semnalului în timp real pentru forme de undă și spectre de frecvență, precum și procesarea efectelor audio pentru pitch bending și egalizare. Gestionează întregul ciclu de viață al resurselor obiectelor sonore, oferă gestionarea stării de redare cu monitorizare bazată pe evenimente și include instrumente pentru verificarea suportului formatelor audio și depanarea erorilor de inițializare.
Uses a callback system to trigger application logic when audio enters or exits states like loading and completion.
Mixitup este o bibliotecă de animație a elementelor DOM fără dependențe și un motor de layout de tip grid. Servește drept filtru de conținut client-side și controler UI bazat pe date, conceput pentru a gestiona tranziția vizuală fluidă a elementelor HTML în timpul operațiunilor de inserare, eliminare și sortare. Sistemul se specializează în crearea de interfețe de galerie interactive și filtrarea dinamică a conținutului. Permite reorganizarea elementelor folosind atribute personalizate sau secvențe aleatorii, sincronizând în același timp aranjarea și vizibilitatea elementelor interfeței cu un model de date subiacent. Dincolo de filtrare și sortare, biblioteca acoperă gestionarea elementelor DOM, inclusiv inserarea și eliminarea dinamică a țintelor. Oferă capabilități pentru animarea redimensionării containerului, definirea de efecte de animație personalizate și utilizarea de „stagger-uri” non-liniare pentru apariția elementelor.
Triggers custom callback functions at specific stages such as start, end, failure, or busy states.
react-waypoint este o componentă React și un instrument de urmărire a viewport-ului care execută funcții bazate pe vizibilitatea unui nod DOM într-o zonă scrollabilă. Acesta monitorizează când elementele intră sau părăsesc viewport-ul browserului sau un container de scroll specificat pentru a declanșa callback-uri. Proiectul permite implementarea scroll-ului infinit, încărcarea leneșă a activelor și animații declanșate la scroll. Permite definirea containerelor de scroll personalizate și configurarea limitelor viewport-ului folosind offset-uri pentru a determina exact când se declanșează evenimentele. Instrumentul oferă urmărirea poziției elementelor și monitorizarea vizibilității atât pentru scroll vertical, cât și orizontal. Include controlul sensibilității declanșatorului și limitarea ratei evenimentelor (throttling) pentru a gestiona execuția callback-urilor în timpul scroll-ului rapid.
Provides callbacks that execute automatically when elements enter or exit the viewport state.
This project is a reference implementation and boilerplate for managing user authentication and session state within the Next.js framework. It serves as a practical example of how to integrate NextAuth.js to protect routes and handle identity verification. The repository demonstrates several authentication workflows, including OAuth identity integration with third-party providers, passwordless authentication using email magic links, and traditional credentials-based sign-in. It specifically showcases how to replace default authentication screens with custom branded sign-in pages. The impleme
Provides hook functions to modify user profiles and session data during the authentication lifecycle.
Acest proiect este o bibliotecă Ruby pentru definirea și gestionarea ciclurilor de viață ale obiectelor prin stări, evenimente și reguli de tranziție. Funcționează ca un motor de flux de lucru declarativ care impune logica de business prin restricționarea modificărilor atributelor la căi predefinite și valide în cadrul claselor Ruby. Biblioteca se distinge prin integrarea profundă cu straturile de persistență a bazei de date, permițându-i să sincronizeze automat schimbările de stare cu modelele de date, framework-urile de validare și gestionarea tranzacțiilor. Suportă configurarea dinamică, permițând construirea regulilor ciclului de viață la runtime din surse de date externe, și oferă instrumente de diagnosticare, cum ar fi vizualizarea grafică a relațiilor de stare și analiza căilor de tranziție pentru a audita fluxuri de lucru complexe. Dincolo de gestionarea tranzițiilor de bază, framework-ul include un sistem de hook-uri bazat pe callback-uri pentru executarea logicii personalizate în timpul actualizărilor ciclului de viață și oferă metode pentru interogarea stării curente a obiectului sau verificarea tranzițiilor permise. Dispune, de asemenea, de injecție dinamică de metode pentru a gestiona interogările de stare și declanșarea evenimentelor direct pe obiecte.
Executes custom logic automatically upon entering or exiting specific states during lifecycle transitions.