oso-state-jc v0.0.6
🐻 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. 🚀🐻