mirror of
https://github.com/acamarata/dayjs-hijri-plus.git
synced 2026-07-03 12:10:39 +00:00
- Flatten exports map to ADR-015 standard - Add coverage script (c8) - Migrate CI to corepack enable
45 lines
1.8 KiB
Markdown
45 lines
1.8 KiB
Markdown
# 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 deps
|
|
- `pnpm build` — tsup build
|
|
- `pnpm test` — run test.mjs + test-cjs.cjs
|
|
- `pnpm 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)
|