@effect/platform 0.13.1 → 0.13.3

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 (50) hide show
  1. package/Http/Headers.d.ts +3 -3
  2. package/Http/Headers.d.ts.map +1 -1
  3. package/Http/Headers.js +16 -11
  4. package/Http/Headers.js.map +1 -1
  5. package/Http/IncomingMessage.d.ts.map +1 -1
  6. package/Http/IncomingMessage.js +1 -1
  7. package/Http/IncomingMessage.js.map +1 -1
  8. package/Http/Middleware.d.ts +0 -8
  9. package/Http/Middleware.d.ts.map +1 -1
  10. package/Http/Middleware.js +2 -8
  11. package/Http/Middleware.js.map +1 -1
  12. package/Http/Router.d.ts +90 -0
  13. package/Http/Router.d.ts.map +1 -1
  14. package/Http/Router.js +43 -1
  15. package/Http/Router.js.map +1 -1
  16. package/internal/http/client.js +1 -1
  17. package/internal/http/client.js.map +1 -1
  18. package/internal/http/middleware.js +9 -11
  19. package/internal/http/middleware.js.map +1 -1
  20. package/internal/http/router.d.ts +3 -1
  21. package/internal/http/router.d.ts.map +1 -1
  22. package/internal/http/router.js +38 -17
  23. package/internal/http/router.js.map +1 -1
  24. package/internal/http/serverResponse.js +15 -12
  25. package/internal/http/serverResponse.js.map +1 -1
  26. package/mjs/Http/Headers.mjs +16 -11
  27. package/mjs/Http/Headers.mjs.map +1 -1
  28. package/mjs/Http/IncomingMessage.mjs +1 -1
  29. package/mjs/Http/IncomingMessage.mjs.map +1 -1
  30. package/mjs/Http/Middleware.mjs +0 -5
  31. package/mjs/Http/Middleware.mjs.map +1 -1
  32. package/mjs/Http/Router.mjs +35 -0
  33. package/mjs/Http/Router.mjs.map +1 -1
  34. package/mjs/internal/http/client.mjs +1 -1
  35. package/mjs/internal/http/client.mjs.map +1 -1
  36. package/mjs/internal/http/middleware.mjs +9 -10
  37. package/mjs/internal/http/middleware.mjs.map +1 -1
  38. package/mjs/internal/http/router.mjs +30 -16
  39. package/mjs/internal/http/router.mjs.map +1 -1
  40. package/mjs/internal/http/serverResponse.mjs +15 -12
  41. package/mjs/internal/http/serverResponse.mjs.map +1 -1
  42. package/package.json +4 -4
  43. package/src/Http/Headers.ts +23 -17
  44. package/src/Http/IncomingMessage.ts +1 -2
  45. package/src/Http/Middleware.ts +0 -14
  46. package/src/Http/Router.ts +118 -0
  47. package/src/internal/http/client.ts +18 -21
  48. package/src/internal/http/middleware.ts +23 -31
  49. package/src/internal/http/router.ts +158 -24
  50. package/src/internal/http/serverResponse.ts +15 -13
@@ -63,15 +63,12 @@ class RouterImpl {
63
63
  }
64
64
  const toHttpApp = self => {
65
65
  const router = FindMyWay();
66
- Chunk.forEach(self.mounts, ([path, app]) => {
67
- const fn = () => {};
68
- fn.handler = Effect.updateService(app, ServerRequest.ServerRequest, request => sliceRequestUrl(request, path));
69
- router.all(path, fn);
70
- router.all(path + "/*", fn);
71
- });
66
+ const mounts = Chunk.toReadonlyArray(self.mounts);
67
+ const mountsLen = mounts.length;
72
68
  Chunk.forEach(self.routes, route => {
73
- const fn = () => {};
74
- fn.handler = route;
69
+ function fn() {
70
+ return route;
71
+ }
75
72
  if (route.method === "*") {
76
73
  router.all(route.path, fn);
77
74
  } else {
@@ -79,21 +76,25 @@ const toHttpApp = self => {
79
76
  }
80
77
  });
81
78
  return Effect.flatMap(ServerRequest.ServerRequest, request => {
79
+ if (mountsLen > 0) {
80
+ for (let i = 0; i < mountsLen; i++) {
81
+ const [path, app] = mounts[i];
82
+ if (request.url.startsWith(path)) {
83
+ return Effect.provideService(app, ServerRequest.ServerRequest, sliceRequestUrl(request, path));
84
+ }
85
+ }
86
+ }
82
87
  const result = router.find(request.method, request.url);
83
88
  if (result === null) {
84
89
  return Effect.fail(Error.RouteNotFound({
85
90
  request
86
91
  }));
87
92
  }
88
- const handler = result.handler.handler;
89
- if (RouteTypeId in handler) {
90
- const route = handler;
91
- if (route.prefix._tag === "Some") {
92
- request = sliceRequestUrl(request, route.prefix.value);
93
- }
94
- return Effect.mapInputContext(route.handler, context => Context.add(Context.add(context, ServerRequest.ServerRequest, request), RouteContext, new RouteContextImpl(result.params, result.searchParams)));
93
+ const route = result.handler();
94
+ if (route.prefix._tag === "Some") {
95
+ request = sliceRequestUrl(request, route.prefix.value);
95
96
  }
96
- return handler;
97
+ return Effect.mapInputContext(route.handler, context => Context.add(Context.add(context, ServerRequest.ServerRequest, request), RouteContext, new RouteContextImpl(result.params, result.searchParams)));
97
98
  });
98
99
  };
99
100
  function sliceRequestUrl(request, prefix) {
@@ -152,4 +153,17 @@ export const del = /*#__PURE__*/route("DELETE");
152
153
  export const head = /*#__PURE__*/route("HEAD");
153
154
  /** @internal */
154
155
  export const options = /*#__PURE__*/route("OPTIONS");
156
+ /** @internal */
157
+ export const transform = /*#__PURE__*/dual(2, (self, f) => new RouterImpl(Chunk.map(self.routes, route => new RouteImpl(route.method, route.path, f(route.handler), route.prefix)), Chunk.map(self.mounts, ([path, app]) => [path, f(app)])));
158
+ /** @internal */
159
+ export const catchAll = /*#__PURE__*/dual(2, (self, f) => transform(self, Effect.catchAll(f)));
160
+ /** @internal */
161
+ export const catchAllCause = /*#__PURE__*/dual(2, (self, f) => transform(self, Effect.catchAllCause(f)));
162
+ /** @internal */
163
+ export const catchTag = /*#__PURE__*/dual(3, (self, k, f) => transform(self, Effect.catchTag(k, f)));
164
+ /** @internal */
165
+ export const catchTags = /*#__PURE__*/dual(2, (self, cases) => transform(self, Effect.catchTags(cases)));
166
+ export const provideService = /*#__PURE__*/dual(3, (self, tag, service) => transform(self, Effect.provideService(tag, service)));
167
+ /* @internal */
168
+ export const provideServiceEffect = /*#__PURE__*/dual(3, (self, tag, effect) => transform(self, Effect.provideServiceEffect(tag, effect)));
155
169
  //# sourceMappingURL=router.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.mjs","names":["Chunk","Context","Equal","dual","Hash","Option","pipeArguments","Effect","Error","ServerRequest","Schema","Channel","Sink","Stream","FindMyWay","TypeId","Symbol","for","RouteTypeId","RouteContextTypeId","RouteContext","Tag","params","map","_","searchParams","schemaParams","schema","parse","flatMap","RouterImpl","constructor","routes","mounts","_tag","EffectTypeId","undefined","StreamTypeId","SinkTypeId","ChannelTypeId","pipe","arguments","commit","httpApp","toHttpApp","symbol","that","random","self","router","forEach","path","app","fn","handler","updateService","request","sliceRequestUrl","all","route","method","on","result","find","url","fail","RouteNotFound","prefix","value","mapInputContext","context","add","RouteContextImpl","prefexLen","length","setUrl","slice","RouteImpl","none","empty","fromIterable","makeRoute","concat","appendAll","removeTrailingSlash","endsWith","prefixAll","orElse","some","mount","mountApp","append","get","post","put","patch","del","head","options"],"sources":["../../../src/internal/http/router.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,oBAAoB;AAC3C,OAAO,KAAKC,OAAO,MAAM,sBAAsB;AAC/C,OAAO,KAAKC,KAAK,MAAM,oBAAoB;AAC3C,SAASC,IAAI,QAAQ,uBAAuB;AAC5C,OAAO,KAAKC,IAAI,MAAM,mBAAmB;AACzC,OAAO,KAAKC,MAAM,MAAM,qBAAqB;AAC7C,SAASC,aAAa,QAAQ,uBAAuB;AACrD,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAI3C,OAAO,KAAKC,KAAK,MAAM,mCAAmC;AAC1D,OAAO,KAAKC,aAAa,MAAM,qCAAqC;AACpE,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAC/C,OAAO,KAAKC,OAAO,MAAM,wBAAwB;AACjD,OAAO,KAAKC,IAAI,MAAM,qBAAqB;AAC3C,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAE/C,OAAOC,SAAS,MAAM,aAAa;AAEnC;AACA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAAC,8BAA8B,CAAkB;AAEhG;AACA,OAAO,MAAMC,WAAW,gBAAuBF,MAAM,CAACC,GAAG,CAAC,oCAAoC,CAAuB;AAErH;AACA,OAAO,MAAME,kBAAkB,gBAA8BH,MAAM,CAACC,GAAG,CACrE,2CAA2C,CACf;AAE9B;AACA,OAAO,MAAMG,YAAY,gBAAGnB,OAAO,CAACoB,GAAG,CAAsB,2CAA2C,CAAC;AAEzG;AACA,OAAO,MAAMC,MAAM,gBAAGf,MAAM,CAACgB,GAAG,CAACH,YAAY,EAAGI,CAAC,IAAKA,CAAC,CAACF,MAAM,CAAC;AAE/D;AACA,OAAO,MAAMG,YAAY,gBAAGlB,MAAM,CAACgB,GAAG,CAACH,YAAY,EAAGI,CAAC,IAAKA,CAAC,CAACC,YAAY,CAAC;AAE3E;AACA,OAAO,MAAMC,YAAY,GAAmDC,MAA2B,IAAI;EACzG,MAAMC,KAAK,GAAGlB,MAAM,CAACkB,KAAK,CAACD,MAAM,CAAC;EAClC,OAAOpB,MAAM,CAACsB,OAAO,CACnBT,YAAY,EACXI,CAAC,IACAI,KAAK,CAAC;IACJ,GAAGJ,CAAC,CAACC,YAAY;IACjB,GAAGD,CAAC,CAACF;GACN,CAAC,CACL;AACH,CAAC;AAED,MAAMQ,UAAU;EAEdC,YACWC,MAAuC,EACvCC,MAAyD;IADzD,KAAAD,MAAM,GAANA,MAAM;IACN,KAAAC,MAAM,GAANA,MAAM;IAmBjB;IACO,KAAAC,IAAI,GAAG,QAAQ,EAAC;IAlBrB,IAAI,CAACnB,MAAM,CAAC,GAAGA,MAAM;IACrB,IAAI,CAACR,MAAM,CAAC4B,YAAY,CAAC,GAAGC,SAAS;IACrC,IAAI,CAACvB,MAAM,CAACwB,YAAY,CAAC,GAAGD,SAAS;IACrC,IAAI,CAACxB,IAAI,CAAC0B,UAAU,CAAC,GAAGF,SAAS;IACjC,IAAI,CAACzB,OAAO,CAAC4B,aAAa,CAAC,GAAGH,SAAS;EACzC;EACAI,IAAIA,CAAA;IACF,OAAOlC,aAAa,CAAC,IAAI,EAAEmC,SAAS,CAAC;EACvC;EAEAC,MAAMA,CAAA;IACJ,IAAI,IAAI,CAACC,OAAO,KAAKP,SAAS,EAAE;MAC9B,IAAI,CAACO,OAAO,GAAGC,SAAS,CAAC,IAAI,CAAC;;IAEhC,OAAO,IAAI,CAACD,OAAO;EACrB;EAQA,EAJUpC,MAAM,CAAC4B,YAAY,EACnBtB,MAAM,CAACwB,YAAY,EACnBzB,IAAI,CAAC0B,UAAU,EACf3B,OAAO,CAAC4B,aAAa,EAC9BrC,KAAK,CAAC2C,MAAM,GAEXC,IAAsB;IAEtB,OAAO,IAAI,KAAKA,IAAI;EACtB;EACA,CAAC1C,IAAI,CAACyC,MAAM,IAAC;IACX,OAAOzC,IAAI,CAAC2C,MAAM,CAAC,IAAI,CAAC;EAC1B;;AAGF,MAAMH,SAAS,GACbI,IAAyB,IACgD;EACzE,MAAMC,MAAM,GAAGnC,SAAS,EAAE;EAC1Bd,KAAK,CAACkD,OAAO,CAACF,IAAI,CAACf,MAAM,EAAE,CAAC,CAACkB,IAAI,EAAEC,GAAG,CAAC,KAAI;IACzC,MAAMC,EAAE,GAAGA,CAAA,KAAK,CAAE,CAAC;IACnBA,EAAE,CAACC,OAAO,GAAG/C,MAAM,CAACgD,aAAa,CAACH,GAAG,EAAE3C,aAAa,CAACA,aAAa,EAAG+C,OAAO,IAAKC,eAAe,CAACD,OAAO,EAAEL,IAAI,CAAC,CAAC;IAChHF,MAAM,CAACS,GAAG,CAACP,IAAI,EAAEE,EAAE,CAAC;IACpBJ,MAAM,CAACS,GAAG,CAACP,IAAI,GAAG,IAAI,EAAEE,EAAE,CAAC;EAC7B,CAAC,CAAC;EACFrD,KAAK,CAACkD,OAAO,CAACF,IAAI,CAAChB,MAAM,EAAG2B,KAAK,IAAI;IACnC,MAAMN,EAAE,GAAGA,CAAA,KAAK,CAAE,CAAC;IACnBA,EAAE,CAACC,OAAO,GAAGK,KAAK;IAClB,IAAIA,KAAK,CAACC,MAAM,KAAK,GAAG,EAAE;MACxBX,MAAM,CAACS,GAAG,CAACC,KAAK,CAACR,IAAI,EAAEE,EAAE,CAAC;KAC3B,MAAM;MACLJ,MAAM,CAACY,EAAE,CAACF,KAAK,CAACC,MAAM,EAAED,KAAK,CAACR,IAAI,EAAEE,EAAE,CAAC;;EAE3C,CAAC,CAAC;EACF,OAAO9C,MAAM,CAACsB,OAAO,CACnBpB,aAAa,CAACA,aAAa,EAC1B+C,OAAO,IAA2E;IACjF,MAAMM,MAAM,GAAGb,MAAM,CAACc,IAAI,CAACP,OAAO,CAACI,MAAoB,EAAEJ,OAAO,CAACQ,GAAG,CAAC;IACrE,IAAIF,MAAM,KAAK,IAAI,EAAE;MACnB,OAAOvD,MAAM,CAAC0D,IAAI,CAACzD,KAAK,CAAC0D,aAAa,CAAC;QAAEV;MAAO,CAAE,CAAC,CAAC;;IAEtD,MAAMF,OAAO,GAAIQ,MAAM,CAACR,OAAe,CAACA,OAAO;IAC/C,IAAIpC,WAAW,IAAIoC,OAAO,EAAE;MAC1B,MAAMK,KAAK,GAAGL,OAA6B;MAC3C,IAAIK,KAAK,CAACQ,MAAM,CAACjC,IAAI,KAAK,MAAM,EAAE;QAChCsB,OAAO,GAAGC,eAAe,CAACD,OAAO,EAAEG,KAAK,CAACQ,MAAM,CAACC,KAAK,CAAC;;MAExD,OAAO7D,MAAM,CAAC8D,eAAe,CAC3BV,KAAK,CAACL,OAAO,EACZgB,OAAO,IACNrE,OAAO,CAACsE,GAAG,CACTtE,OAAO,CAACsE,GAAG,CAACD,OAAO,EAAE7D,aAAa,CAACA,aAAa,EAAE+C,OAAO,CAAC,EAC1DpC,YAAY,EACZ,IAAIoD,gBAAgB,CAACV,MAAM,CAACxC,MAAM,EAAEwC,MAAM,CAACrC,YAAY,CAAC,CACnC,CAC1B;;IAEH,OAAQ6B,OAA2D;EACrE,CAAC,CACF;AACH,CAAC;AAED,SAASG,eAAeA,CAACD,OAAoC,EAAEW,MAAc;EAC3E,MAAMM,SAAS,GAAGN,MAAM,CAACO,MAAM;EAC/B,OAAOlB,OAAO,CAACmB,MAAM,CAACnB,OAAO,CAACQ,GAAG,CAACU,MAAM,IAAID,SAAS,GAAG,GAAG,GAAGjB,OAAO,CAACQ,GAAG,CAACY,KAAK,CAACH,SAAS,CAAC,CAAC;AAC7F;AAEA,MAAMI,SAAS;EAEb9C,YACW6B,MAA2B,EAC3BT,IAAY,EACZG,OAAmC,EACnCa,MAAA,GAAS9D,MAAM,CAACyE,IAAI,EAAU;IAH9B,KAAAlB,MAAM,GAANA,MAAM;IACN,KAAAT,IAAI,GAAJA,IAAI;IACJ,KAAAG,OAAO,GAAPA,OAAO;IACP,KAAAa,MAAM,GAANA,MAAM;IAEf,IAAI,CAACjD,WAAW,CAAC,GAAGA,WAAW;EACjC;;AAGF,MAAMsD,gBAAgB;EAEpBzC,YACWT,MAAoD,EACpDG,YAA8C;IAD9C,KAAAH,MAAM,GAANA,MAAM;IACN,KAAAG,YAAY,GAAZA,YAAY;IAErB,IAAI,CAACN,kBAAkB,CAAC,GAAGA,kBAAkB;EAC/C;;AAGF;AACA,OAAO,MAAM4D,KAAK,gBAAgC,IAAIjD,UAAU,eAAC9B,KAAK,CAAC+E,KAAK,EAAE,eAAE/E,KAAK,CAAC+E,KAAK,EAAE,CAAC;AAE9F;AACA,OAAO,MAAMC,YAAY,GACvBhD,MAAoC,IACZ,IAAIF,UAAU,CAAC9B,KAAK,CAACgF,YAAY,CAAChD,MAAM,CAAC,EAAEhC,KAAK,CAAC+E,KAAK,EAAE,CAAC;AAEnF;AACA,OAAO,MAAME,SAAS,GAAGA,CACvBrB,MAAqB,EACrBT,IAAY,EACZG,OAAmC,EACnCa,MAAA,GAAgC9D,MAAM,CAACyE,IAAI,EAAE,KACtB,IAAID,SAAS,CAACjB,MAAM,EAAET,IAAI,EAAEG,OAAO,EAAEa,MAAM,CAAC;AAErE;AACA,OAAO,MAAMe,MAAM,gBAAG/E,IAAI,CAGxB,CAAC,EAAE,CAAC6C,IAAI,EAAEF,IAAI,KAAK,IAAIhB,UAAU,CAAC9B,KAAK,CAACmF,SAAS,CAACnC,IAAI,CAAChB,MAAM,EAAEc,IAAI,CAACd,MAAM,CAAQ,EAAEgB,IAAI,CAACf,MAAM,CAAC,CAAC;AAEnG,MAAMmD,mBAAmB,GAAIjC,IAAY,IAAMA,IAAI,CAACkC,QAAQ,CAAC,GAAG,CAAC,GAAGlC,IAAI,CAACyB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAGzB,IAAK;AAE7F;AACA,OAAO,MAAMmC,SAAS,gBAAGnF,IAAI,CAI3B,CAAC,EACD,CAAC6C,IAAI,EAAEmB,MAAM,KAAI;EACfA,MAAM,GAAGiB,mBAAmB,CAACjB,MAAM,CAAC;EACpC,OAAO,IAAIrC,UAAU,CACnB9B,KAAK,CAACuB,GAAG,CAACyB,IAAI,CAAChB,MAAM,EAAG2B,KAAK,IAC3B,IAAIkB,SAAS,CACXlB,KAAK,CAACC,MAAM,EACZD,KAAK,CAACR,IAAI,KAAK,GAAG,GAAGgB,MAAM,GAAGA,MAAM,GAAGR,KAAK,CAACR,IAAI,EACjDQ,KAAK,CAACL,OAAO,EACbjD,MAAM,CAACkF,MAAM,CACXlF,MAAM,CAACkB,GAAG,CAACoC,KAAK,CAACQ,MAAM,EAAG3C,CAAC,IAAK2C,MAAM,GAAG3C,CAAC,CAAC,EAC3C,MAAMnB,MAAM,CAACmF,IAAI,CAACrB,MAAM,CAAC,CAC1B,CACF,CAAC,EACJnE,KAAK,CAACuB,GAAG,CAACyB,IAAI,CAACf,MAAM,EAAE,CAAC,CAACkB,IAAI,EAAEC,GAAG,CAAC,KAAK,CAACD,IAAI,KAAK,GAAG,GAAGgB,MAAM,GAAGA,MAAM,GAAGhB,IAAI,EAAEC,GAAG,CAAC,CAAC,CACtF;AACH,CAAC,CACF;AAED;AACA,OAAO,MAAMqC,KAAK,gBAAGtF,IAAI,CAWvB,CAAC,EACD,CAAC6C,IAAI,EAAEG,IAAI,EAAEL,IAAI,KAAKoC,MAAM,CAAClC,IAAI,EAAEsC,SAAS,CAACxC,IAAI,EAAEK,IAAI,CAAC,CAAC,CAC1D;AAED;AACA,OAAO,MAAMuC,QAAQ,gBAAGvF,IAAI,CAW1B,CAAC,EACD,CAAC6C,IAAI,EAAEG,IAAI,EAAEL,IAAI,KAAK,IAAIhB,UAAU,CAACkB,IAAI,CAAChB,MAAM,EAAEhC,KAAK,CAAC2F,MAAM,CAAC3C,IAAI,CAACf,MAAM,EAAE,CAACmD,mBAAmB,CAACjC,IAAI,CAAC,EAAEL,IAAI,CAAC,CAAQ,CAAC,CACvH;AAED;AACA,OAAO,MAAMa,KAAK,GAAIC,MAA2B,IAW/CzD,IAAI,CAUF,CAAC,EAAE,CAAC6C,IAAI,EAAEG,IAAI,EAAEG,OAAO,KACvB,IAAIxB,UAAU,CACZ9B,KAAK,CAAC2F,MAAM,CAAC3C,IAAI,CAAChB,MAAM,EAAE,IAAI6C,SAAS,CAACjB,MAAM,EAAET,IAAI,EAAEG,OAAO,CAAC,CAAQ,EACtEN,IAAI,CAACf,MAAM,CACZ,CAAC;AAEN;AACA,OAAO,MAAMyB,GAAG,gBAAGC,KAAK,CAAC,GAAG,CAAC;AAE7B;AACA,OAAO,MAAMiC,GAAG,gBAAGjC,KAAK,CAAC,KAAK,CAAC;AAE/B;AACA,OAAO,MAAMkC,IAAI,gBAAGlC,KAAK,CAAC,MAAM,CAAC;AAEjC;AACA,OAAO,MAAMmC,GAAG,gBAAGnC,KAAK,CAAC,KAAK,CAAC;AAE/B;AACA,OAAO,MAAMoC,KAAK,gBAAGpC,KAAK,CAAC,OAAO,CAAC;AAEnC;AACA,OAAO,MAAMqC,GAAG,gBAAGrC,KAAK,CAAC,QAAQ,CAAC;AAElC;AACA,OAAO,MAAMsC,IAAI,gBAAGtC,KAAK,CAAC,MAAM,CAAC;AAEjC;AACA,OAAO,MAAMuC,OAAO,gBAAGvC,KAAK,CAAC,SAAS,CAAC"}
1
+ {"version":3,"file":"router.mjs","names":["Chunk","Context","Equal","dual","Hash","Option","pipeArguments","Effect","Error","ServerRequest","Schema","Channel","Sink","Stream","FindMyWay","TypeId","Symbol","for","RouteTypeId","RouteContextTypeId","RouteContext","Tag","params","map","_","searchParams","schemaParams","schema","parse","flatMap","RouterImpl","constructor","routes","mounts","_tag","EffectTypeId","undefined","StreamTypeId","SinkTypeId","ChannelTypeId","pipe","arguments","commit","httpApp","toHttpApp","symbol","that","random","self","router","toReadonlyArray","mountsLen","length","forEach","route","fn","method","all","path","on","request","i","app","url","startsWith","provideService","sliceRequestUrl","result","find","fail","RouteNotFound","handler","prefix","value","mapInputContext","context","add","RouteContextImpl","prefexLen","setUrl","slice","RouteImpl","none","empty","fromIterable","makeRoute","concat","appendAll","removeTrailingSlash","endsWith","prefixAll","orElse","some","mount","mountApp","append","get","post","put","patch","del","head","options","transform","f","catchAll","catchAllCause","catchTag","k","catchTags","cases","tag","service","provideServiceEffect","effect"],"sources":["../../../src/internal/http/router.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { dual } from "@effect/data/Function";
2
- import * as Option from "@effect/data/Option";
3
2
  import { pipeArguments } from "@effect/data/Pipeable";
4
3
  import * as Effect from "@effect/io/Effect";
5
4
  import * as Headers from "@effect/platform/Http/Headers";
@@ -13,9 +12,22 @@ class ServerResponseImpl {
13
12
  constructor(status, statusText, headers, body) {
14
13
  this.status = status;
15
14
  this.statusText = statusText;
16
- this.headers = headers;
17
15
  this.body = body;
18
16
  this[TypeId] = TypeId;
17
+ if (body.contentType || body.contentLength) {
18
+ const newHeaders = {
19
+ ...headers
20
+ };
21
+ if (body.contentType) {
22
+ newHeaders["content-type"] = body.contentType;
23
+ }
24
+ if (body.contentLength) {
25
+ newHeaders["content-length"] = body.contentLength.toString();
26
+ }
27
+ this.headers = newHeaders;
28
+ } else {
29
+ this.headers = headers;
30
+ }
19
31
  }
20
32
  pipe() {
21
33
  return pipeArguments(this, arguments);
@@ -62,7 +74,7 @@ export const getContentType = options => {
62
74
  if (options?.contentType) {
63
75
  return options.contentType;
64
76
  } else if (options?.headers) {
65
- return Option.getOrUndefined(Headers.get("content-type")(options.headers));
77
+ return options.headers["content-type"];
66
78
  } else {
67
79
  return;
68
80
  }
@@ -78,15 +90,6 @@ export const setBody = /*#__PURE__*/dual(2, (self, body) => {
78
90
  let headers = self.headers;
79
91
  if (body._tag === "Empty") {
80
92
  headers = Headers.remove(Headers.remove(headers, "Content-Type"), "Content-length");
81
- } else {
82
- const contentType = body.contentType;
83
- if (contentType) {
84
- headers = Headers.set(headers, "content-type", contentType);
85
- }
86
- const contentLength = body.contentLength;
87
- if (contentLength) {
88
- headers = Headers.set(headers, "content-length", contentLength.toString());
89
- }
90
93
  }
91
94
  return new ServerResponseImpl(self.status, self.statusText, headers, body);
92
95
  });
@@ -1 +1 @@
1
- {"version":3,"file":"serverResponse.mjs","names":["dual","Option","pipeArguments","Effect","Headers","ServerRequest","UrlParams","internalBody","internalError","TypeId","Symbol","for","ServerResponseImpl","constructor","status","statusText","headers","body","pipe","arguments","isServerResponse","u","toNonEffectBody","self","_tag","map","catchAll","effect","error","flatMap","request","fail","responseError","reason","response","setBody","succeed","empty","options","uint8Array","getContentType","text","json","unsafeJson","schemaJson","schema","encode","jsonSchema","file","path","urlParams","toString","fromInput","raw","formData","stream","contentLength","contentType","getOrUndefined","get","setHeader","key","value","set","setHeaders","input","setAll","setStatus","args","remove"],"sources":["../../../src/internal/http/serverResponse.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"serverResponse.mjs","names":["dual","pipeArguments","Effect","Headers","ServerRequest","UrlParams","internalBody","internalError","TypeId","Symbol","for","ServerResponseImpl","constructor","status","statusText","headers","body","contentType","contentLength","newHeaders","toString","pipe","arguments","isServerResponse","u","toNonEffectBody","self","_tag","map","catchAll","effect","error","flatMap","request","fail","responseError","reason","response","setBody","succeed","empty","options","uint8Array","getContentType","text","json","unsafeJson","schemaJson","schema","encode","jsonSchema","file","path","urlParams","fromInput","raw","formData","stream","setHeader","key","value","set","setHeaders","input","setAll","setStatus","args","remove"],"sources":["../../../src/internal/http/serverResponse.ts"],"sourcesContent":[null],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.13.1",
3
+ "version": "0.13.3",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -29,9 +29,9 @@
29
29
  "path-browserify": "^1.0.1"
30
30
  },
31
31
  "peerDependencies": {
32
- "@effect/data": "^0.17.1",
33
- "@effect/io": "^0.38.0",
34
- "@effect/schema": "^0.33.0",
32
+ "@effect/data": "^0.17.5",
33
+ "@effect/io": "^0.38.2",
34
+ "@effect/schema": "^0.33.1",
35
35
  "@effect/stream": "^0.34.0"
36
36
  }
37
37
  }
@@ -2,26 +2,27 @@
2
2
  * @since 1.0.0
3
3
  */
4
4
  import { dual } from "@effect/data/Function"
5
- import * as HashMap from "@effect/data/HashMap"
6
5
  import type * as Option from "@effect/data/Option"
6
+ import * as ReadonlyArray from "@effect/data/ReadonlyArray"
7
+ import * as ReadonlyRecord from "@effect/data/ReadonlyRecord"
7
8
 
8
9
  /**
9
10
  * @since 1.0.0
10
11
  * @category models
11
12
  */
12
- export interface Headers extends HashMap.HashMap<string, string> {}
13
+ export interface Headers extends ReadonlyRecord.ReadonlyRecord<string> {}
13
14
 
14
15
  /**
15
16
  * @since 1.0.0
16
17
  * @category models
17
18
  */
18
- export type Input = Headers | Readonly<Record<string, string>> | Iterable<readonly [string, string]>
19
+ export type Input = Headers | Iterable<readonly [string, string]>
19
20
 
20
21
  /**
21
22
  * @since 1.0.0
22
23
  * @category constructors
23
24
  */
24
- export const empty: Headers = HashMap.empty()
25
+ export const empty: Headers = ReadonlyRecord.empty()
25
26
 
26
27
  /**
27
28
  * @since 1.0.0
@@ -30,12 +31,15 @@ export const empty: Headers = HashMap.empty()
30
31
  export const fromInput: (input?: Input) => Headers = (input) => {
31
32
  if (input === undefined) {
32
33
  return empty
33
- } else if (HashMap.isHashMap(input)) {
34
- return input
35
34
  } else if (Symbol.iterator in input) {
36
- return HashMap.fromIterable([...input].map(([k, v]) => [k.toLowerCase(), v])) as Headers
35
+ return ReadonlyRecord.fromEntries(ReadonlyArray.map(
36
+ ReadonlyArray.fromIterable(input),
37
+ ([k, v]) => [k.toLowerCase(), v] as const
38
+ ))
37
39
  }
38
- return HashMap.fromIterable(Object.entries(input).map(([k, v]) => [k.toLowerCase(), v]))
40
+ return ReadonlyRecord.fromEntries(
41
+ Object.entries(input).map(([k, v]) => [k.toLowerCase(), v])
42
+ )
39
43
  }
40
44
 
41
45
  /**
@@ -48,7 +52,7 @@ export const has: {
48
52
  } = dual<
49
53
  (key: string) => (self: Headers) => boolean,
50
54
  (self: Headers, key: string) => boolean
51
- >(2, (self, key) => HashMap.has(self, key.toLowerCase()))
55
+ >(2, (self, key) => ReadonlyRecord.has(self, key.toLowerCase()))
52
56
 
53
57
  /**
54
58
  * @since 1.0.0
@@ -60,7 +64,7 @@ export const get: {
60
64
  } = dual<
61
65
  (key: string) => (self: Headers) => Option.Option<string>,
62
66
  (self: Headers, key: string) => Option.Option<string>
63
- >(2, (self, key) => HashMap.get(self, key.toLowerCase()))
67
+ >(2, (self, key) => ReadonlyRecord.get(self, key.toLowerCase()))
64
68
 
65
69
  /**
66
70
  * @since 1.0.0
@@ -72,7 +76,10 @@ export const set: {
72
76
  } = dual<
73
77
  (key: string, value: string) => (self: Headers) => Headers,
74
78
  (self: Headers, key: string, value: string) => Headers
75
- >(3, (self, key, value) => HashMap.set(self, key.toLowerCase(), value))
79
+ >(3, (self, key, value) => ({
80
+ ...self,
81
+ [key.toLowerCase()]: value
82
+ }))
76
83
 
77
84
  /**
78
85
  * @since 1.0.0
@@ -84,11 +91,10 @@ export const setAll: {
84
91
  } = dual<
85
92
  (headers: Input) => (self: Headers) => Headers,
86
93
  (self: Headers, headers: Input) => Headers
87
- >(2, (self, headers) =>
88
- HashMap.union(
89
- self,
90
- fromInput(headers)
91
- ))
94
+ >(2, (self, headers) => ({
95
+ ...self,
96
+ ...fromInput(headers)
97
+ }))
92
98
 
93
99
  /**
94
100
  * @since 1.0.0
@@ -100,4 +106,4 @@ export const remove: {
100
106
  } = dual<
101
107
  (key: string) => (self: Headers) => Headers,
102
108
  (self: Headers, key: string) => Headers
103
- >(2, (self, key) => HashMap.remove(self, key.toLowerCase()))
109
+ >(2, (self, key) => ReadonlyRecord.remove(self, key.toLowerCase()))
@@ -65,8 +65,7 @@ export const schemaBodyUrlParams = <I extends Readonly<Record<string, string>>,
65
65
  */
66
66
  export const schemaHeaders = <I extends Readonly<Record<string, string>>, A>(schema: Schema.Schema<I, A>) => {
67
67
  const parse = Schema.parse(schema)
68
- return <E>(self: IncomingMessage<E>): Effect.Effect<never, ParseResult.ParseError, A> =>
69
- parse(Object.fromEntries(self.headers))
68
+ return <E>(self: IncomingMessage<E>): Effect.Effect<never, ParseResult.ParseError, A> => parse(self.headers)
70
69
  }
71
70
 
72
71
  /**
@@ -30,20 +30,6 @@ export namespace Middleware {
30
30
  */
31
31
  export const make: <M extends Middleware>(middleware: M) => M = internal.make
32
32
 
33
- /**
34
- * @since 1.0.0
35
- * @category combinators
36
- */
37
- export const compose: {
38
- <B extends App.Default<any, any>, C extends App.Default<any, any>>(
39
- that: (b: B) => C
40
- ): <A extends App.Default<any, any>>(self: (a: A) => B) => (a: A) => C
41
- <A extends App.Default<any, any>, B extends App.Default<any, any>, C extends App.Default<any, any>>(
42
- self: (a: A) => B,
43
- that: (b: B) => C
44
- ): (a: A) => C
45
- } = internal.compose
46
-
47
33
  /**
48
34
  * @since 1.0.0
49
35
  * @category constructors
@@ -4,6 +4,7 @@
4
4
  import type * as Chunk from "@effect/data/Chunk"
5
5
  import type * as Context from "@effect/data/Context"
6
6
  import type * as Option from "@effect/data/Option"
7
+ import type * as Cause from "@effect/io/Cause"
7
8
  import type * as Effect from "@effect/io/Effect"
8
9
  import type * as App from "@effect/platform/Http/App"
9
10
  import type * as Method from "@effect/platform/Http/Method"
@@ -340,3 +341,120 @@ export const options: {
340
341
  handler: Route.Handler<R1, E1>
341
342
  ): Router<R | Exclude<R1, RouteContext>, E | E1>
342
343
  } = internal.options
344
+
345
+ /**
346
+ * @since 1.0.0
347
+ * @category combinators
348
+ */
349
+ export const transform = internal.transform
350
+
351
+ /**
352
+ * @since 1.0.0
353
+ * @category combinators
354
+ */
355
+ export const catchAll: {
356
+ <E, R2, E2>(f: (e: E) => Route.Handler<R2, E2>): <R>(self: Router<R, E>) => Router<R2 | R, E2>
357
+ <R, E, R2, E2>(self: Router<R, E>, f: (e: E) => Route.Handler<R2, E2>): Router<R | R2, E2>
358
+ } = internal.catchAll
359
+
360
+ /**
361
+ * @since 1.0.0
362
+ * @category combinators
363
+ */
364
+ export const catchAllCause: {
365
+ <E, R2, E2>(f: (e: Cause.Cause<E>) => Route.Handler<R2, E2>): <R>(self: Router<R, E>) => Router<R2 | R, E2>
366
+ <R, E, R2, E2>(self: Router<R, E>, f: (e: Cause.Cause<E>) => Route.Handler<R2, E2>): Router<R | R2, E2>
367
+ } = internal.catchAllCause
368
+
369
+ /**
370
+ * @since 1.0.0
371
+ * @category combinators
372
+ */
373
+ export const catchTag: {
374
+ <K extends E extends { _tag: string } ? E["_tag"] : never, E, R1, E1>(
375
+ k: K,
376
+ f: (e: Extract<E, { _tag: K }>) => Route.Handler<R1, E1>
377
+ ): <R>(self: Router<R, E>) => Router<R1 | R, E1 | Exclude<E, { _tag: K }>>
378
+ <R, E, K extends E extends { _tag: string } ? E["_tag"] : never, R1, E1>(
379
+ self: Router<R, E>,
380
+ k: K,
381
+ f: (e: Extract<E, { _tag: K }>) => Route.Handler<R1, E1>
382
+ ): Router<R | R1, E1 | Exclude<E, { _tag: K }>>
383
+ } = internal.catchTag
384
+
385
+ /**
386
+ * @since 1.0.0
387
+ * @category combinators
388
+ */
389
+ export const catchTags: {
390
+ <
391
+ E,
392
+ Cases extends E extends { _tag: string }
393
+ ? { [K in E["_tag"]]+?: ((error: Extract<E, { _tag: K }>) => Route.Handler<any, any>) | undefined }
394
+ : {}
395
+ >(
396
+ cases: Cases
397
+ ): <R>(
398
+ self: Router<R, E>
399
+ ) => Router<
400
+ | R
401
+ | {
402
+ [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => Effect.Effect<infer R, any, any> ? R : never
403
+ }[keyof Cases],
404
+ | Exclude<E, { _tag: keyof Cases }>
405
+ | {
406
+ [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => Effect.Effect<any, infer E, any> ? E : never
407
+ }[keyof Cases]
408
+ >
409
+ <
410
+ R,
411
+ E,
412
+ Cases extends E extends { _tag: string }
413
+ ? { [K in E["_tag"]]+?: ((error: Extract<E, { _tag: K }>) => Route.Handler<any, any>) | undefined } :
414
+ {}
415
+ >(
416
+ self: Router<R, E>,
417
+ cases: Cases
418
+ ): Router<
419
+ | R
420
+ | {
421
+ [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => Effect.Effect<infer R, any, any> ? R : never
422
+ }[keyof Cases],
423
+ | Exclude<E, { _tag: keyof Cases }>
424
+ | {
425
+ [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => Effect.Effect<any, infer E, any> ? E : never
426
+ }[keyof Cases]
427
+ >
428
+ } = internal.catchTags
429
+
430
+ /**
431
+ * @since 1.0.0
432
+ * @category combinators
433
+ */
434
+ export const provideService: {
435
+ <T extends Context.Tag<any, any>>(
436
+ tag: T,
437
+ service: Context.Tag.Service<T>
438
+ ): <R, E>(self: Router<R, E>) => Router<Exclude<R, Context.Tag.Identifier<T>>, E>
439
+ <R, E, T extends Context.Tag<any, any>>(
440
+ self: Router<R, E>,
441
+ tag: T,
442
+ service: Context.Tag.Service<T>
443
+ ): Router<Exclude<R, Context.Tag.Identifier<T>>, E>
444
+ } = internal.provideService
445
+
446
+ /**
447
+ * @since 1.0.0
448
+ * @category combinators
449
+ */
450
+ export const provideServiceEffect: {
451
+ <T extends Context.Tag<any, any>, R1, E1>(
452
+ tag: T,
453
+ effect: Effect.Effect<R1, E1, Context.Tag.Service<T>>
454
+ ): <R, E>(self: Router<R, E>) => Router<R1 | Exclude<R, Context.Tag.Identifier<T>>, E1 | E>
455
+ <R, E, T extends Context.Tag<any, any>, R1, E1>(
456
+ self: Router<R, E>,
457
+ tag: T,
458
+ effect: Effect.Effect<R1, E1, Context.Tag.Service<T>>
459
+ ): Router<R1 | Exclude<R, Context.Tag.Identifier<T>>, E | E1>
460
+ } = internal.provideServiceEffect
@@ -30,7 +30,7 @@ const clientProto = {
30
30
  }
31
31
 
32
32
  const setProto = <R, E, A>(
33
- f: (request: ClientRequest.ClientRequest.NonEffectBody) => Effect.Effect<R, E, A>
33
+ f: (request: ClientRequest.ClientRequest) => Effect.Effect<R, E, A>
34
34
  ) => {
35
35
  Object.setPrototypeOf(f, clientProto)
36
36
  return f as Client.Client<R, E, A>
@@ -65,7 +65,7 @@ export const fetch = (
65
65
  })),
66
66
  (url) =>
67
67
  Effect.suspend(() => {
68
- const headers = new Headers([...request.headers] as any)
68
+ const headers = new Headers(request.headers)
69
69
  const send = (body: BodyInit | undefined) =>
70
70
  Effect.map(
71
71
  Effect.tryPromise({
@@ -118,20 +118,20 @@ export const layer = Layer.succeed(tag, fetch())
118
118
 
119
119
  /** @internal */
120
120
  export const catchTag: {
121
- <E extends { _tag: string }, K extends E["_tag"] & string, R1, E1, A1>(
121
+ <K extends (E extends { _tag: string } ? E["_tag"] : never), E, R1, E1, A1>(
122
122
  tag: K,
123
123
  f: (e: Extract<E, { _tag: K }>) => Effect.Effect<R1, E1, A1>
124
124
  ): <R, A>(
125
125
  self: Client.Client<R, E, A>
126
126
  ) => Client.Client<R1 | R, E1 | Exclude<E, { _tag: K }>, A1 | A>
127
- <R, E extends { _tag: string }, A, K extends E["_tag"] & string, E1, R1, A1>(
127
+ <R, E, A, K extends (E extends { _tag: string } ? E["_tag"] : never), R1, E1, A1>(
128
128
  self: Client.Client<R, E, A>,
129
129
  tag: K,
130
130
  f: (e: Extract<E, { _tag: K }>) => Effect.Effect<R1, E1, A1>
131
131
  ): Client.Client<R1 | R, E1 | Exclude<E, { _tag: K }>, A1 | A>
132
132
  } = dual(
133
133
  3,
134
- <R, E extends { _tag: string }, A, K extends E["_tag"] & string, E1, R1, A1>(
134
+ <R, E, A, K extends (E extends { _tag: string } ? E["_tag"] : never), R1, E1, A1>(
135
135
  self: Client.Client<R, E, A>,
136
136
  tag: K,
137
137
  f: (e: Extract<E, { _tag: K }>) => Effect.Effect<R1, E1, A1>
@@ -142,12 +142,11 @@ export const catchTag: {
142
142
  /** @internal */
143
143
  export const catchTags: {
144
144
  <
145
- E extends { _tag: string },
146
- Cases extends {
147
- [K in E["_tag"]]+?:
148
- | ((error: Extract<E, { _tag: K }>) => Effect.Effect<any, any, any>)
149
- | undefined
150
- }
145
+ E,
146
+ Cases
147
+ extends (E extends { _tag: string }
148
+ ? { [K in E["_tag"]]+?: ((error: Extract<E, { _tag: K }>) => Effect.Effect<any, any, any>) }
149
+ : {})
151
150
  >(
152
151
  cases: Cases
153
152
  ): <R, A>(
@@ -179,11 +178,10 @@ export const catchTags: {
179
178
  R,
180
179
  E extends { _tag: string },
181
180
  A,
182
- Cases extends {
183
- [K in E["_tag"]]+?:
184
- | ((error: Extract<E, { _tag: K }>) => Effect.Effect<any, any, any>)
185
- | undefined
186
- }
181
+ Cases
182
+ extends (E extends { _tag: string }
183
+ ? { [K in E["_tag"]]+?: ((error: Extract<E, { _tag: K }>) => Effect.Effect<any, any, any>) }
184
+ : {})
187
185
  >(
188
186
  self: Client.Client<R, E, A>,
189
187
  cases: Cases
@@ -216,11 +214,10 @@ export const catchTags: {
216
214
  R,
217
215
  E extends { _tag: string },
218
216
  A,
219
- Cases extends {
220
- [K in E["_tag"]]+?:
221
- | ((error: Extract<E, { _tag: K }>) => Effect.Effect<any, any, any>)
222
- | undefined
223
- }
217
+ Cases
218
+ extends (E extends { _tag: string }
219
+ ? { [K in E["_tag"]]+?: ((error: Extract<E, { _tag: K }>) => Effect.Effect<any, any, any>) }
220
+ : {})
224
221
  >(
225
222
  self: Client.Client<R, E, A>,
226
223
  cases: Cases