Skip to content

Commit b9e05a5

Browse files
committed
Merge branch 'main' of github.com:green-labs/rescript-bindings into v11
2 parents 393a149 + d267845 commit b9e05a5

File tree

9 files changed

+131
-69
lines changed

9 files changed

+131
-69
lines changed

README.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,16 @@
44
55
## List
66

7-
- [@greenlabs/rescript-next](https://www.npmjs.com/package/@greenlabs/rescript-next)
8-
- [@greenlabs/rescript-nock](https://www.npmjs.com/package/@greenlabs/rescript-nock)
7+
- [@greenlabs/rescript-date-fns](https://www.npmjs.com/package/@greenlabs/rescript-date-fns)
8+
- [@greenlabs/rescript-daum-postcode](https://www.npmjs.com/package/@greenlabs/rescript-daum-postcode)
9+
- [@greenlabs/rescript-hammerjs](https://www.npmjs.com/package/@greenlabs/rescript-hammerjs)
910
- [@greenlabs/rescript-jest](https://www.npmjs.com/package/@greenlabs/rescript-jest)
11+
- [@greenlabs/rescript-nock](https://www.npmjs.com/package/@greenlabs/rescript-nock)
1012
- [@greenlabs/rescript-react-hook-form](https://www.npmjs.com/package/@greenlabs/rescript-react-hook-form)
11-
- [@greenlabs/rescript-testing-library](https://www.npmjs.com/package/@greenlabs/rescript-testing-library)
12-
- [@greenlabs/rescript-daum-postcode](https://www.npmjs.com/package/@greenlabs/rescript-daum-postcode)
13+
- [@greenlabs/rescript-next](https://www.npmjs.com/package/@greenlabs/rescript-next)
1314
- [@greenlabs/rescript-react-linkify](https://www.npmjs.com/package/@greenlabs/rescript-react-linkify)
14-
- [@greenlabs/rescript-date-fns](https://www.npmjs.com/package/@greenlabs/rescript-date-fns)
15-
- [@greenlabs/rescript-hammerjs](https://www.npmjs.com/package/@greenlabs/rescript-hammerjs)
15+
- [@greenlabs/rescript-testing-library](https://www.npmjs.com/package/@greenlabs/rescript-testing-library)
16+
- [@greenlabs/rescript-use-debounce](https://www.npmjs.com/package/@greenlabs/rescript-use-debounce)
1617

1718
## Development
1819

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@
2424
"devDependencies": {
2525
"lerna-templater": "^1.4.3"
2626
}
27-
}
27+
}

packages/rescript-date-fns/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@greenlabs/rescript-date-fns",
33
"description": "ReScript bindings to date-fns",
4-
"version": "1.0.0",
4+
"version": "2.30.0",
55
"license": "MIT",
66
"author": "Greenlabs Dev <developer@greenlabs.co.kr>",
77
"contributors": [
@@ -25,6 +25,6 @@
2525
"directory": "packages/rescript-date-fns"
2626
},
2727
"dependencies": {
28-
"date-fns": "2.20.0"
28+
"date-fns": "2.30.0"
2929
}
3030
}

packages/rescript-date-fns/rescript.json

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,17 @@
99
{
1010
"dir": "./src",
1111
"subdirs": false
12+
},
13+
{
14+
"dir": "./test",
15+
"type": "dev",
16+
"subdirs": true
1217
}
1318
],
14-
"bsc-flags": ["-bs-no-version-header"],
19+
"bsc-flags": [
20+
"-bs-no-version-header"
21+
],
1522
"warnings": {
1623
"error": true
1724
}
18-
}
25+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
2+
3+
4+
var Locale = {};
5+
6+
export {
7+
Locale ,
8+
}
9+
/* No side effect */

packages/rescript-date-fns/src/DateFns.res

Lines changed: 54 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -17,50 +17,50 @@ external closestTo: (Js.Date.t, array<Js.Date.t>) => Js.Date.t = "default"
1717

1818
@module("date-fns/format") external format: (Js.Date.t, string) => string = "default"
1919
type formatOptions = {
20-
locale: option<locale>,
21-
weekStartsOn: option<int>,
22-
firstWeekContainsDate: option<int>,
23-
useAdditionalWeekYearTokens: option<bool>,
24-
useAdditionalDayOfYearTokens: option<bool>,
20+
locale?: locale,
21+
weekStartsOn?: int,
22+
firstWeekContainsDate?: int,
23+
useAdditionalWeekYearTokens?: bool,
24+
useAdditionalDayOfYearTokens?: bool,
2525
}
2626
@module("date-fns/format")
2727
external formatOpt: (Js.Date.t, string, formatOptions) => string = "default"
2828

2929
@module("date-fns/formatDistance")
3030
external formatDistance: (Js.Date.t, Js.Date.t) => string = "default"
3131
type formatDistanceOptions = {
32-
includeSeconds: option<bool>,
33-
addSuffix: option<bool>,
34-
locale: option<locale>,
32+
includeSeconds?: bool,
33+
addSuffix?: bool,
34+
locale?: locale,
3535
}
3636
@module("date-fns/formatDistance")
3737
external formatDistanceOpt: (Js.Date.t, Js.Date.t, formatDistanceOptions) => string = "default"
3838
@module("date-fns/formatDistanceStrict")
3939
external formatDistanceStrict: (Js.Date.t, Js.Date.t) => string = "default"
4040
type formatDistanceStrictOptions = {
41-
addSuffix: option<bool>,
42-
unit: option<string>,
43-
roundingMethod: option<string>,
44-
locale: option<locale>,
41+
addSuffix?: bool,
42+
unit?: string,
43+
roundingMethod?: string,
44+
locale?: locale,
4545
}
4646
@module("date-fns/formatDistanceStrict")
4747
external formatDistanceStrictOpt: (Js.Date.t, Js.Date.t, formatDistanceStrictOptions) => string =
4848
"default"
4949
@module("date-fns/formatDistanceToNow")
5050
external formatDistanceToNow: Js.Date.t => string = "default"
5151
type formatDistanceToNowOptions = {
52-
includeSeconds: option<bool>,
53-
addSuffix: option<bool>,
54-
locale: option<locale>,
52+
includeSeconds?: bool,
53+
addSuffix?: bool,
54+
locale?: locale,
5555
}
5656
@module("date-fns/formatDistanceToNow")
5757
external formatDistanceToNowOpt: (Js.Date.t, formatDistanceToNowOptions) => string = "default"
5858

5959
@module("date-fns/formatISO")
6060
external formatISO: Js.Date.t => string = "default"
6161
type formatISOOptions = {
62-
format: option<string>,
63-
representation: option<string>,
62+
format?: string,
63+
representation?: string,
6464
}
6565

6666
@module("date-fns/formatISO")
@@ -69,15 +69,15 @@ external formatISOOpt: (Js.Date.t, formatISOOptions) => string = "default"
6969
@module("date-fns/formatISO9075")
7070
external formatISO9075: Js.Date.t => string = "default"
7171
type formatISO9075Options = {
72-
format: option<string>,
73-
representation: option<string>,
72+
format?: string,
73+
representation?: string,
7474
}
7575

7676
@module("date-fns/formatISO9075")
7777
external formatISO9075Opt: (Js.Date.t, formatISO9075Options) => string = "default"
7878

7979
@module("date-fns/formatRFC3339") external formatRFC3339: Js.Date.t => string = "default"
80-
type formatRFC3339Options = {fractionDigits: option<int>}
80+
type formatRFC3339Options = {fractionDigits?: int}
8181

8282
@module("date-fns/formatRFC3339")
8383
external formatRFC3339Options: (Js.Date.t, formatRFC3339Options) => string = "default"
@@ -87,8 +87,8 @@ external formatRFC3339Options: (Js.Date.t, formatRFC3339Options) => string = "de
8787
@module("date-fns/formatRelative")
8888
external formatRelative: (Js.Date.t, Js.Date.t) => string = "default"
8989
type formatRelativeOptions = {
90-
locale: option<locale>,
91-
weekStartsOn: option<int>,
90+
locale?: locale,
91+
weekStartsOn?: int,
9292
}
9393
@module("date-fns/formatRelative")
9494
external formatRelativeOpt: (Js.Date.t, Js.Date.t, formatRelativeOptions) => string = "default"
@@ -106,30 +106,30 @@ external formatRelativeOpt: (Js.Date.t, Js.Date.t, formatRelativeOptions) => str
106106
@module("date-fns/parse") external parse: (string, string, Js.Date.t) => Js.Date.t = "default"
107107

108108
type parseOptions = {
109-
locale: option<locale>,
110-
weekStartsOn: option<int>,
111-
firstWeekContainsDate: option<int>,
112-
useAdditionalWeekYearTokens: option<bool>,
113-
useAdditionalDayOfYearTokens: option<bool>,
109+
locale?: locale,
110+
weekStartsOn?: int,
111+
firstWeekContainsDate?: int,
112+
useAdditionalWeekYearTokens?: bool,
113+
useAdditionalDayOfYearTokens?: bool,
114114
}
115115

116116
@module("date-fns/parse")
117117
external parseOpt: (string, string, Js.Date.t, parseOptions) => Js.Date.t = "default"
118118
@module("date-fns/parseISO") external parseISO: string => Js.Date.t = "default"
119-
type parseISOOptions = {additionalDigits: option<int>}
119+
type parseISOOptions = {additionalDigits?: int}
120120
@module("date-fns/parseISO")
121121
external parseISOOpt: (string, parseISOOptions) => Js.Date.t = "default"
122122
@module("date-fns/parseJSON") external parseJSONString: string => Js.Date.t = "default"
123123
@module("date-fns/parseJSON") external parseJSONFloat: float => Js.Date.t = "default"
124124
@module("date-fns/parseJSON") external parseJSONInt: int => Js.Date.t = "default"
125125
type setOptions = {
126-
year: option<int>,
127-
month: option<int>,
128-
date: option<int>,
129-
hours: option<int>,
130-
minutes: option<int>,
131-
seconds: option<int>,
132-
milliseconds: option<int>,
126+
year?: int,
127+
month?: int,
128+
date?: int,
129+
hours?: int,
130+
minutes?: int,
131+
seconds?: int,
132+
milliseconds?: int,
133133
}
134134
@module("date-fns/set") external set: (Js.Date.t, setOptions) => Js.Date.t = "default"
135135
@module("date-fns/toDate") external toDateFloat: float => Js.Date.t = "default"
@@ -143,15 +143,15 @@ external areIntervalsOverlapping: (interval, interval) => bool = "default"
143143
@module("date-fns/eachDayOfInterval")
144144
external eachDayOfInterval: interval => array<Js.Date.t> = "default"
145145

146-
type eachDayOfIntervalOptions = {step: option<int>}
146+
type eachDayOfIntervalOptions = {step?: int}
147147
@module("date-fns/eachDayOfInterval")
148148
external eachDayOfIntervalOpt: (interval, eachDayOfIntervalOptions) => array<Js.Date.t> = "default"
149149

150150
@module("date-fns/eachWeekOfInterval")
151151
external eachWeekOfInterval: interval => array<Js.Date.t> = "default"
152152
type eachWeekOfIntervalOptions = {
153-
locale: option<locale>,
154-
weekStartsOn: option<int>,
153+
locale?: locale,
154+
weekStartsOn?: int,
155155
}
156156
@module("date-fns/eachWeekOfInterval")
157157
external eachWeekOfIntervalOpt: (interval, eachWeekOfIntervalOptions) => array<Js.Date.t> =
@@ -227,7 +227,7 @@ external differenceInMinutesf: (Js.Date.t, Js.Date.t) => float = "default"
227227

228228
@module("date-fns/roundToNearestMinutes")
229229
external roundToNearestMinutes: Js.Date.t => Js.Date.t = "default"
230-
type roundToNearestMinutesOptions = {nearestTo: option<int>}
230+
type roundToNearestMinutesOptions = {nearestTo?: int}
231231

232232
@module("date-fns/roundToNearestMinutes")
233233
external roundToNearestMinutesOpt: (Js.Date.t, roundToNearestMinutesOptions) => Js.Date.t =
@@ -317,8 +317,8 @@ external subBusinessDaysf: (Js.Date.t, float) => Js.Date.t = "default"
317317
@module("date-fns/setDay") external setDay: (Js.Date.t, int) => Js.Date.t = "default"
318318
@module("date-fns/setDay") external setDayf: (Js.Date.t, float) => Js.Date.t = "default"
319319
type setDayOptions = {
320-
locale: option<locale>,
321-
weekStartsOn: option<int>,
320+
locale?: locale,
321+
weekStartsOn?: int,
322322
}
323323
@module("date-fns/setDay")
324324
external setDayOpt: (Js.Date.t, int, setDayOptions) => Js.Date.t = "default"
@@ -329,8 +329,8 @@ external setDayOptf: (Js.Date.t, float, setDayOptions) => Js.Date.t = "default"
329329

330330
// Week Helpers
331331
type weekOptions = {
332-
locale: option<locale>,
333-
weekStartsOn: option<int>,
332+
locale?: locale,
333+
weekStartsOn?: int,
334334
}
335335
@module("date-fns/addWeeks") external addWeeks: (Js.Date.t, int) => Js.Date.t = "default"
336336
@module("date-fns/addWeeks") external addWeeksf: (Js.Date.t, float) => Js.Date.t = "default"
@@ -358,9 +358,9 @@ external endOfWeekOpt: (Js.Date.t, weekOptions) => Js.Date.t = "default"
358358
@module("date-fns/getWeek") external getWeek: Js.Date.t => int = "default"
359359
@module("date-fns/getWeek") external getWeekf: Js.Date.t => float = "default"
360360
type getWeekOptions = {
361-
locale: option<locale>,
362-
weekStartsOn: option<int>,
363-
firstWeekContainsDate: option<int>,
361+
locale?: locale,
362+
weekStartsOn?: int,
363+
firstWeekContainsDate?: int,
364364
}
365365
@module("date-fns/getWeek") external getWeekOpt: (Js.Date.t, getWeekOptions) => int = "default"
366366
@module("date-fns/getWeek") external getWeekOptf: (Js.Date.t, getWeekOptions) => float = "default"
@@ -392,9 +392,9 @@ external isSameWeekOpt: (Js.Date.t, Js.Date.t, weekOptions) => bool = "default"
392392
@module("date-fns/setWeek") external setWeek: (Js.Date.t, int) => Js.Date.t = "default"
393393
@module("date-fns/setWeek") external setWeekf: (Js.Date.t, float) => Js.Date.t = "default"
394394
type setWeekOptions = {
395-
locale: option<locale>,
396-
weekStartsOn: option<int>,
397-
firstWeekContainsDate: option<int>,
395+
locale?: locale,
396+
weekStartsOn?: int,
397+
firstWeekContainsDate?: int,
398398
}
399399
@module("date-fns/setWeek")
400400
external setWeekOpt: (Js.Date.t, int, setWeekOptions) => Js.Date.t = "default"
@@ -468,7 +468,7 @@ external differenceInQuartersf: (Js.Date.t, Js.Date.t) => float = "default"
468468
@module("date-fns/isSameQuarter") external isSameQuarter: (Js.Date.t, Js.Date.t) => bool = "default"
469469
@module("date-fns/isThisQuarter") external isThisQuarter: Js.Date.t => bool = "default"
470470
@module("date-fns/lastDayOfQuarter") external lastDayOfQuarter: Js.Date.t => Js.Date.t = "default"
471-
type lastDayOfQuarterOptions = {additionalDigits: option<int>}
471+
type lastDayOfQuarterOptions = {additionalDigits?: int}
472472

473473
@module("date-fns/lastDayOfQuarter")
474474
external lastDayOfQuarterOpt: (Js.Date.t, lastDayOfQuarterOptions) => Js.Date.t = "default"
@@ -542,7 +542,7 @@ external subISOWeekYearsf: (Js.Date.t, float) => Js.Date.t = "default"
542542

543543
// Decade Helpers
544544
@module("date-fns/endOfDecade") external endOfDecade: Js.Date.t => Js.Date.t = "default"
545-
type endOfDecadeOptions = {additionalDigits: option<int>}
545+
type endOfDecadeOptions = {additionalDigits?: int}
546546
@module("date-fns/endOfDecade")
547547
external endOfDecadeOpt: (Js.Date.t, endOfDecadeOptions) => Js.Date.t = "default"
548548
@module("date-fns/getDecade") external getDecade: Js.Date.t => int = "default"
@@ -552,9 +552,9 @@ external endOfDecadeOpt: (Js.Date.t, endOfDecadeOptions) => Js.Date.t = "default
552552

553553
// Week-Numbering Year Helpers
554554
type weekYearOptions = {
555-
locale: option<locale>,
556-
weekStartsOn: option<int>,
557-
firstWeekContainsDate: option<int>,
555+
locale?: locale,
556+
weekStartsOn?: int,
557+
firstWeekContainsDate?: int,
558558
}
559559
@module("date-fns/getWeekYear") external getWeekYear: Js.Date.t => int = "default"
560560
@module("date-fns/getWeekYear")
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
2+
3+
import * as Caml_option from "rescript/lib/es6/caml_option.js";
4+
import Format from "date-fns/format";
5+
import FormatISO from "date-fns/formatISO";
6+
import Ko from "date-fns/locale/ko";
7+
8+
console.log(FormatISO(new Date()));
9+
10+
var date = new Date(2020, 1, 1);
11+
12+
console.log(Format(date, "yyyy년 M월 d일 (E)", {
13+
locale: Caml_option.some(Ko)
14+
}));
15+
16+
export {
17+
date ,
18+
}
19+
/* Not a pure module */
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Js.log(Js.Date.make()->DateFns.formatISO)
2+
3+
let date = Js.Date.makeWithYMD(~year=2020., ~month=1., ~date=1., ())
4+
5+
date
6+
->DateFns.formatOpt(
7+
"yyyy년 M월 d일 (E)",
8+
{
9+
locale: DateFns.Locale.ko,
10+
},
11+
)
12+
->Js.log

0 commit comments

Comments
 (0)