@simpill/enum.utils
v1.0.0
Published
Enum helpers: getEnumValue, isValidEnumValue, EnumHelper (Node and Edge).
Maintainers
Readme
Features: Type-safe · Node & Edge · Lightweight. The legacy utils/enum/ folder is deprecated; use @simpill/enum.utils only.
Installation
From npm
npm install @simpill/enum.utilsFrom GitHub
To use this package from the monorepo source:
git clone https://github.com/SkinnnyJay/simpill.git
cd simpill/utils/@simpill-enum.utils
npm install && npm run buildIn your project you can then install from the local path:
npm install /path/to/simpill/utils/@simpill-enum.utils
or use npm link from the package directory.
Quick Start
import { getEnumValue, isValidEnumValue } from "@simpill/enum.utils";
const Status = { Active: "active", Inactive: "inactive" } as const;
const v = getEnumValue(Status, "active"); // "active"
const v2 = getEnumValue(Status, "unknown", Status.Inactive); // "inactive"
if (isValidEnumValue(Status, input)) { /* input is Status value */ }Features
| Feature | Description |
|---------|-------------|
| getEnumValue | Get enum value with optional default (string enums only). Use generic for typed result: getEnumValue<MyEnum>(obj, key) or getEnumValue<MyEnum>(obj, key, default). |
| isValidEnumValue | Type guard: value is T[keyof T] when used as isValidEnumValue<MyEnum>(enumObj, value). |
| EnumHelper | Namespace with getEnumValue, isValidEnumValue |
Import Paths
import { ... } from "@simpill/enum.utils"; // Everything
import { ... } from "@simpill/enum.utils/client"; // Client
import { ... } from "@simpill/enum.utils/server"; // Server
import { ... } from "@simpill/enum.utils/shared"; // Shared onlyAPI Reference
- getEnumValue<T>(enumObj, value) → T[keyof T] | undefined
- getEnumValue<T>(enumObj, value, defaultValue) → T[keyof T]
- isValidEnumValue<T>(enumObj, value) → value is T[keyof T]
- EnumHelper — { getEnumValue, isValidEnumValue }
What we don't provide
- Numeric enums — Helpers target string enums (const objects or TypeScript string enums). For numeric enums use direct comparison or a small wrapper.
- Reverse lookup / iteration — No “key from value” or “all values”; use Object.values(enumObj) or Object.entries(enumObj) as needed.
- Schema validation — For Zod enums or runtime validation use @simpill/zod.utils (e.g. enumFromList) or @simpill/data.utils.
Examples
npx ts-node examples/01-basic-usage.ts| Example | Description | |---------|-------------| | 01-basic-usage.ts | getEnumValue, isValidEnumValue |
Development
npm install
npm test
npm run build
npm run verifyDocumentation
- Examples: examples/ — run with
npx ts-node examples/01-basic-usage.ts. - Monorepo: CONTRIBUTING for creating and maintaining packages.
- README standard: Package README standard.
License
ISC
