@jkumonpm/dayjs-roc 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -7
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
# dayjs-roc
|
|
1
|
+
# @jkumonpm/dayjs-roc
|
|
2
2
|
|
|
3
3
|
> Day.js plugin for Taiwan ROC (Republic of China) calendar year. Supports `RRR`/`RR` format output and ROC date parsing.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npm install dayjs-roc
|
|
8
|
+
npm install @jkumonpm/dayjs-roc
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
Requires [dayjs](https://day.js.org/) as a peer dependency.
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## Two Usage Modes
|
|
14
|
+
|
|
15
|
+
### 1️⃣ Plugin Mode (Day.js Extension)
|
|
14
16
|
|
|
15
17
|
```typescript
|
|
16
18
|
import dayjs from 'dayjs'
|
|
17
|
-
import roc from 'dayjs-roc'
|
|
19
|
+
import roc from '@jkumonpm/dayjs-roc'
|
|
18
20
|
|
|
19
21
|
dayjs.extend(roc)
|
|
20
22
|
|
|
@@ -27,6 +29,41 @@ dayjs('1912-01-01').format('RRR年MM月DD日') // → '001年01月01日'
|
|
|
27
29
|
dayjs('2026-04-04').rocYear() // → 115
|
|
28
30
|
```
|
|
29
31
|
|
|
32
|
+
### 2️⃣ Direct Function Mode (No Day.js Required)
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
import { rocToAD, adToROC, isROCDate, parseROC, formatRRR, formatRR, isROC, parseROCDate } from '@jkumonpm/dayjs-roc'
|
|
36
|
+
|
|
37
|
+
// Convert ROC year to AD year
|
|
38
|
+
rocToAD(115) // → 2026
|
|
39
|
+
rocToAD(1) // → 1912
|
|
40
|
+
rocToAD(0) // → null
|
|
41
|
+
|
|
42
|
+
// Convert AD year to ROC year
|
|
43
|
+
adToROC(2026) // → 115
|
|
44
|
+
adToROC(1912) // → 1
|
|
45
|
+
adToROC(1911) // → null
|
|
46
|
+
|
|
47
|
+
// Validate ROC date string
|
|
48
|
+
isROCDate('115/04/04') // → true
|
|
49
|
+
isROCDate('115/13/01') // → false
|
|
50
|
+
isROC('115/04/04') // → true (alias)
|
|
51
|
+
|
|
52
|
+
// Parse ROC date string to native Date
|
|
53
|
+
parseROC('115/04/04') // → Date(2026, 3, 4)
|
|
54
|
+
parseROC('invalid') // → null
|
|
55
|
+
|
|
56
|
+
// Parse ROC date string to Dayjs
|
|
57
|
+
parseROCDate('115/04/04')?.format('YYYY-MM-DD') // → '2026-04-04'
|
|
58
|
+
parseROCDate('invalid') // → null
|
|
59
|
+
|
|
60
|
+
// Format ROC year
|
|
61
|
+
formatRRR(115) // → '115'
|
|
62
|
+
formatRRR(1) // → '001'
|
|
63
|
+
formatRR(15) // → '15'
|
|
64
|
+
formatRR(1) // → '01'
|
|
65
|
+
```
|
|
66
|
+
|
|
30
67
|
## Format Tokens
|
|
31
68
|
|
|
32
69
|
| Token | Output | Description |
|
|
@@ -53,7 +90,7 @@ today.format('RR/MM/DD HH:mm') // → '15/04/04 14:30'
|
|
|
53
90
|
Check if a string is a valid ROC date format.
|
|
54
91
|
|
|
55
92
|
```typescript
|
|
56
|
-
import { isROC } from 'dayjs-roc'
|
|
93
|
+
import { isROC } from '@jkumonpm/dayjs-roc'
|
|
57
94
|
|
|
58
95
|
isROC('115/04/04') // → true
|
|
59
96
|
isROC('1/1/1') // → true
|
|
@@ -68,7 +105,7 @@ isROC('abc') // → false
|
|
|
68
105
|
Parse a ROC date string into a Dayjs instance.
|
|
69
106
|
|
|
70
107
|
```typescript
|
|
71
|
-
import { parseROCDate } from 'dayjs-roc'
|
|
108
|
+
import { parseROCDate } from '@jkumonpm/dayjs-roc'
|
|
72
109
|
|
|
73
110
|
const date = parseROCDate('115/04/04')
|
|
74
111
|
date?.year() // → 2026
|
|
@@ -82,7 +119,7 @@ parseROCDate('invalid') // → null
|
|
|
82
119
|
### Core Functions (no Day.js required)
|
|
83
120
|
|
|
84
121
|
```typescript
|
|
85
|
-
import { rocToAD, adToROC, isROCDate, parseROC, formatRRR, formatRR } from 'dayjs-roc'
|
|
122
|
+
import { rocToAD, adToROC, isROCDate, parseROC, formatRRR, formatRR } from '@jkumonpm/dayjs-roc'
|
|
86
123
|
|
|
87
124
|
// Convert ROC year to AD year
|
|
88
125
|
rocToAD(115) // → 2026
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { PluginFunc, Dayjs } from 'dayjs';
|
|
2
|
+
import { rocToAD, adToROC, isROCDate, parseROC, formatRRR, formatRR } from './roc-utils.js';
|
|
2
3
|
declare module 'dayjs' {
|
|
3
4
|
interface Dayjs {
|
|
4
5
|
rocYear(): number | null;
|
|
5
6
|
}
|
|
6
7
|
}
|
|
8
|
+
export { rocToAD, adToROC, isROCDate, parseROC, formatRRR, formatRR };
|
|
7
9
|
/**
|
|
8
10
|
* Check if a string is a valid ROC date format.
|
|
9
11
|
* @param str - Date string to check
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE9C,OAAO,EACL,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAEvB,OAAO,QAAQ,OAAO,CAAC;IACrB,UAAU,KAAK;QACb,OAAO,IAAI,MAAM,GAAG,IAAI,CAAA;KACzB;CACF;AAGD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;AAErE;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE1C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAItD;AAED,QAAA,MAAM,GAAG,EAAE,UA+BV,CAAA;AAED,eAAe,GAAG,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import dayjs from 'dayjs';
|
|
2
|
-
import { adToROC, isROCDate, parseROC, formatRRR, formatRR, } from './roc-utils.js';
|
|
2
|
+
import { rocToAD, adToROC, isROCDate, parseROC, formatRRR, formatRR, } from './roc-utils.js';
|
|
3
|
+
// Re-export utility functions for direct use (no Day.js required)
|
|
4
|
+
export { rocToAD, adToROC, isROCDate, parseROC, formatRRR, formatRR };
|
|
3
5
|
/**
|
|
4
6
|
* Check if a string is a valid ROC date format.
|
|
5
7
|
* @param str - Date string to check
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,GACT,MAAM,gBAAgB,CAAA;AAQvB;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,GAAW;IAC/B,OAAO,SAAS,CAAC,GAAG,CAAC,CAAA;AACvB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC1B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAA;AACpB,CAAC;AAED,MAAM,GAAG,GAAe,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE;IAC7D,uDAAuD;IACvD,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAA;IAC7C,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,SAAkB;QACxD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAE/B,0BAA0B;QAC1B,IAAI,MAAM,GAAG,SAAS,CAAA;QACtB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;YAC9B,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;YAC5B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YACtC,CAAC;YACD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACpC,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,kDAAkD;IAClD,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG;QAC7B,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAC7B,CAAC,CAAA;AACH,CAAC,CAAA;AAED,eAAe,GAAG,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,GACT,MAAM,gBAAgB,CAAA;AAQvB,kEAAkE;AAClE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;AAErE;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,GAAW;IAC/B,OAAO,SAAS,CAAC,GAAG,CAAC,CAAA;AACvB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC1B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAA;AACpB,CAAC;AAED,MAAM,GAAG,GAAe,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE;IAC7D,uDAAuD;IACvD,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAA;IAC7C,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,SAAkB;QACxD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAE/B,0BAA0B;QAC1B,IAAI,MAAM,GAAG,SAAS,CAAA;QACtB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;YAC9B,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;YAC5B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YACtC,CAAC;YACD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACpC,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,kDAAkD;IAClD,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG;QAC7B,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAC7B,CAAC,CAAA;AACH,CAAC,CAAA;AAED,eAAe,GAAG,CAAA"}
|