diff --git a/src/GreenfinityNext.res b/src/GreenfinityNext.res index cb156aa..8f90c98 100644 --- a/src/GreenfinityNext.res +++ b/src/GreenfinityNext.res @@ -13,3 +13,4 @@ module Url = GreenfinityNext_Url module NextServer = GreenfinityNext_NextServer module Font = GreenfinityNext_Font module Cache = GreenfinityNext_Cache +module Cookies = GreenfinityNext_Cookies diff --git a/src/GreenfinityNext_Cookies.res b/src/GreenfinityNext_Cookies.res new file mode 100644 index 0000000..12970c2 --- /dev/null +++ b/src/GreenfinityNext_Cookies.res @@ -0,0 +1,29 @@ +type cookieOptions = { + name?: string, + value?: string, + path?: string, + maxAge?: int, + expires?: Date.t, + httpOnly?: bool, + secure?: bool, + sameSite?: [#strict | #lax | #none], +} + +type cookie = { + name: string, + value: string, +} + +type t + +@module("next/headers") external make: unit => promise = "cookies" + +@send @returns(nullable) external get: (t, string) => option = "get" + +@send external getAll: t => array = "getAll" + +@send external has: (t, string) => bool = "has" + +@send external set: (t, string, string, ~options: cookieOptions=?) => unit = "set" + +@send external delete: (t, string) => unit = "delete" diff --git a/src/GreenfinityNext_Next.res b/src/GreenfinityNext_Next.res index 4af63a3..4440cf5 100644 --- a/src/GreenfinityNext_Next.res +++ b/src/GreenfinityNext_Next.res @@ -315,7 +315,7 @@ module Image = { module Headers = { type t - @deprecated("Use makePromise instead and await the result.") @new @module("next/headers") + @deprecated("Use makeAsync instead and await the result.") @new @module("next/headers") external make: unit => t = "headers" @new @module("next/headers") external makeAsync: unit => promise = "headers" diff --git a/src/GreenfinityNext_NextServer.res b/src/GreenfinityNext_NextServer.res index 53e2247..5c371dd 100644 --- a/src/GreenfinityNext_NextServer.res +++ b/src/GreenfinityNext_NextServer.res @@ -3,15 +3,8 @@ // -- module NextRequest = { - module Cookies = { - type t - @send external set: (t, string, string) => unit = "set" - @send external get: (t, string) => string = "get" - @send external getAll: t => dict = "getAll" - @send external delete: (t, string) => unit = "delete" - @send external has: (t, string) => bool = "has" - @send external clear: t => unit = "clear" - } + @deprecated("Use GreenfinityNext.Cookies instead") + module Cookies = GreenfinityNext_Cookies module URL = { type t = { @@ -36,7 +29,7 @@ module NextRequest = { type t = { headers: GreenfinityNext_Fetch.Headers.t, nextUrl: URL.t, - cookies: Cookies.t, + cookies: GreenfinityNext_Cookies.t, } @send external json: t => promise = "json"