Skip to content

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é de GlobalStore).
  • 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.

Diffusé sous licence MIT.