0.0.6 • Published 5 months ago

oso-state-jc v0.0.6

Weekly downloads
-
License
MIT
Repository
-
Last release
5 months ago

🐻 OsoStateJC

OsoStateJC es una librería ligera para la gestión de estado en Angular utilizando Signals. Su objetivo es proporcionar una API fluida e intuitiva para manejar el estado de manera reactiva sin dependencias externas.


📌 Características

Gestión de estado basada en Signals.
API fluida para modificaciones con métodos encadenables.
Soporte para estructuras de datos anidadas y actualizaciones profundas.
Manipulación sencilla de arreglos (agregar, eliminar, actualizar).
Restablecimiento del estado a su valor inicial con un solo método.


🚀 Instalación

Puedes instalar OsoStateJC a través de npm:

npm install oso-state-jc

Luego, impórtalo en tu código:

import { OsoStateJC } from "oso-state-jc";

📖 Uso

🔹 Creación del estado

interface User {
  name: string;
  age: number;
  hobbies: string[];
}

const state = OsoStateJC.create<User>({
  name: "John",
  age: 30,
  hobbies: ["reading", "coding"],
});

📌 API

🔍 Obtener el estado actual (valor estático)

const currentState = state.state;

✏️ Modificar una propiedad

state.modify("name").set("Jane");

🔍 Obtener una propiedad (devuelve un Signal de la propiedad)

const nameSignal = state.modify("name").get();

🔄 Obtener dinámicamente el valor de una propiedad (valor estático)

const dynamicValue = state.modify("name").get()();

🏗️ Manejo de arreglos

Agregar un elemento a un array

state.modify("hobbies").add("gaming");

Eliminar un elemento de un array

state.modify("hobbies").remove((hobby) => hobby === "reading");

🔄 Actualizar un elemento en un array

state.modify("hobbies").update(
  (hobby) => hobby === "coding",
  () => "programming"
);

📌 Modificación de estructuras anidadas

🔹 Modificar una propiedad anidada directamente

state.modify("user").nested("email", "new@example.com");

🌍 Modificar valores en profundidad (Deep Update)

state.modify("user").deep("address.city", "New York");

🔄 Resetear el estado a su valor inicial

state.reset();

Buenas Prácticas

✔️ Utilizar un solo OsoStateJC por dominio de estado para evitar duplicaciones innecesarias.
✔️ No modificar el estado directamente, sino siempre utilizar la API provista.
✔️ Usar Signals en los templates para garantizar la reactividad y evitar cambios inesperados.


⚠️ Consideraciones

⚠️ El estado no persiste entre recargas de página (si necesitas persistencia, complementa con almacenamiento en localStorage o una base de datos).
⚠️ Es una librería enfocada en Angular y Signals, no es compatible con otros frameworks.
⚠️ Diseñada para ser ligera y sin dependencias externas.


🤝 Contribución

¡Las contribuciones son bienvenidas! 🎉
Si deseas mejorar OsoStateJC, por favor abre un issue o envía un pull request.

📩 Contacto: OsoDreamer


📄 Licencia

MIT © OsoDreamer


🎯 Conclusión

OsoStateJC es una solución ligera, eficaz y fácil de usar para gestionar el estado en Angular con Signals. Su API fluida y flexible permite manejar el estado sin comprometer la escalabilidad ni la reactividad de la aplicación. 🚀🐻

0.0.6

5 months ago

0.0.5

5 months ago

0.0.4

5 months ago

0.0.3

5 months ago

0.0.2

5 months ago

0.0.1

5 months ago