@effect/platform 0.48.16 → 0.48.18

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 (106) hide show
  1. package/README.md +312 -10
  2. package/dist/cjs/Http/Client.js.map +1 -1
  3. package/dist/cjs/Http/ClientRequest.js.map +1 -1
  4. package/dist/cjs/Http/ClientResponse.js.map +1 -1
  5. package/dist/cjs/Http/Cookies.js +50 -27
  6. package/dist/cjs/Http/Cookies.js.map +1 -1
  7. package/dist/cjs/Http/IncomingMessage.js +12 -16
  8. package/dist/cjs/Http/IncomingMessage.js.map +1 -1
  9. package/dist/cjs/Http/Multipart.js.map +1 -1
  10. package/dist/cjs/Http/Router.js +11 -1
  11. package/dist/cjs/Http/Router.js.map +1 -1
  12. package/dist/cjs/Http/ServerRequest.js +6 -1
  13. package/dist/cjs/Http/ServerRequest.js.map +1 -1
  14. package/dist/cjs/Http/ServerResponse.js.map +1 -1
  15. package/dist/cjs/Http/UrlParams.js +2 -2
  16. package/dist/cjs/Http/UrlParams.js.map +1 -1
  17. package/dist/cjs/internal/http/body.js +2 -2
  18. package/dist/cjs/internal/http/body.js.map +1 -1
  19. package/dist/cjs/internal/http/client.js +4 -2
  20. package/dist/cjs/internal/http/client.js.map +1 -1
  21. package/dist/cjs/internal/http/clientRequest.js +2 -2
  22. package/dist/cjs/internal/http/clientRequest.js.map +1 -1
  23. package/dist/cjs/internal/http/clientResponse.js +8 -8
  24. package/dist/cjs/internal/http/clientResponse.js.map +1 -1
  25. package/dist/cjs/internal/http/multipart.js +4 -4
  26. package/dist/cjs/internal/http/multipart.js.map +1 -1
  27. package/dist/cjs/internal/http/router.js +34 -7
  28. package/dist/cjs/internal/http/router.js.map +1 -1
  29. package/dist/cjs/internal/http/serverRequest.js +22 -15
  30. package/dist/cjs/internal/http/serverRequest.js.map +1 -1
  31. package/dist/cjs/internal/http/serverResponse.js +19 -11
  32. package/dist/cjs/internal/http/serverResponse.js.map +1 -1
  33. package/dist/dts/Http/Client.d.ts +3 -2
  34. package/dist/dts/Http/Client.d.ts.map +1 -1
  35. package/dist/dts/Http/ClientRequest.d.ts +2 -1
  36. package/dist/dts/Http/ClientRequest.d.ts.map +1 -1
  37. package/dist/dts/Http/ClientResponse.d.ts +5 -4
  38. package/dist/dts/Http/ClientResponse.d.ts.map +1 -1
  39. package/dist/dts/Http/Cookies.d.ts +15 -7
  40. package/dist/dts/Http/Cookies.d.ts.map +1 -1
  41. package/dist/dts/Http/Headers.d.ts +1 -1
  42. package/dist/dts/Http/Headers.d.ts.map +1 -1
  43. package/dist/dts/Http/IncomingMessage.d.ts +7 -6
  44. package/dist/dts/Http/IncomingMessage.d.ts.map +1 -1
  45. package/dist/dts/Http/Multipart.d.ts +3 -2
  46. package/dist/dts/Http/Multipart.d.ts.map +1 -1
  47. package/dist/dts/Http/Router.d.ts +29 -3
  48. package/dist/dts/Http/Router.d.ts.map +1 -1
  49. package/dist/dts/Http/ServerRequest.d.ts +12 -6
  50. package/dist/dts/Http/ServerRequest.d.ts.map +1 -1
  51. package/dist/dts/Http/ServerResponse.d.ts +14 -13
  52. package/dist/dts/Http/ServerResponse.d.ts.map +1 -1
  53. package/dist/dts/Http/UrlParams.d.ts +2 -1
  54. package/dist/dts/Http/UrlParams.d.ts.map +1 -1
  55. package/dist/dts/internal/http/router.d.ts.map +1 -1
  56. package/dist/esm/Http/Client.js.map +1 -1
  57. package/dist/esm/Http/ClientRequest.js.map +1 -1
  58. package/dist/esm/Http/ClientResponse.js.map +1 -1
  59. package/dist/esm/Http/Cookies.js +47 -25
  60. package/dist/esm/Http/Cookies.js.map +1 -1
  61. package/dist/esm/Http/IncomingMessage.js +12 -15
  62. package/dist/esm/Http/IncomingMessage.js.map +1 -1
  63. package/dist/esm/Http/Multipart.js.map +1 -1
  64. package/dist/esm/Http/Router.js +10 -0
  65. package/dist/esm/Http/Router.js.map +1 -1
  66. package/dist/esm/Http/ServerRequest.js +5 -0
  67. package/dist/esm/Http/ServerRequest.js.map +1 -1
  68. package/dist/esm/Http/ServerResponse.js.map +1 -1
  69. package/dist/esm/Http/UrlParams.js +2 -2
  70. package/dist/esm/Http/UrlParams.js.map +1 -1
  71. package/dist/esm/internal/http/body.js +2 -2
  72. package/dist/esm/internal/http/body.js.map +1 -1
  73. package/dist/esm/internal/http/client.js +4 -2
  74. package/dist/esm/internal/http/client.js.map +1 -1
  75. package/dist/esm/internal/http/clientRequest.js +2 -2
  76. package/dist/esm/internal/http/clientRequest.js.map +1 -1
  77. package/dist/esm/internal/http/clientResponse.js +8 -8
  78. package/dist/esm/internal/http/clientResponse.js.map +1 -1
  79. package/dist/esm/internal/http/multipart.js +4 -4
  80. package/dist/esm/internal/http/multipart.js.map +1 -1
  81. package/dist/esm/internal/http/router.js +31 -6
  82. package/dist/esm/internal/http/router.js.map +1 -1
  83. package/dist/esm/internal/http/serverRequest.js +20 -14
  84. package/dist/esm/internal/http/serverRequest.js.map +1 -1
  85. package/dist/esm/internal/http/serverResponse.js +19 -11
  86. package/dist/esm/internal/http/serverResponse.js.map +1 -1
  87. package/package.json +3 -3
  88. package/src/Http/Client.ts +5 -2
  89. package/src/Http/ClientRequest.ts +3 -1
  90. package/src/Http/ClientResponse.ts +16 -7
  91. package/src/Http/Cookies.ts +60 -37
  92. package/src/Http/Headers.ts +1 -1
  93. package/src/Http/IncomingMessage.ts +17 -12
  94. package/src/Http/Multipart.ts +5 -2
  95. package/src/Http/Router.ts +50 -3
  96. package/src/Http/ServerRequest.ts +23 -7
  97. package/src/Http/ServerResponse.ts +19 -13
  98. package/src/Http/UrlParams.ts +3 -2
  99. package/src/internal/http/body.ts +3 -2
  100. package/src/internal/http/client.ts +10 -5
  101. package/src/internal/http/clientRequest.ts +3 -2
  102. package/src/internal/http/clientResponse.ts +9 -8
  103. package/src/internal/http/multipart.ts +7 -4
  104. package/src/internal/http/router.ts +80 -6
  105. package/src/internal/http/serverRequest.ts +31 -15
  106. package/src/internal/http/serverResponse.ts +32 -22
@@ -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.18",
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.14",
20
+ "effect": "^2.4.14"
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
@@ -63,7 +63,7 @@ export const schema: Schema.Schema<Headers, ReadonlyRecord.ReadonlyRecord<string
63
63
  * @category models
64
64
  */
65
65
  export type Input =
66
- | ReadonlyRecord.ReadonlyRecord<string, string | ReadonlyArray<string>>
66
+ | ReadonlyRecord.ReadonlyRecord<string, string | ReadonlyArray<string> | undefined>
67
67
  | Iterable<readonly [string, string]>
68
68
 
69
69
  /**
@@ -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
  /**
@@ -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 Cause from "effect/Cause"
@@ -148,12 +149,56 @@ export const searchParams: Effect.Effect<
148
149
  RouteContext
149
150
  > = internal.searchParams
150
151
 
152
+ /**
153
+ * @since 1.0.0
154
+ * @category route context
155
+ */
156
+ export const schemaJson: <
157
+ R,
158
+ I extends {
159
+ readonly method?: Method.Method | undefined
160
+ readonly url?: string | undefined
161
+ readonly cookies?: Readonly<Record<string, string>> | undefined
162
+ readonly headers?: Readonly<Record<string, string>> | undefined
163
+ readonly pathParams?: Readonly<Record<string, string>> | undefined
164
+ readonly searchParams?: Readonly<Record<string, string>> | undefined
165
+ readonly body?: any
166
+ },
167
+ A
168
+ >(
169
+ schema: Schema.Schema<A, I, R>,
170
+ options?: ParseOptions | undefined
171
+ ) => Effect.Effect<A, ParseResult.ParseError | Error.RequestError, RouteContext | R | ServerRequest.ServerRequest> =
172
+ internal.schemaJson
173
+
174
+ /**
175
+ * @since 1.0.0
176
+ * @category route context
177
+ */
178
+ export const schemaNoBody: <
179
+ R,
180
+ I extends {
181
+ readonly method?: Method.Method | undefined
182
+ readonly url?: string | undefined
183
+ readonly cookies?: Readonly<Record<string, string>> | undefined
184
+ readonly headers?: Readonly<Record<string, string>> | undefined
185
+ readonly pathParams?: Readonly<Record<string, string>> | undefined
186
+ readonly searchParams?: Readonly<Record<string, string>> | undefined
187
+ },
188
+ A
189
+ >(
190
+ schema: Schema.Schema<A, I, R>,
191
+ options?: ParseOptions | undefined
192
+ ) => Effect.Effect<A, ParseResult.ParseError | Error.RequestError, RouteContext | R | ServerRequest.ServerRequest> =
193
+ internal.schemaNoBody
194
+
151
195
  /**
152
196
  * @since 1.0.0
153
197
  * @category route context
154
198
  */
155
199
  export const schemaParams: <R, I extends Readonly<Record<string, string>>, A>(
156
- schema: Schema.Schema<A, I, R>
200
+ schema: Schema.Schema<A, I, R>,
201
+ options?: ParseOptions | undefined
157
202
  ) => Effect.Effect<A, ParseResult.ParseError, RouteContext | R> = internal.schemaParams
158
203
 
159
204
  /**
@@ -161,7 +206,8 @@ export const schemaParams: <R, I extends Readonly<Record<string, string>>, A>(
161
206
  * @category route context
162
207
  */
163
208
  export const schemaPathParams: <R, I extends Readonly<Record<string, string>>, A>(
164
- schema: Schema.Schema<A, I, R>
209
+ schema: Schema.Schema<A, I, R>,
210
+ options?: ParseOptions | undefined
165
211
  ) => Effect.Effect<A, ParseResult.ParseError, RouteContext | R> = internal.schemaPathParams
166
212
 
167
213
  /**
@@ -169,7 +215,8 @@ export const schemaPathParams: <R, I extends Readonly<Record<string, string>>, A
169
215
  * @category route context
170
216
  */
171
217
  export const schemaSearchParams: <R, I extends Readonly<Record<string, string>>, A>(
172
- schema: Schema.Schema<A, I, R>
218
+ schema: Schema.Schema<A, I, R>,
219
+ options?: ParseOptions | undefined
173
220
  ) => Effect.Effect<A, ParseResult.ParseError, RouteContext | R> = internal.schemaSearchParams
174
221
 
175
222
  /**