Repository navigation
FormaJS v1.0.0
First public release of FormaJS — a lightweight, modular library for validation, parsing, sanitization, and formatting of inputs, with built-in i18n and zero external dependencies.
Highlights
- ✅ Common validations: email, URL, IP, dates, UUID, credit card, license plate, ZIP/postal code, tax IDs, and more
- 🌍 i18n: localized messages (en-US and pt-BR), with runtime locale switching
- 🔧 Extensible: easily add validators, parsers, sanitizers, and formatters
- 📦 Zero dependencies, small and tree-shakable modules
- 🚀 Supports ESM, CJS, and UMD (for CDN)
- 🎯 Deep imports for granular usage
- ✅ Vitest tests and coverage configured
Installation
npm install @formajs/formajs
# or
pnpm add @formajs/formajs
# or
yarn add @formajs/formajsQuick usage
ESM – preconfigured instance
// Default locale: en-US
import forma from '@formajs/formajs';
const res = forma.validateEmail('john@example.com');
if (!res.valid) {
console.error(res.message);
}
// Switch locale at runtime
forma.setLocale('pt-BR');Deep imports (tree-shakable)
import { validateEmail } from '@formajs/formajs/validators/validateEmail';
const r = validateEmail('bad@@example.com');
// { valid: false, error: 'validateEmail', context?: {...} }CommonJS
const forma = require('@formajs/formajs').default;
const res = forma.validateEmail('user@example.com');CDN (UMD)
<script src="https://unpkg.com/@formajs/formajs@1/dist/formajs.umd.min.js"></script>
<script>
const result = forma.validateEmail('user@example.com');
console.log(result);
</script>Documentation
For full API documentation, including all available validators, parsers, sanitizers, and formatters, see:
- Validators — Email, URL, IP, credit cards, tax IDs, and more
- Parsers — Convert strings to typed values
- Sanitizers — Clean and normalize input data
- Formatters — Apply locale-aware formatting
Notes
- Scoped package:
@formajs/formajs - Global UMD name:
forma - License: MIT
- Repository: https://github.com/FormaJS/forma
- No breaking changes (initial release)
Links
- 📦 npm package
- 📚 Documentation
- 🐛 Issues
- 💬 Discussions