@effect/platform 0.48.16 → 0.48.17

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.
Files changed (102) hide show
  1. package/dist/cjs/Http/Client.js.map +1 -1
  2. package/dist/cjs/Http/ClientRequest.js.map +1 -1
  3. package/dist/cjs/Http/ClientResponse.js.map +1 -1
  4. package/dist/cjs/Http/Cookies.js +50 -27
  5. package/dist/cjs/Http/Cookies.js.map +1 -1
  6. package/dist/cjs/Http/IncomingMessage.js +12 -16
  7. package/dist/cjs/Http/IncomingMessage.js.map +1 -1
  8. package/dist/cjs/Http/Multipart.js.map +1 -1
  9. package/dist/cjs/Http/Router.js +11 -1
  10. package/dist/cjs/Http/Router.js.map +1 -1
  11. package/dist/cjs/Http/ServerRequest.js +6 -1
  12. package/dist/cjs/Http/ServerRequest.js.map +1 -1
  13. package/dist/cjs/Http/ServerResponse.js.map +1 -1
  14. package/dist/cjs/Http/UrlParams.js +2 -2
  15. package/dist/cjs/Http/UrlParams.js.map +1 -1
  16. package/dist/cjs/internal/http/body.js +2 -2
  17. package/dist/cjs/internal/http/body.js.map +1 -1
  18. package/dist/cjs/internal/http/client.js +4 -2
  19. package/dist/cjs/internal/http/client.js.map +1 -1
  20. package/dist/cjs/internal/http/clientRequest.js +2 -2
  21. package/dist/cjs/internal/http/clientRequest.js.map +1 -1
  22. package/dist/cjs/internal/http/clientResponse.js +8 -8
  23. package/dist/cjs/internal/http/clientResponse.js.map +1 -1
  24. package/dist/cjs/internal/http/multipart.js +4 -4
  25. package/dist/cjs/internal/http/multipart.js.map +1 -1
  26. package/dist/cjs/internal/http/router.js +34 -7
  27. package/dist/cjs/internal/http/router.js.map +1 -1
  28. package/dist/cjs/internal/http/serverRequest.js +22 -15
  29. package/dist/cjs/internal/http/serverRequest.js.map +1 -1
  30. package/dist/cjs/internal/http/serverResponse.js +19 -11
  31. package/dist/cjs/internal/http/serverResponse.js.map +1 -1
  32. package/dist/dts/Http/Client.d.ts +3 -2
  33. package/dist/dts/Http/Client.d.ts.map +1 -1
  34. package/dist/dts/Http/ClientRequest.d.ts +2 -1
  35. package/dist/dts/Http/ClientRequest.d.ts.map +1 -1
  36. package/dist/dts/Http/ClientResponse.d.ts +5 -4
  37. package/dist/dts/Http/ClientResponse.d.ts.map +1 -1
  38. package/dist/dts/Http/Cookies.d.ts +15 -7
  39. package/dist/dts/Http/Cookies.d.ts.map +1 -1
  40. package/dist/dts/Http/IncomingMessage.d.ts +7 -6
  41. package/dist/dts/Http/IncomingMessage.d.ts.map +1 -1
  42. package/dist/dts/Http/Multipart.d.ts +3 -2
  43. package/dist/dts/Http/Multipart.d.ts.map +1 -1
  44. package/dist/dts/Http/Router.d.ts +29 -3
  45. package/dist/dts/Http/Router.d.ts.map +1 -1
  46. package/dist/dts/Http/ServerRequest.d.ts +12 -6
  47. package/dist/dts/Http/ServerRequest.d.ts.map +1 -1
  48. package/dist/dts/Http/ServerResponse.d.ts +14 -13
  49. package/dist/dts/Http/ServerResponse.d.ts.map +1 -1
  50. package/dist/dts/Http/UrlParams.d.ts +2 -1
  51. package/dist/dts/Http/UrlParams.d.ts.map +1 -1
  52. package/dist/dts/internal/http/router.d.ts.map +1 -1
  53. package/dist/esm/Http/Client.js.map +1 -1
  54. package/dist/esm/Http/ClientRequest.js.map +1 -1
  55. package/dist/esm/Http/ClientResponse.js.map +1 -1
  56. package/dist/esm/Http/Cookies.js +47 -25
  57. package/dist/esm/Http/Cookies.js.map +1 -1
  58. package/dist/esm/Http/IncomingMessage.js +12 -15
  59. package/dist/esm/Http/IncomingMessage.js.map +1 -1
  60. package/dist/esm/Http/Multipart.js.map +1 -1
  61. package/dist/esm/Http/Router.js +10 -0
  62. package/dist/esm/Http/Router.js.map +1 -1
  63. package/dist/esm/Http/ServerRequest.js +5 -0
  64. package/dist/esm/Http/ServerRequest.js.map +1 -1
  65. package/dist/esm/Http/ServerResponse.js.map +1 -1
  66. package/dist/esm/Http/UrlParams.js +2 -2
  67. package/dist/esm/Http/UrlParams.js.map +1 -1
  68. package/dist/esm/internal/http/body.js +2 -2
  69. package/dist/esm/internal/http/body.js.map +1 -1
  70. package/dist/esm/internal/http/client.js +4 -2
  71. package/dist/esm/internal/http/client.js.map +1 -1
  72. package/dist/esm/internal/http/clientRequest.js +2 -2
  73. package/dist/esm/internal/http/clientRequest.js.map +1 -1
  74. package/dist/esm/internal/http/clientResponse.js +8 -8
  75. package/dist/esm/internal/http/clientResponse.js.map +1 -1
  76. package/dist/esm/internal/http/multipart.js +4 -4
  77. package/dist/esm/internal/http/multipart.js.map +1 -1
  78. package/dist/esm/internal/http/router.js +31 -6
  79. package/dist/esm/internal/http/router.js.map +1 -1
  80. package/dist/esm/internal/http/serverRequest.js +20 -14
  81. package/dist/esm/internal/http/serverRequest.js.map +1 -1
  82. package/dist/esm/internal/http/serverResponse.js +19 -11
  83. package/dist/esm/internal/http/serverResponse.js.map +1 -1
  84. package/package.json +3 -3
  85. package/src/Http/Client.ts +5 -2
  86. package/src/Http/ClientRequest.ts +3 -1
  87. package/src/Http/ClientResponse.ts +16 -7
  88. package/src/Http/Cookies.ts +60 -37
  89. package/src/Http/IncomingMessage.ts +17 -12
  90. package/src/Http/Multipart.ts +5 -2
  91. package/src/Http/Router.ts +50 -3
  92. package/src/Http/ServerRequest.ts +23 -7
  93. package/src/Http/ServerResponse.ts +19 -13
  94. package/src/Http/UrlParams.ts +3 -2
  95. package/src/internal/http/body.ts +3 -2
  96. package/src/internal/http/client.ts +10 -5
  97. package/src/internal/http/clientRequest.ts +3 -2
  98. package/src/internal/http/clientResponse.ts +9 -8
  99. package/src/internal/http/multipart.ts +7 -4
  100. package/src/internal/http/router.ts +80 -6
  101. package/src/internal/http/serverRequest.ts +31 -15
  102. package/src/internal/http/serverResponse.ts +32 -22
@@ -55,6 +55,7 @@ class ServerResponseImpl extends Effectable.StructuralClass {
55
55
  status: this.status,
56
56
  statusText: this.statusText,
57
57
  headers: this.headers,
58
+ cookies: this.cookies.toJSON(),
58
59
  body: this.body.toJSON()
59
60
  };
60
61
  }
@@ -87,8 +88,8 @@ export const json = (body, options) => Effect.map(internalBody.json(body), body
87
88
  /** @internal */
88
89
  export const unsafeJson = (body, options) => new ServerResponseImpl(options?.status ?? 200, options?.statusText, options?.headers ?? Headers.empty, options?.cookies ?? Cookies.empty, internalBody.unsafeJson(body));
89
90
  /** @internal */
90
- export const schemaJson = schema => {
91
- const encode = internalBody.jsonSchema(schema);
91
+ export const schemaJson = (schema, options) => {
92
+ const encode = internalBody.jsonSchema(schema, options);
92
93
  return (body, options) => Effect.map(encode(body), body => new ServerResponseImpl(options?.status ?? 200, options?.statusText, options?.headers ?? Headers.empty, options?.cookies ?? Cookies.empty, body));
93
94
  };
94
95
  /** @internal */
@@ -118,15 +119,15 @@ export const setHeader = /*#__PURE__*/dual(3, (self, key, value) => new ServerRe
118
119
  /** @internal */
119
120
  export const replaceCookies = /*#__PURE__*/dual(2, (self, cookies) => new ServerResponseImpl(self.status, self.statusText, self.headers, cookies, self.body));
120
121
  /** @internal */
121
- export const setCookie = /*#__PURE__*/dual(args => Cookies.isCookies(args[0]), (self, name, value, options) => Effect.map(Cookies.add(self.cookies, name, value, options), cookies => new ServerResponseImpl(self.status, self.statusText, self.headers, cookies, self.body)));
122
+ export const setCookie = /*#__PURE__*/dual(args => Cookies.isCookies(args[0]), (self, name, value, options) => Effect.map(Cookies.set(self.cookies, name, value, options), cookies => new ServerResponseImpl(self.status, self.statusText, self.headers, cookies, self.body)));
122
123
  /** @internal */
123
- export const unsafeSetCookie = /*#__PURE__*/dual(args => Cookies.isCookies(args[0]), (self, name, value, options) => new ServerResponseImpl(self.status, self.statusText, self.headers, Cookies.unsafeAdd(self.cookies, name, value, options), self.body));
124
+ export const unsafeSetCookie = /*#__PURE__*/dual(args => Cookies.isCookies(args[0]), (self, name, value, options) => new ServerResponseImpl(self.status, self.statusText, self.headers, Cookies.unsafeSet(self.cookies, name, value, options), self.body));
124
125
  /** @internal */
125
126
  export const updateCookies = /*#__PURE__*/dual(2, (self, f) => new ServerResponseImpl(self.status, self.statusText, self.headers, f(self.cookies), self.body));
126
127
  /** @internal */
127
- export const setCookies = /*#__PURE__*/dual(2, (self, cookies) => Effect.map(Cookies.addAll(self.cookies, cookies), cookies => new ServerResponseImpl(self.status, self.statusText, self.headers, cookies, self.body)));
128
+ export const setCookies = /*#__PURE__*/dual(2, (self, cookies) => Effect.map(Cookies.setAll(self.cookies, cookies), cookies => new ServerResponseImpl(self.status, self.statusText, self.headers, cookies, self.body)));
128
129
  /** @internal */
129
- export const unsafeSetCookies = /*#__PURE__*/dual(2, (self, cookies) => new ServerResponseImpl(self.status, self.statusText, self.headers, Cookies.unsafeAddAll(self.cookies, cookies), self.body));
130
+ export const unsafeSetCookies = /*#__PURE__*/dual(2, (self, cookies) => new ServerResponseImpl(self.status, self.statusText, self.headers, Cookies.unsafeSetAll(self.cookies, cookies), self.body));
130
131
  /** @internal */
131
132
  export const removeCookie = /*#__PURE__*/dual(2, (self, name) => new ServerResponseImpl(self.status, self.statusText, self.headers, Cookies.remove(self.cookies, name), self.body));
132
133
  /** @internal */
@@ -143,11 +144,18 @@ export const setBody = /*#__PURE__*/dual(2, (self, body) => {
143
144
  });
144
145
  /** @internal */
145
146
  export const toWeb = (response, withoutBody = false) => {
147
+ const headers = new globalThis.Headers(response.headers);
148
+ if (!Cookies.isEmpty(response.cookies)) {
149
+ const toAdd = Cookies.toSetCookieHeaders(response.cookies);
150
+ for (const header of toAdd) {
151
+ headers.append("set-cookie", header);
152
+ }
153
+ }
146
154
  if (withoutBody) {
147
155
  return new Response(undefined, {
148
156
  status: response.status,
149
157
  statusText: response.statusText,
150
- headers: response.headers
158
+ headers
151
159
  });
152
160
  }
153
161
  const body = response.body;
@@ -157,7 +165,7 @@ export const toWeb = (response, withoutBody = false) => {
157
165
  return new Response(undefined, {
158
166
  status: response.status,
159
167
  statusText: response.statusText,
160
- headers: response.headers
168
+ headers
161
169
  });
162
170
  }
163
171
  case "Uint8Array":
@@ -166,7 +174,7 @@ export const toWeb = (response, withoutBody = false) => {
166
174
  return new Response(body.body, {
167
175
  status: response.status,
168
176
  statusText: response.statusText,
169
- headers: response.headers
177
+ headers
170
178
  });
171
179
  }
172
180
  case "FormData":
@@ -174,7 +182,7 @@ export const toWeb = (response, withoutBody = false) => {
174
182
  return new Response(body.formData, {
175
183
  status: response.status,
176
184
  statusText: response.statusText,
177
- headers: response.headers
185
+ headers
178
186
  });
179
187
  }
180
188
  case "Stream":
@@ -182,7 +190,7 @@ export const toWeb = (response, withoutBody = false) => {
182
190
  return new Response(Stream.toReadableStream(body.stream), {
183
191
  status: response.status,
184
192
  statusText: response.statusText,
185
- headers: response.headers
193
+ headers
186
194
  });
187
195
  }
188
196
  }
@@ -1 +1 @@
1
- {"version":3,"file":"serverResponse.js","names":["Effect","Effectable","dual","Inspectable","Stream","Cookies","Headers","Platform","UrlParams","Template","internalBody","TypeId","Symbol","for","ServerResponseImpl","StructuralClass","status","statusText","cookies","body","headers","constructor","contentType","contentLength","newHeaders","toString","commit","succeed","NodeInspectSymbol","toJSON","format","_id","isServerResponse","u","empty","options","uint8Array","getContentType","text","html","strings","args","map","make","_","htmlStream","context","stream","provideContext","encodeText","json","unsafeJson","schemaJson","schema","encode","jsonSchema","file","path","flatMap","platform","fileResponse","fileWeb","fileWebResponse","urlParams","fromInput","raw","formData","setHeader","self","key","value","set","replaceCookies","setCookie","isCookies","name","add","unsafeSetCookie","unsafeAdd","updateCookies","f","setCookies","addAll","unsafeSetCookies","unsafeAddAll","removeCookie","remove","setHeaders","input","setAll","setStatus","setBody","_tag","toWeb","response","withoutBody","Response","undefined","toReadableStream"],"sources":["../../../../src/internal/http/serverResponse.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"serverResponse.js","names":["Effect","Effectable","dual","Inspectable","Stream","Cookies","Headers","Platform","UrlParams","Template","internalBody","TypeId","Symbol","for","ServerResponseImpl","StructuralClass","status","statusText","cookies","body","headers","constructor","contentType","contentLength","newHeaders","toString","commit","succeed","NodeInspectSymbol","toJSON","format","_id","isServerResponse","u","empty","options","uint8Array","getContentType","text","html","strings","args","map","make","_","htmlStream","context","stream","provideContext","encodeText","json","unsafeJson","schemaJson","schema","encode","jsonSchema","file","path","flatMap","platform","fileResponse","fileWeb","fileWebResponse","urlParams","fromInput","raw","formData","setHeader","self","key","value","set","replaceCookies","setCookie","isCookies","name","unsafeSetCookie","unsafeSet","updateCookies","f","setCookies","setAll","unsafeSetCookies","unsafeSetAll","removeCookie","remove","setHeaders","input","setStatus","setBody","_tag","toWeb","response","withoutBody","globalThis","isEmpty","toAdd","toSetCookieHeaders","header","append","Response","undefined","toReadableStream"],"sources":["../../../../src/internal/http/serverResponse.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.48.16",
3
+ "version": "0.48.17",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -16,8 +16,8 @@
16
16
  "path-browserify": "^1.0.1"
17
17
  },
18
18
  "peerDependencies": {
19
- "@effect/schema": "^0.64.12",
20
- "effect": "^2.4.12"
19
+ "@effect/schema": "^0.64.13",
20
+ "effect": "^2.4.13"
21
21
  },
22
22
  "main": "./dist/cjs/index.js",
23
23
  "module": "./dist/esm/index.js",
@@ -2,6 +2,7 @@
2
2
  * @since 1.0.0
3
3
  */
4
4
  import type { Cookies } from "@effect/platform/Http/Cookies"
5
+ import type { ParseOptions } from "@effect/schema/AST"
5
6
  import type * as ParseResult from "@effect/schema/ParseResult"
6
7
  import type * as Schema from "@effect/schema/Schema"
7
8
  import type * as Context from "effect/Context"
@@ -384,7 +385,8 @@ export const scoped: <R, E, A>(self: Client<R, E, A>) => Client<Exclude<R, Scope
384
385
  */
385
386
  export const schemaFunction: {
386
387
  <SA, SI, SR>(
387
- schema: Schema.Schema<SA, SI, SR>
388
+ schema: Schema.Schema<SA, SI, SR>,
389
+ options?: ParseOptions | undefined
388
390
  ): <R, E, A>(
389
391
  self: Client<R, E, A>
390
392
  ) => (
@@ -392,7 +394,8 @@ export const schemaFunction: {
392
394
  ) => (a: SA) => Effect.Effect<A, E | ParseResult.ParseError | Error.RequestError, SR | R>
393
395
  <R, E, A, SA, SI, SR>(
394
396
  self: Client<R, E, A>,
395
- schema: Schema.Schema<SA, SI, SR>
397
+ schema: Schema.Schema<SA, SI, SR>,
398
+ options?: ParseOptions | undefined
396
399
  ): (
397
400
  request: ClientRequest.ClientRequest
398
401
  ) => (a: SA) => Effect.Effect<A, ParseResult.ParseError | Error.RequestError | E, R | SR>
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
+ import type { ParseOptions } from "@effect/schema/AST"
4
5
  import type * as Schema from "@effect/schema/Schema"
5
6
  import type * as Effect from "effect/Effect"
6
7
  import type { Inspectable } from "effect/Inspectable"
@@ -302,7 +303,8 @@ export const unsafeJsonBody: {
302
303
  * @category combinators
303
304
  */
304
305
  export const schemaBody: <A, I, R>(
305
- schema: Schema.Schema<A, I, R>
306
+ schema: Schema.Schema<A, I, R>,
307
+ options?: ParseOptions | undefined
306
308
  ) => {
307
309
  (body: A): (self: ClientRequest) => Effect.Effect<ClientRequest, Body.BodyError, R>
308
310
  (self: ClientRequest, body: A): Effect.Effect<ClientRequest, Body.BodyError, R>
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
+ import type { ParseOptions } from "@effect/schema/AST"
4
5
  import type * as ParseResult from "@effect/schema/ParseResult"
5
6
  import type * as Schema from "@effect/schema/Schema"
6
7
  import type * as Effect from "effect/Effect"
@@ -88,7 +89,8 @@ export const schemaJson: <
88
89
  },
89
90
  A
90
91
  >(
91
- schema: Schema.Schema<A, I, R>
92
+ schema: Schema.Schema<A, I, R>,
93
+ options?: ParseOptions | undefined
92
94
  ) => (self: ClientResponse) => Effect.Effect<A, Error.ResponseError | ParseResult.ParseError, R> = internal.schemaJson
93
95
 
94
96
  /**
@@ -102,8 +104,10 @@ export const schemaNoBody: <
102
104
  readonly headers?: Readonly<Record<string, string>> | undefined
103
105
  },
104
106
  A
105
- >(schema: Schema.Schema<A, I, R>) => (self: ClientResponse) => Effect.Effect<A, ParseResult.ParseError, R> =
106
- internal.schemaNoBody
107
+ >(
108
+ schema: Schema.Schema<A, I, R>,
109
+ options?: ParseOptions | undefined
110
+ ) => (self: ClientResponse) => Effect.Effect<A, ParseResult.ParseError, R> = internal.schemaNoBody
107
111
 
108
112
  /**
109
113
  * @since 1.0.0
@@ -166,12 +170,13 @@ export const schemaJsonEffect: <
166
170
  },
167
171
  A
168
172
  >(
169
- schema: Schema.Schema<A, I, R>
173
+ schema: Schema.Schema<A, I, R>,
174
+ options?: ParseOptions | undefined
170
175
  ) => <E, R2>(
171
176
  effect: Effect.Effect<ClientResponse, E, R2>
172
177
  ) => Effect.Effect<
173
178
  A,
174
- Error.ResponseError | E | ParseResult.ParseError,
179
+ E | Error.ResponseError | ParseResult.ParseError,
175
180
  Exclude<R, Scope.Scope> | Exclude<R2, Scope.Scope>
176
181
  > = internal.schemaJsonEffect
177
182
 
@@ -181,10 +186,14 @@ export const schemaJsonEffect: <
181
186
  */
182
187
  export const schemaNoBodyEffect: <
183
188
  R,
184
- I extends { readonly status?: number | undefined; readonly headers?: Readonly<Record<string, string>> | undefined },
189
+ I extends {
190
+ readonly status?: number | undefined
191
+ readonly headers?: Readonly<Record<string, string>> | undefined
192
+ },
185
193
  A
186
194
  >(
187
- schema: Schema.Schema<A, I, R>
195
+ schema: Schema.Schema<A, I, R>,
196
+ options?: ParseOptions | undefined
188
197
  ) => <E, R2>(
189
198
  effect: Effect.Effect<ClientResponse, E, R2>
190
199
  ) => Effect.Effect<A, E | ParseResult.ParseError, Exclude<R, Scope.Scope> | Exclude<R2, Scope.Scope>> =
@@ -8,7 +8,7 @@ import * as Inspectable from "effect/Inspectable"
8
8
  import * as Option from "effect/Option"
9
9
  import { type Pipeable, pipeArguments } from "effect/Pipeable"
10
10
  import * as Predicate from "effect/Predicate"
11
- import * as ReadonlyArray from "effect/ReadonlyArray"
11
+ import * as ReadonlyRecord from "effect/ReadonlyRecord"
12
12
  import type * as Types from "effect/Types"
13
13
  import { TypeIdError } from "../Error.js"
14
14
 
@@ -36,7 +36,7 @@ export const isCookies = (u: unknown): u is Cookies => Predicate.hasProperty(u,
36
36
  */
37
37
  export interface Cookies extends Pipeable, Inspectable.Inspectable {
38
38
  readonly [TypeId]: TypeId
39
- readonly cookies: ReadonlyArray<Cookie>
39
+ readonly cookies: ReadonlyRecord.ReadonlyRecord<string, Cookie>
40
40
  }
41
41
 
42
42
  /**
@@ -103,7 +103,7 @@ const Proto: Omit<Cookies, "cookies"> = {
103
103
  toJSON(this: Cookies) {
104
104
  return {
105
105
  _id: "@effect/platform/Http/Cookies",
106
- cookies: this.cookies.map((cookie) => cookie.toJSON())
106
+ cookies: ReadonlyRecord.map(this.cookies, (cookie) => cookie.toJSON())
107
107
  }
108
108
  },
109
109
  pipe() {
@@ -117,12 +117,26 @@ const Proto: Omit<Cookies, "cookies"> = {
117
117
  * @since 1.0.0
118
118
  * @category constructors
119
119
  */
120
- export const fromIterable = (cookies: Iterable<Cookie>): Cookies => {
120
+ export const fromReadonlyRecord = (cookies: ReadonlyRecord.ReadonlyRecord<string, Cookie>): Cookies => {
121
121
  const self = Object.create(Proto)
122
- self.cookies = ReadonlyArray.fromIterable(cookies)
122
+ self.cookies = cookies
123
123
  return self
124
124
  }
125
125
 
126
+ /**
127
+ * Create a Cookies object from an Iterable
128
+ *
129
+ * @since 1.0.0
130
+ * @category constructors
131
+ */
132
+ export const fromIterable = (cookies: Iterable<Cookie>): Cookies => {
133
+ const record: Record<string, Cookie> = {}
134
+ for (const cookie of cookies) {
135
+ record[cookie.name] = cookie
136
+ }
137
+ return fromReadonlyRecord(record)
138
+ }
139
+
126
140
  /**
127
141
  * Create a Cookies object from a set of Set-Cookie headers
128
142
  *
@@ -285,7 +299,7 @@ export const empty: Cookies = fromIterable([])
285
299
  * @since 1.0.0
286
300
  * @category refinements
287
301
  */
288
- export const isEmpty = (self: Cookies): boolean => self.cookies.length === 0
302
+ export const isEmpty = (self: Cookies): boolean => ReadonlyRecord.isEmptyRecord(self.cookies)
289
303
 
290
304
  // eslint-disable-next-line no-control-regex
291
305
  const fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/
@@ -362,7 +376,7 @@ export const unsafeMakeCookie = (
362
376
  * @since 1.0.0
363
377
  * @category combinators
364
378
  */
365
- export const append: {
379
+ export const setCookie: {
366
380
  (cookie: Cookie): (self: Cookies) => Cookies
367
381
  (
368
382
  self: Cookies,
@@ -370,7 +384,12 @@ export const append: {
370
384
  ): Cookies
371
385
  } = dual(
372
386
  2,
373
- (self: Cookies, cookie: Cookie) => fromIterable([...self.cookies, cookie])
387
+ (self: Cookies, cookie: Cookie) =>
388
+ fromReadonlyRecord(ReadonlyRecord.set(
389
+ self.cookies,
390
+ cookie.name,
391
+ cookie
392
+ ))
374
393
  )
375
394
 
376
395
  /**
@@ -379,16 +398,19 @@ export const append: {
379
398
  * @since 1.0.0
380
399
  * @category combinators
381
400
  */
382
- export const appendAll: {
401
+ export const setAllCookie: {
383
402
  (cookies: Iterable<Cookie>): (self: Cookies) => Cookies
384
403
  (
385
404
  self: Cookies,
386
405
  cookies: Iterable<Cookie>
387
406
  ): Cookies
388
- } = dual(2, (self: Cookies, cookies: Iterable<Cookie>) =>
389
- fromIterable(
390
- ReadonlyArray.appendAll(self.cookies, cookies)
391
- ))
407
+ } = dual(2, (self: Cookies, cookies: Iterable<Cookie>) => {
408
+ const record = { ...self.cookies }
409
+ for (const cookie of cookies) {
410
+ record[cookie.name] = cookie
411
+ }
412
+ return fromReadonlyRecord(record)
413
+ })
392
414
 
393
415
  /**
394
416
  * Combine two Cookies objects, removing duplicates from the first
@@ -402,12 +424,11 @@ export const merge: {
402
424
  self: Cookies,
403
425
  that: Cookies
404
426
  ): Cookies
405
- } = dual(2, (self: Cookies, that: Cookies) => {
406
- const cookies = self.cookies.filter((c) => !that.cookies.some((c2) => c2.name === c.name))
407
- // eslint-disable-next-line no-restricted-syntax
408
- cookies.push(...that.cookies)
409
- return fromIterable(cookies)
410
- })
427
+ } = dual(2, (self: Cookies, that: Cookies) =>
428
+ fromReadonlyRecord({
429
+ ...self.cookies,
430
+ ...that.cookies
431
+ }))
411
432
 
412
433
  /**
413
434
  * Remove a cookie by name
@@ -421,10 +442,7 @@ export const remove: {
421
442
  self: Cookies,
422
443
  name: string
423
444
  ): Cookies
424
- } = dual(2, (self: Cookies, cookie: Cookie) =>
425
- fromIterable(
426
- self.cookies.filter((c) => c.name !== cookie.name)
427
- ))
445
+ } = dual(2, (self: Cookies, name: string) => fromReadonlyRecord(ReadonlyRecord.remove(self.cookies, name)))
428
446
 
429
447
  /**
430
448
  * Add a cookie to a Cookies object
@@ -432,7 +450,7 @@ export const remove: {
432
450
  * @since 1.0.0
433
451
  * @category combinators
434
452
  */
435
- export const add: {
453
+ export const set: {
436
454
  (
437
455
  name: string,
438
456
  value: string,
@@ -449,7 +467,7 @@ export const add: {
449
467
  (self: Cookies, name: string, value: string, options?: Cookie["options"]) =>
450
468
  Either.map(
451
469
  makeCookie(name, value, options),
452
- (cookie) => fromIterable([...self.cookies, cookie])
470
+ (cookie) => fromReadonlyRecord(ReadonlyRecord.set(self.cookies, name, cookie))
453
471
  )
454
472
  )
455
473
 
@@ -459,7 +477,7 @@ export const add: {
459
477
  * @since 1.0.0
460
478
  * @category combinators
461
479
  */
462
- export const unsafeAdd: {
480
+ export const unsafeSet: {
463
481
  (
464
482
  name: string,
465
483
  value: string,
@@ -474,7 +492,11 @@ export const unsafeAdd: {
474
492
  } = dual(
475
493
  (args) => isCookies(args[0]),
476
494
  (self: Cookies, name: string, value: string, options?: Cookie["options"]) =>
477
- append(self, unsafeMakeCookie(name, value, options))
495
+ fromReadonlyRecord(ReadonlyRecord.set(
496
+ self.cookies,
497
+ name,
498
+ unsafeMakeCookie(name, value, options)
499
+ ))
478
500
  )
479
501
 
480
502
  /**
@@ -483,7 +505,7 @@ export const unsafeAdd: {
483
505
  * @since 1.0.0
484
506
  * @category combinators
485
507
  */
486
- export const addAll: {
508
+ export const setAll: {
487
509
  (
488
510
  cookies: Iterable<readonly [name: string, value: string, options?: Cookie["options"]]>
489
511
  ): (self: Cookies) => Either.Either<Cookies, CookiesError>
@@ -497,15 +519,15 @@ export const addAll: {
497
519
  self: Cookies,
498
520
  cookies: Iterable<readonly [name: string, value: string, options?: Cookie["options"]]>
499
521
  ): Either.Either<Cookies, CookiesError> => {
500
- const toAdd: Array<Cookie> = []
522
+ const record: Record<string, Cookie> = { ...self.cookies }
501
523
  for (const [name, value, options] of cookies) {
502
524
  const either = makeCookie(name, value, options)
503
525
  if (Either.isLeft(either)) {
504
526
  return either as Either.Left<CookiesError, never>
505
527
  }
506
- toAdd.push(either.right)
528
+ record[name] = either.right
507
529
  }
508
- return Either.right(appendAll(self, toAdd))
530
+ return Either.right(fromReadonlyRecord(record))
509
531
  }
510
532
  )
511
533
 
@@ -515,7 +537,7 @@ export const addAll: {
515
537
  * @since 1.0.0
516
538
  * @category combinators
517
539
  */
518
- export const unsafeAddAll: {
540
+ export const unsafeSetAll: {
519
541
  (
520
542
  cookies: Iterable<readonly [name: string, value: string, options?: Cookie["options"]]>
521
543
  ): (self: Cookies) => Cookies
@@ -528,7 +550,7 @@ export const unsafeAddAll: {
528
550
  (
529
551
  self: Cookies,
530
552
  cookies: Iterable<readonly [name: string, value: string, options?: Cookie["options"]]>
531
- ): Cookies => Either.getOrThrow(addAll(self, cookies))
553
+ ): Cookies => Either.getOrThrow(setAll(self, cookies))
532
554
  )
533
555
 
534
556
  /**
@@ -616,7 +638,7 @@ export function serializeCookie(self: Cookie): string {
616
638
  * @category encoding
617
639
  */
618
640
  export const toCookieHeader = (self: Cookies): string =>
619
- self.cookies.map((cookie) => `${cookie.name}=${cookie.valueEncoded}`).join("; ")
641
+ Object.values(self.cookies).map((cookie) => `${cookie.name}=${cookie.valueEncoded}`).join("; ")
620
642
 
621
643
  /**
622
644
  * To record
@@ -626,8 +648,9 @@ export const toCookieHeader = (self: Cookies): string =>
626
648
  */
627
649
  export const toRecord = (self: Cookies): Record<string, string> => {
628
650
  const record: Record<string, string> = {}
629
- for (let index = 0; index < self.cookies.length; index++) {
630
- const cookie = self.cookies[index]
651
+ const cookies = Object.values(self.cookies)
652
+ for (let index = 0; index < cookies.length; index++) {
653
+ const cookie = cookies[index]
631
654
  record[cookie.name] = cookie.value
632
655
  }
633
656
  return record
@@ -639,7 +662,7 @@ export const toRecord = (self: Cookies): Record<string, string> => {
639
662
  * @since 1.0.0
640
663
  * @category encoding
641
664
  */
642
- export const toSetCookieHeaders = (self: Cookies): Array<string> => self.cookies.map(serializeCookie)
665
+ export const toSetCookieHeaders = (self: Cookies): Array<string> => Object.values(self.cookies).map(serializeCookie)
643
666
 
644
667
  /**
645
668
  * Parse a cookie header into a record of key-value pairs
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
+ import type { ParseOptions } from "@effect/schema/AST"
4
5
  import * as ParseResult from "@effect/schema/ParseResult"
5
6
  import * as Schema from "@effect/schema/Schema"
6
7
  import * as Effect from "effect/Effect"
@@ -47,8 +48,8 @@ export interface IncomingMessage<E> extends Inspectable {
47
48
  * @since 1.0.0
48
49
  * @category schema
49
50
  */
50
- export const schemaBodyJson = <A, I, R>(schema: Schema.Schema<A, I, R>) => {
51
- const parse = Schema.decodeUnknown(schema)
51
+ export const schemaBodyJson = <A, I, R>(schema: Schema.Schema<A, I, R>, options?: ParseOptions | undefined) => {
52
+ const parse = Schema.decodeUnknown(schema, options)
52
53
  return <E>(self: IncomingMessage<E>): Effect.Effect<A, E | ParseResult.ParseError, R> =>
53
54
  Effect.flatMap(self.json, parse)
54
55
  }
@@ -57,8 +58,8 @@ export const schemaBodyJson = <A, I, R>(schema: Schema.Schema<A, I, R>) => {
57
58
  * @since 1.0.0
58
59
  * @category schema
59
60
  */
60
- export const schemaBodyJsonEffect = <A, I, R>(schema: Schema.Schema<A, I, R>) => {
61
- const decode = schemaBodyJson(schema)
61
+ export const schemaBodyJsonEffect = <A, I, R>(schema: Schema.Schema<A, I, R>, options?: ParseOptions | undefined) => {
62
+ const decode = schemaBodyJson(schema, options)
62
63
  return <E, E2, R2>(effect: Effect.Effect<IncomingMessage<E>, E2, R2>) => Effect.scoped(Effect.flatMap(effect, decode))
63
64
  }
64
65
 
@@ -67,9 +68,10 @@ export const schemaBodyJsonEffect = <A, I, R>(schema: Schema.Schema<A, I, R>) =>
67
68
  * @category schema
68
69
  */
69
70
  export const schemaBodyUrlParams = <R, I extends Readonly<Record<string, string>>, A>(
70
- schema: Schema.Schema<A, I, R>
71
+ schema: Schema.Schema<A, I, R>,
72
+ options?: ParseOptions | undefined
71
73
  ) => {
72
- const parse = Schema.decodeUnknown(schema)
74
+ const parse = Schema.decodeUnknown(schema, options)
73
75
  return <E>(self: IncomingMessage<E>): Effect.Effect<A, E | ParseResult.ParseError, R> =>
74
76
  Effect.flatMap(self.urlParamsBody, (_) => parse(Object.fromEntries(_)))
75
77
  }
@@ -79,9 +81,10 @@ export const schemaBodyUrlParams = <R, I extends Readonly<Record<string, string>
79
81
  * @category schema
80
82
  */
81
83
  export const schemaBodyUrlParamsEffect = <R, I extends Readonly<Record<string, string>>, A>(
82
- schema: Schema.Schema<A, I, R>
84
+ schema: Schema.Schema<A, I, R>,
85
+ options?: ParseOptions | undefined
83
86
  ) => {
84
- const decode = schemaBodyUrlParams(schema)
87
+ const decode = schemaBodyUrlParams(schema, options)
85
88
  return <E, E2, R2>(effect: Effect.Effect<IncomingMessage<E>, E2, R2>) => Effect.scoped(Effect.flatMap(effect, decode))
86
89
  }
87
90
 
@@ -90,9 +93,10 @@ export const schemaBodyUrlParamsEffect = <R, I extends Readonly<Record<string, s
90
93
  * @category schema
91
94
  */
92
95
  export const schemaHeaders = <R, I extends Readonly<Record<string, string | undefined>>, A>(
93
- schema: Schema.Schema<A, I, R>
96
+ schema: Schema.Schema<A, I, R>,
97
+ options?: ParseOptions | undefined
94
98
  ) => {
95
- const parse = Schema.decodeUnknown(schema)
99
+ const parse = Schema.decodeUnknown(schema, options)
96
100
  return <E>(self: IncomingMessage<E>): Effect.Effect<A, ParseResult.ParseError, R> => parse(self.headers)
97
101
  }
98
102
 
@@ -101,9 +105,10 @@ export const schemaHeaders = <R, I extends Readonly<Record<string, string | unde
101
105
  * @category schema
102
106
  */
103
107
  export const schemaHeadersEffect = <R, I extends Readonly<Record<string, string>>, A>(
104
- schema: Schema.Schema<A, I, R>
108
+ schema: Schema.Schema<A, I, R>,
109
+ options?: ParseOptions | undefined
105
110
  ) => {
106
- const decode = schemaHeaders(schema)
111
+ const decode = schemaHeaders(schema, options)
107
112
  return <E, E2, R2>(effect: Effect.Effect<IncomingMessage<E>, E2, R2>) => Effect.scoped(Effect.flatMap(effect, decode))
108
113
  }
109
114
 
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
+ import type { ParseOptions } from "@effect/schema/AST"
4
5
  import type * as ParseResult from "@effect/schema/ParseResult"
5
6
  import type * as Schema from "@effect/schema/Schema"
6
7
  import type { YieldableError } from "effect/Cause"
@@ -221,7 +222,8 @@ export const filesSchema: Schema.Schema<ReadonlyArray<PersistedFile>> = internal
221
222
  * @category schema
222
223
  */
223
224
  export const schemaJson: <A, I, R>(
224
- schema: Schema.Schema<A, I, R>
225
+ schema: Schema.Schema<A, I, R>,
226
+ options?: ParseOptions | undefined
225
227
  ) => {
226
228
  (field: string): (persisted: Persisted) => Effect.Effect<A, ParseResult.ParseError, R>
227
229
  (persisted: Persisted, field: string): Effect.Effect<A, ParseResult.ParseError, R>
@@ -232,7 +234,8 @@ export const schemaJson: <A, I, R>(
232
234
  * @category schema
233
235
  */
234
236
  export const schemaPersisted: <R, I extends Partial<Persisted>, A>(
235
- schema: Schema.Schema<A, I, R>
237
+ schema: Schema.Schema<A, I, R>,
238
+ options?: ParseOptions | undefined
236
239
  ) => (persisted: Persisted) => Effect.Effect<A, ParseResult.ParseError, R> = internal.schemaPersisted
237
240
 
238
241
  /**