@oclock-titan/store

Fournit des utilitaires JavaScript pour facilement créer des stores dans les projets informatiques.

Usage no npm install needed!

<script type="module">
  import oclockTitanStore from 'https://cdn.skypack.dev/@oclock-titan/store';
</script>

README

Store

Fournit des utilitaires JavaScript pour facilement créer des stores dans les projets informatiques.

Installation

yarn add @oclock-titan/store

Usage

import { createStore } from '@oclock-titan/store';

const myStore = createStore(reducer); // où reducer est une fonction de type reducer

À propos du reducer

createStore crée un nouveau store configuré par un reducer. Le reducer est une fonction avec la signature suivante :

(state, action) => newState

où :

  • state sera l'état courant dans le store ;
  • action une action (normalisée sous la forme d'un objet de structure { type: 'ACTION_TYPE'[, key: value] }) dispatchée auprès du store ;
  • newState une copie, éventuellement modifiée, du state courant.

Le reducer doit également gérer le cas où aucun state & aucune action ne lui sont fournis. Dans ce cas, il doit retourner un état par défaut / initial.

Exemple :

const reducer = (state = initialState, action = defaultAction) {
  switch (action.type) {
    case 'SOME_ACTION': {
      return { ...state, someKey: 'someValue' };
    }
    default: {
      return { ...state };
    }
  }
};

Récap de la création du paquet npm

  1. Création d'un nouveau dossier vide. Création d'un dossier src/ pour accueillir le code source du paquet.
  2. Récupération & nettoyage du code de createStore dans src/index.js
  3. Configuration de package.json et de .babelrc pour ajouter une commande babel:build de transpilation du code source.
  4. Création d'un dossier dist/ vide.
  5. Transpilation avec npm run build:babel ou yarn build:babel.
  6. Création du repo local git, commit des fichiers du projet. Push sur GitHub éventuellement.
  7. Publication du paquet npm avec npm publish --access public. Il faut s'être loggué au préalable avec npm login.