mirror of
https://github.com/acamarata/moment-hijri-plus.git
synced 2026-06-30 18:54:29 +00:00
- Flatten exports map to ADR-015 standard - Add coverage script (c8) - Migrate CI to corepack enable
2 KiB
2 KiB
moment-hijri-plus — PRI (Per-Repo Instructions)
PPI: ~/Sites/acamarata/.claude/CLAUDE.md
What This Is
Moment.js plugin for Hijri calendar conversion and formatting. Delegates all calendar
logic to hijri-core, a zero-dependency Hijri engine with pluggable calendar support.
Supports Umm al-Qura and FCNA/ISNA calendars. Installed via a function call rather than
moment.extend() — call installHijri(moment) once at startup.
npm: moment-hijri-plus@1.0.0
Language: TypeScript
License: MIT
Key Technical Details
- Peer dependencies:
moment@^2.0.0,hijri-core@^1.0.0 - Plugin pattern:
installHijri(moment)called once at startup (not moment.fn.extend) - Instance methods added:
toHijri(),hijriYear(),hijriMonth(),hijriDay(),isValidHijri(),formatHijri() - Static factory added:
moment.fromHijri(hy, hm, hd, options?) formatHijri()Hijri tokens:iD,iMMMM,iYYYY,iM,iDD,iMM— non-Hijri tokens pass through to moment.format()- Out-of-range inputs return
null(instance methods) or empty string (formatHijri) fromHijri()throws if the date is invalid or out of range- Dual CJS/ESM build via tsup
- Zero runtime dependencies (peer deps are provided by the consumer)
Architecture
src/index.ts exports the default installHijri function and shared types. Built to
dist/ (gitignored) with .cjs and .mjs outputs plus dual type declarations.
Commands
pnpm install— install dev depspnpm build— tsup buildpnpm test— run test.mjs + test-cjs.cjspnpm run typecheck— tsc --noEmit
Important Notes
- This is a plugin for Moment.js — call
installHijri(moment)once before using any methods - hijri-core provides the actual calendar engine — this package is a thin adapter
- Changes to hijri-core's API may require updates here
- moment is a peer dep — the consumer's installed moment instance is used (no bundled copy)
- Moment.js is in maintenance mode; this package targets existing moment users, not new projects