Skip to content

Commit

Permalink
rescript v11, update date-fns
Browse files Browse the repository at this point in the history
  • Loading branch information
namenu committed Jan 2, 2024
1 parent 8c8c4cd commit d267845
Show file tree
Hide file tree
Showing 9 changed files with 140 additions and 73 deletions.
13 changes: 7 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,16 @@
## List

- [@greenlabs/rescript-next](https://www.npmjs.com/package/@greenlabs/rescript-next)
- [@greenlabs/rescript-nock](https://www.npmjs.com/package/@greenlabs/rescript-nock)
- [@greenlabs/rescript-date-fns](https://www.npmjs.com/package/@greenlabs/rescript-date-fns)
- [@greenlabs/rescript-daum-postcode](https://www.npmjs.com/package/@greenlabs/rescript-daum-postcode)
- [@greenlabs/rescript-hammerjs](https://www.npmjs.com/package/@greenlabs/rescript-hammerjs)
- [@greenlabs/rescript-jest](https://www.npmjs.com/package/@greenlabs/rescript-jest)
- [@greenlabs/rescript-nock](https://www.npmjs.com/package/@greenlabs/rescript-nock)
- [@greenlabs/rescript-react-hook-form](https://www.npmjs.com/package/@greenlabs/rescript-react-hook-form)
- [@greenlabs/rescript-testing-library](https://www.npmjs.com/package/@greenlabs/rescript-testing-library)
- [@greenlabs/rescript-daum-postcode](https://www.npmjs.com/package/@greenlabs/rescript-daum-postcode)
- [@greenlabs/rescript-next](https://www.npmjs.com/package/@greenlabs/rescript-next)
- [@greenlabs/rescript-react-linkify](https://www.npmjs.com/package/@greenlabs/rescript-react-linkify)
- [@greenlabs/rescript-date-fns](https://www.npmjs.com/package/@greenlabs/rescript-date-fns)
- [@greenlabs/rescript-hammerjs](https://www.npmjs.com/package/@greenlabs/rescript-hammerjs)
- [@greenlabs/rescript-testing-library](https://www.npmjs.com/package/@greenlabs/rescript-testing-library)
- [@greenlabs/rescript-use-debounce](https://www.npmjs.com/package/@greenlabs/rescript-use-debounce)

## Development

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"dependencies": {
"@changesets/cli": "^2.24.4",
"lerna": "^5.5.0",
"rescript": "^10.0.1"
"rescript": "11.0.0-rc.8"
},
"private": true,
"workspaces": [
Expand Down
4 changes: 2 additions & 2 deletions packages/rescript-date-fns/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@greenlabs/rescript-date-fns",
"description": "ReScript bindings to date-fns",
"version": "1.0.0",
"version": "2.30.0",
"license": "MIT",
"author": "Greenlabs Dev <developer@greenlabs.co.kr>",
"contributors": [
Expand All @@ -25,6 +25,6 @@
"directory": "packages/rescript-date-fns"
},
"dependencies": {
"date-fns": "2.20.0"
"date-fns": "2.30.0"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,17 @@
{
"dir": "./src",
"subdirs": false
},
{
"dir": "./test",
"type": "dev",
"subdirs": true
}
],
"bsc-flags": ["-bs-no-version-header"],
"bsc-flags": [
"-bs-no-version-header"
],
"warnings": {
"error": true
}
}
}
9 changes: 9 additions & 0 deletions packages/rescript-date-fns/src/DateFns.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@



var Locale = {};

export {
Locale ,
}
/* No side effect */
108 changes: 54 additions & 54 deletions packages/rescript-date-fns/src/DateFns.res
Original file line number Diff line number Diff line change
Expand Up @@ -17,50 +17,50 @@ external closestTo: (Js.Date.t, array<Js.Date.t>) => Js.Date.t = "default"

@module("date-fns/format") external format: (Js.Date.t, string) => string = "default"
type formatOptions = {
locale: option<locale>,
weekStartsOn: option<int>,
firstWeekContainsDate: option<int>,
useAdditionalWeekYearTokens: option<bool>,
useAdditionalDayOfYearTokens: option<bool>,
locale?: locale,
weekStartsOn?: int,
firstWeekContainsDate?: int,
useAdditionalWeekYearTokens?: bool,
useAdditionalDayOfYearTokens?: bool,
}
@module("date-fns/format")
external formatOpt: (Js.Date.t, string, formatOptions) => string = "default"

@module("date-fns/formatDistance")
external formatDistance: (Js.Date.t, Js.Date.t) => string = "default"
type formatDistanceOptions = {
includeSeconds: option<bool>,
addSuffix: option<bool>,
locale: option<locale>,
includeSeconds?: bool,
addSuffix?: bool,
locale?: locale,
}
@module("date-fns/formatDistance")
external formatDistanceOpt: (Js.Date.t, Js.Date.t, formatDistanceOptions) => string = "default"
@module("date-fns/formatDistanceStrict")
external formatDistanceStrict: (Js.Date.t, Js.Date.t) => string = "default"
type formatDistanceStrictOptions = {
addSuffix: option<bool>,
unit: option<string>,
roundingMethod: option<string>,
locale: option<locale>,
addSuffix?: bool,
unit?: string,
roundingMethod?: string,
locale?: locale,
}
@module("date-fns/formatDistanceStrict")
external formatDistanceStrictOpt: (Js.Date.t, Js.Date.t, formatDistanceStrictOptions) => string =
"default"
@module("date-fns/formatDistanceToNow")
external formatDistanceToNow: Js.Date.t => string = "default"
type formatDistanceToNowOptions = {
includeSeconds: option<bool>,
addSuffix: option<bool>,
locale: option<locale>,
includeSeconds?: bool,
addSuffix?: bool,
locale?: locale,
}
@module("date-fns/formatDistanceToNow")
external formatDistanceToNowOpt: (Js.Date.t, formatDistanceToNowOptions) => string = "default"

@module("date-fns/formatISO")
external formatISO: Js.Date.t => string = "default"
type formatISOOptions = {
format: option<string>,
representation: option<string>,
format?: string,
representation?: string,
}

@module("date-fns/formatISO")
Expand All @@ -69,15 +69,15 @@ external formatISOOpt: (Js.Date.t, formatISOOptions) => string = "default"
@module("date-fns/formatISO9075")
external formatISO9075: Js.Date.t => string = "default"
type formatISO9075Options = {
format: option<string>,
representation: option<string>,
format?: string,
representation?: string,
}

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

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

@module("date-fns/formatRFC3339")
external formatRFC3339Options: (Js.Date.t, formatRFC3339Options) => string = "default"
Expand All @@ -87,8 +87,8 @@ external formatRFC3339Options: (Js.Date.t, formatRFC3339Options) => string = "de
@module("date-fns/formatRelative")
external formatRelative: (Js.Date.t, Js.Date.t) => string = "default"
type formatRelativeOptions = {
locale: option<locale>,
weekStartsOn: option<int>,
locale?: locale,
weekStartsOn?: int,
}
@module("date-fns/formatRelative")
external formatRelativeOpt: (Js.Date.t, Js.Date.t, formatRelativeOptions) => string = "default"
Expand All @@ -106,30 +106,30 @@ external formatRelativeOpt: (Js.Date.t, Js.Date.t, formatRelativeOptions) => str
@module("date-fns/parse") external parse: (string, string, Js.Date.t) => Js.Date.t = "default"

type parseOptions = {
locale: option<locale>,
weekStartsOn: option<int>,
firstWeekContainsDate: option<int>,
useAdditionalWeekYearTokens: option<bool>,
useAdditionalDayOfYearTokens: option<bool>,
locale?: locale,
weekStartsOn?: int,
firstWeekContainsDate?: int,
useAdditionalWeekYearTokens?: bool,
useAdditionalDayOfYearTokens?: bool,
}

@module("date-fns/parse")
external parseOpt: (string, string, Js.Date.t, parseOptions) => Js.Date.t = "default"
@module("date-fns/parseISO") external parseISO: string => Js.Date.t = "default"
type parseISOOptions = {additionalDigits: option<int>}
type parseISOOptions = {additionalDigits?: int}
@module("date-fns/parseISO")
external parseISOOpt: (string, parseISOOptions) => Js.Date.t = "default"
@module("date-fns/parseJSON") external parseJSONString: string => Js.Date.t = "default"
@module("date-fns/parseJSON") external parseJSONFloat: float => Js.Date.t = "default"
@module("date-fns/parseJSON") external parseJSONInt: int => Js.Date.t = "default"
type setOptions = {
year: option<int>,
month: option<int>,
date: option<int>,
hours: option<int>,
minutes: option<int>,
seconds: option<int>,
milliseconds: option<int>,
year?: int,
month?: int,
date?: int,
hours?: int,
minutes?: int,
seconds?: int,
milliseconds?: int,
}
@module("date-fns/set") external set: (Js.Date.t, setOptions) => Js.Date.t = "default"
@module("date-fns/toDate") external toDateFloat: float => Js.Date.t = "default"
Expand All @@ -143,15 +143,15 @@ external areIntervalsOverlapping: (interval, interval) => bool = "default"
@module("date-fns/eachDayOfInterval")
external eachDayOfInterval: interval => array<Js.Date.t> = "default"

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

@module("date-fns/eachWeekOfInterval")
external eachWeekOfInterval: interval => array<Js.Date.t> = "default"
type eachWeekOfIntervalOptions = {
locale: option<locale>,
weekStartsOn: option<int>,
locale?: locale,
weekStartsOn?: int,
}
@module("date-fns/eachWeekOfInterval")
external eachWeekOfIntervalOpt: (interval, eachWeekOfIntervalOptions) => array<Js.Date.t> =
Expand Down Expand Up @@ -227,7 +227,7 @@ external differenceInMinutesf: (Js.Date.t, Js.Date.t) => float = "default"

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

@module("date-fns/roundToNearestMinutes")
external roundToNearestMinutesOpt: (Js.Date.t, roundToNearestMinutesOptions) => Js.Date.t =
Expand Down Expand Up @@ -317,8 +317,8 @@ external subBusinessDaysf: (Js.Date.t, float) => Js.Date.t = "default"
@module("date-fns/setDay") external setDay: (Js.Date.t, int) => Js.Date.t = "default"
@module("date-fns/setDay") external setDayf: (Js.Date.t, float) => Js.Date.t = "default"
type setDayOptions = {
locale: option<locale>,
weekStartsOn: option<int>,
locale?: locale,
weekStartsOn?: int,
}
@module("date-fns/setDay")
external setDayOpt: (Js.Date.t, int, setDayOptions) => Js.Date.t = "default"
Expand All @@ -329,8 +329,8 @@ external setDayOptf: (Js.Date.t, float, setDayOptions) => Js.Date.t = "default"

// Week Helpers
type weekOptions = {
locale: option<locale>,
weekStartsOn: option<int>,
locale?: locale,
weekStartsOn?: int,
}
@module("date-fns/addWeeks") external addWeeks: (Js.Date.t, int) => Js.Date.t = "default"
@module("date-fns/addWeeks") external addWeeksf: (Js.Date.t, float) => Js.Date.t = "default"
Expand Down Expand Up @@ -358,9 +358,9 @@ external endOfWeekOpt: (Js.Date.t, weekOptions) => Js.Date.t = "default"
@module("date-fns/getWeek") external getWeek: Js.Date.t => int = "default"
@module("date-fns/getWeek") external getWeekf: Js.Date.t => float = "default"
type getWeekOptions = {
locale: option<locale>,
weekStartsOn: option<int>,
firstWeekContainsDate: option<int>,
locale?: locale,
weekStartsOn?: int,
firstWeekContainsDate?: int,
}
@module("date-fns/getWeek") external getWeekOpt: (Js.Date.t, getWeekOptions) => int = "default"
@module("date-fns/getWeek") external getWeekOptf: (Js.Date.t, getWeekOptions) => float = "default"
Expand Down Expand Up @@ -392,9 +392,9 @@ external isSameWeekOpt: (Js.Date.t, Js.Date.t, weekOptions) => bool = "default"
@module("date-fns/setWeek") external setWeek: (Js.Date.t, int) => Js.Date.t = "default"
@module("date-fns/setWeek") external setWeekf: (Js.Date.t, float) => Js.Date.t = "default"
type setWeekOptions = {
locale: option<locale>,
weekStartsOn: option<int>,
firstWeekContainsDate: option<int>,
locale?: locale,
weekStartsOn?: int,
firstWeekContainsDate?: int,
}
@module("date-fns/setWeek")
external setWeekOpt: (Js.Date.t, int, setWeekOptions) => Js.Date.t = "default"
Expand Down Expand Up @@ -468,7 +468,7 @@ external differenceInQuartersf: (Js.Date.t, Js.Date.t) => float = "default"
@module("date-fns/isSameQuarter") external isSameQuarter: (Js.Date.t, Js.Date.t) => bool = "default"
@module("date-fns/isThisQuarter") external isThisQuarter: Js.Date.t => bool = "default"
@module("date-fns/lastDayOfQuarter") external lastDayOfQuarter: Js.Date.t => Js.Date.t = "default"
type lastDayOfQuarterOptions = {additionalDigits: option<int>}
type lastDayOfQuarterOptions = {additionalDigits?: int}

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

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

// Week-Numbering Year Helpers
type weekYearOptions = {
locale: option<locale>,
weekStartsOn: option<int>,
firstWeekContainsDate: option<int>,
locale?: locale,
weekStartsOn?: int,
firstWeekContainsDate?: int,
}
@module("date-fns/getWeekYear") external getWeekYear: Js.Date.t => int = "default"
@module("date-fns/getWeekYear")
Expand Down
19 changes: 19 additions & 0 deletions packages/rescript-date-fns/test/bindingTest.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@


import * as Caml_option from "rescript/lib/es6/caml_option.js";
import Format from "date-fns/format";
import FormatISO from "date-fns/formatISO";
import Ko from "date-fns/locale/ko";

console.log(FormatISO(new Date()));

var date = new Date(2020, 1, 1);

console.log(Format(date, "yyyy년 M월 d일 (E)", {
locale: Caml_option.some(Ko)
}));

export {
date ,
}
/* Not a pure module */
12 changes: 12 additions & 0 deletions packages/rescript-date-fns/test/bindingTest.res
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Js.log(Js.Date.make()->DateFns.formatISO)

let date = Js.Date.makeWithYMD(~year=2020., ~month=1., ~date=1., ())

date
->DateFns.formatOpt(
"yyyy년 M월 d일 (E)",
{
locale: DateFns.Locale.ko,
},
)
->Js.log
Loading

0 comments on commit d267845

Please sign in to comment.