
Research
Security News
Malicious PyPI Package Exploits Deezer API for Coordinated Music Piracy
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
@lithium-framework/state
Advanced tools
Lithium fournit une gestion des états puissante et intuitive, permettant de suivre et de réagir aux changements de valeurs de manière efficace. Ce guide explique comment utiliser la classe State
et la fonction createState
pour gérer les états dans vos applications.
Lithium propose une gestion d'état élégante basée sur des objets observables. Les états permettent de suivre et de réagir aux changements de manière réactive, simplifiant ainsi la gestion des données dans vos applications.
Installez Lithium state via npm :
npm install @lithium-framework/state
Pour initialiser un état, utilisez la classe State
ou la fonction createState
:
import { State, createState } from '@lithium-framework/state';
// Utilisation de la classe State
let state = State.init<number>(0);
// Utilisation de la fonction createState
let [counter, setCounter] = createState<number>(0);
Vous pouvez souscrire aux changements d'état pour réagir aux modifications de valeur :
// Souscrire aux changements d'état avec la classe State
state.subscribe((newValue) => {
console.log('Nouvelle valeur:', newValue);
});
// Souscrire aux changements d'état avec createState
counter.subscribe((newValue) => {
console.log({ newValue });
});
// Mettre à jour l'état
setCounter(counter.value + 1);
Lithium maintient un historique des valeurs d'état, permettant de suivre les changements successifs :
state.value = 1;
state.value = 2;
// Affiche les valeurs précédentes, jusqu'à 10 entrées
console.log(state.history);
Les mutateurs permettent de gérer l'état et de le mettre à jour de manière fluide :
let [ counter, setCounter ] = state.mutator;
setCounter(10); // Met à jour l'état à 10
console.log(counter.value); // Affiche 10
Lithium permet de convertir des objets d'état en valeurs primitives de manière personnalisée :
// Utilise Symbol.toPrimitive pour obtenir la valeur primitive
let primitiveValue = +state;
console.log(primitiveValue);
State<T>
value: T
- Obtient ou définit la valeur actuelle de l'état.history: T[]
- Obtient l'historique des valeurs de l'état (jusqu'à 10 entrées).static init<T>(value: T): State<T>
- Initialise un nouvel état avec la valeur spécifiée.subscribe(callback: (newValue: any) => void): void
- Souscrit aux changements de valeur de l'état.mutator: [State<T> & T, (newValue: T) => void]
- Renvoie un tableau contenant l'état et une fonction pour le mettre à jour.createState<T>(value: T): [State<T> & T, (newValue: T) => void]
Crée un état avec une valeur initiale et renvoie son mutateur.
typescriptCopier le code
import { createState } from 'lithium';
let [ counter, setCounter ] = createState<number>(0);
counter.subscribe(( newValue ) => {
console.log('Valeur du compteur:', newValue);
});
setCounter(counter.value + 1); // Incrémente le compteur
typescriptCopier le code
import { State } from 'lithium';
let state = State.init<number>(0);
state.value = 1;
state.value = 2;
state.value = 3;
console.log(state.history); // Affiche [0, 1, 2]
Les contributions sont les bienvenues !
FAQs
lithium state
We found that @lithium-framework/state demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.
Security News
Newly introduced telemetry in devenv 1.4 sparked a backlash over privacy concerns, leading to the removal of its AI-powered feature after strong community pushback.