mirror of
https://github.com/acamarata/dayjs-hijri-plus.git
synced 2026-06-30 18:54:26 +00:00
- Flatten exports map to ADR-015 standard - Add coverage script (c8) - Migrate CI to corepack enable
1.8 KiB
1.8 KiB
dayjs-hijri-plus — PRI (Per-Repo Instructions)
PPI: ~/Sites/acamarata/.claude/CLAUDE.md
What This Is
A Day.js plugin that adds Hijri calendar support. Converts Gregorian dates to and from Hijri, provides Hijri-aware formatting, and delegates all calendar logic to hijri-core. Supports Umm al-Qura (UAQ) and FCNA/ISNA calendars out of the box. Custom calendar engines can be registered at runtime.
npm: dayjs-hijri-plus@1.0.0
Language: TypeScript
License: MIT
Key Technical Details
- Peer dependencies:
dayjs@^1.0.0,hijri-core@^1.0.0 - Plugin pattern: call
dayjs.extend(hijriPlugin)once at startup - Instance methods added:
toHijri(),formatHijri(),hijriYear(),hijriMonth(),hijriDay() - Static factory added:
dayjs.fromHijri(hy, hm, hd, options?) - Hijri format tokens:
iYYYY,iMM,iDD,iD,iMMMM— non-Hijri tokens pass through to dayjs - Options argument selects calendar:
{ calendar: 'uaq' }(default) or{ calendar: 'fcna' } - Dual CJS/ESM build via tsup
- Zero runtime dependencies (peer deps are provided by the consumer)
Architecture
src/index.ts is the plugin entry point — exports the default plugin function and any
types. src/types.ts holds shared type definitions. 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 Day.js — call
dayjs.extend(hijriPlugin)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
- dayjs is a peer dep — the consumer's installed dayjs instance is used (no bundled copy)