globalStore
La fonction createGlobalStore() permet de créer un store global (singleton) partagé dans tout le process. C’est utile pour stocker une valeur mutable accessible depuis n’importe quel module, sans avoir à la passer en paramètre.
WARNING
Le store est global et mutable : évitez d’en faire un “state manager”. Ne partagez pas des valeurs entre requêtes si votre runtime est long-lived (serveur HTTP), sauf si c’est explicitement voulu.
Exemple interactif
Typage : déclarer vos stores
Le nom du store (storeName) est typé via l’interface GlobalStore. Pour ajouter vos clés et leurs types, utilisez la fusion de déclaration :
typescript
declare module "@duplojs/utils" {
interface GlobalStore {
myStore: number;
}
}Syntaxe
typescript
interface GlobalStoreHandler<
GenericValue extends unknown
> {
readonly value: GenericValue;
set(value: GenericValue): void;
}
function createGlobalStore<
GenericStoreName extends keyof GlobalStore
>(
storeName: GenericStoreName,
defaultValue: GlobalStore[GenericStoreName]
): GlobalStoreHandler<GlobalStore[GenericStoreName]>;Paramètres
storeName: Nom typé du store (clé deGlobalStore).defaultValue: Valeur utilisée uniquement si le store n’existe pas encore.
Valeur de retour
Un handler avec :
value: la valeur courante.set(value): met à jour la valeur globale.
