Enums con JavaScript
Instalación:
npm i @arskang/enumsjs
¿Cómo lo importo?
const Enums = ;
¿Cómo utilizarlo?
- La forma más sencilla es utilizar el método set y enviar un arreglo de strings.
const Roles = Enums;//> Enums generado: USUARIO,MODERADOR,ADMINISTRADOR RolesUSUARIO; // Retorna -> Enum { 0 }RolesMODERADOR; // Retorna -> Enum { 1 }RolesADMINISTRADOR; // Retorna -> Enum { 2 }
El valor inicial es 0, todos los enums retornan un objeto Enum (new Enum(x))
- Si se necesita personalizar los valores y agregar una descripción, se envía un objeto con las propiedades name, value y description en lugar de un string.
const Roles = Enums;//> Enums generado: USUARIO,MODERADOR,ADMINISTRADOR RolesUSUARIO; // Retorna -> Enum { 0 }RolesMODERADOR; // Retorna -> Enum { 3 }RolesADMINISTRADOR; // Retorna -> Enum { 4 }
value y description son opcionales, si no lleva name se enviará un warning en la consola y se omitirá en la generación del Enums
// El name ${name} tiene un tipo de dato no valido
- Para acceder a las propiedades se utliza .getName(), .getValue() y .getDescription().
const Roles = Enums;//> Enums generado: USUARIO,MODERADOR,ADMINISTRADOR RolesUSUARIO; // Retorna el string: 'Usuario'RolesUSUARIO; // Retorna el number: 0RolesUSUARIO; // Retorna el string: 'Rol Usuario' RolesMODERADOR; // Retorna el string: 'Moderador'RolesMODERADOR; // Retorna el number: 3RolesMODERADOR; // Retorna el string: 'Rol Moderador' RolesADMINISTRADOR; // Retorna el string: 'Administrador'RolesADMINISTRADOR; // Retorna el number: 4RolesADMINISTRADOR; // Retorna el string: 'Administrador'
- También se pueden utilizar los métodos .toString() y .toNumber() para acceder a sus respectivos valores.
RolesUSUARIO; // Retorna el string: 'Usuario'RolesUSUARIO; // Retorna el number: 0 RolesMODERADOR; // Retorna el string: 'Moderador'RolesMODERADOR; // Retorna el number: 3 RolesADMINISTRADOR; // Retorna el string: 'Administrador'RolesADMINISTRADOR; // Retorna el number: 4
- Para validar el valor de un Enums se utiliza .isEqual(value), value puede recibir: Enums, strings o numbers.
// Validar EnumsRolesUSUARIO; // Retorna TrueRolesUSUARIO; // Retorna False // Validar ValueRolesUSUARIO; // Retorna TrueRolesUSUARIO; // Retorna False // Validar Value como StringRolesUSUARIO; // Retorna TrueRolesUSUARIO; // Retorna False // Validar Name//> Se puede enviar: 'Usuario', 'usuario', 'UsuariO', etc.RolesUSUARIO; // Retorna TrueRolesUSUARIO; // Retorna False
Se puede utilizar mayúsculas/minúsculas/espacios al enviar el name
Si se envia un tipo de dato no permitido, retorna: Dato no valido
- Para convertir un valor que coincida con uno de los Enums se utiliza .convert(value), value puede recibir: Enums, strings o numbers.
// Convertir por EnumsRoles; // Retorna -> Enum { 0 }Roles; // Retorna -> Null // Convertir por ValueRoles; // Retorna -> Enum { 0 }Roles; // Retorna -> Null // Convertir por Value como StringRoles; // Retorna -> Enum { 0 }Roles; // Retorna -> Null // Convertir por Name//> Se puede enviar: 'Usuario', 'usuario', 'UsuariO', etc.Roles; // Retorna -> Enum { 0 }Roles; // Retorna -> Null
Se puede utilizar mayúsculas/minúsculas/espacios al enviar el name
Si se envia un tipo de dato no permitido, retorna: Dato no valido
Puntos importantes
- Se agrega un guión bajo en cada espacio que se detecte, ejemplo:
const Roles = Enums;//> Enums generado: USUARIO_BASICO,MODERADOR,ADMINISTRADOR RolesUSUARIO_BASICO; // Retorna -> Enum { 0 }
- Si por alguna razón se utilizán caracteres especiales para los enums, solo se puede acceder a su valor de la siguiente forma:
const Roles = Enums;//> Enums generado: USUARIO_BÁSICO,MODERADOR,ADMINISTRADOR Roles'USUARIO_BÁSICO'; // Retorna -> Enum { 0 }
Test
npm run test