@fncts/http 0.0.0

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 (211) hide show
  1. package/Body/api.d.ts +63 -0
  2. package/Body/definition.d.ts +53 -0
  3. package/Body.d.ts +2 -0
  4. package/BodyError.d.ts +30 -0
  5. package/Headers.d.ts +42 -0
  6. package/HttpApp.d.ts +46 -0
  7. package/IncomingMessage/api.d.ts +19 -0
  8. package/IncomingMessage/definition.d.ts +21 -0
  9. package/IncomingMessage.d.ts +2 -0
  10. package/Method.d.ts +2 -0
  11. package/Middleware.d.ts +24 -0
  12. package/QueryParams.d.ts +7 -0
  13. package/RequestError.d.ts +10 -0
  14. package/ResponseError.d.ts +14 -0
  15. package/Route/api.d.ts +37 -0
  16. package/Route/definition.d.ts +35 -0
  17. package/Route/internal.d.ts +17 -0
  18. package/Route.d.ts +2 -0
  19. package/RouteNotFound.d.ts +8 -0
  20. package/Router/api.d.ts +96 -0
  21. package/Router/definition.d.ts +28 -0
  22. package/Router/internal.d.ts +26 -0
  23. package/Router.d.ts +2 -0
  24. package/Server.d.ts +53 -0
  25. package/ServerError.d.ts +9 -0
  26. package/ServerRequest/api.d.ts +6 -0
  27. package/ServerRequest/definition.d.ts +30 -0
  28. package/ServerRequest/internal.d.ts +33 -0
  29. package/ServerRequest.d.ts +2 -0
  30. package/ServerResponse/api.d.ts +69 -0
  31. package/ServerResponse/definition.d.ts +30 -0
  32. package/ServerResponse.d.ts +2 -0
  33. package/Socket.d.ts +107 -0
  34. package/UrlParams.d.ts +21 -0
  35. package/_cjs/Body/api.cjs +93 -0
  36. package/_cjs/Body/api.cjs.map +1 -0
  37. package/_cjs/Body/definition.cjs +71 -0
  38. package/_cjs/Body/definition.cjs.map +1 -0
  39. package/_cjs/Body.cjs +28 -0
  40. package/_cjs/Body.cjs.map +1 -0
  41. package/_cjs/BodyError.cjs +43 -0
  42. package/_cjs/BodyError.cjs.map +1 -0
  43. package/_cjs/Headers.cjs +87 -0
  44. package/_cjs/Headers.cjs.map +1 -0
  45. package/_cjs/HttpApp.cjs +109 -0
  46. package/_cjs/HttpApp.cjs.map +1 -0
  47. package/_cjs/IncomingMessage/api.cjs +35 -0
  48. package/_cjs/IncomingMessage/api.cjs.map +1 -0
  49. package/_cjs/IncomingMessage/definition.cjs +20 -0
  50. package/_cjs/IncomingMessage/definition.cjs.map +1 -0
  51. package/_cjs/IncomingMessage.cjs +28 -0
  52. package/_cjs/IncomingMessage.cjs.map +1 -0
  53. package/_cjs/Method.cjs +10 -0
  54. package/_cjs/Method.cjs.map +1 -0
  55. package/_cjs/Middleware.cjs +16 -0
  56. package/_cjs/Middleware.cjs.map +1 -0
  57. package/_cjs/QueryParams.cjs +6 -0
  58. package/_cjs/QueryParams.cjs.map +1 -0
  59. package/_cjs/RequestError.cjs +19 -0
  60. package/_cjs/RequestError.cjs.map +1 -0
  61. package/_cjs/ResponseError.cjs +27 -0
  62. package/_cjs/ResponseError.cjs.map +1 -0
  63. package/_cjs/Route/api.cjs +61 -0
  64. package/_cjs/Route/api.cjs.map +1 -0
  65. package/_cjs/Route/definition.cjs +35 -0
  66. package/_cjs/Route/definition.cjs.map +1 -0
  67. package/_cjs/Route/internal.cjs +31 -0
  68. package/_cjs/Route/internal.cjs.map +1 -0
  69. package/_cjs/Route.cjs +28 -0
  70. package/_cjs/Route.cjs.map +1 -0
  71. package/_cjs/RouteNotFound.cjs +18 -0
  72. package/_cjs/RouteNotFound.cjs.map +1 -0
  73. package/_cjs/Router/api.cjs +141 -0
  74. package/_cjs/Router/api.cjs.map +1 -0
  75. package/_cjs/Router/definition.cjs +22 -0
  76. package/_cjs/Router/definition.cjs.map +1 -0
  77. package/_cjs/Router/internal.cjs +85 -0
  78. package/_cjs/Router/internal.cjs.map +1 -0
  79. package/_cjs/Router.cjs +28 -0
  80. package/_cjs/Router.cjs.map +1 -0
  81. package/_cjs/Server.cjs +53 -0
  82. package/_cjs/Server.cjs.map +1 -0
  83. package/_cjs/ServerError.cjs +21 -0
  84. package/_cjs/ServerError.cjs.map +1 -0
  85. package/_cjs/ServerRequest/api.cjs +14 -0
  86. package/_cjs/ServerRequest/api.cjs.map +1 -0
  87. package/_cjs/ServerRequest/definition.cjs +29 -0
  88. package/_cjs/ServerRequest/definition.cjs.map +1 -0
  89. package/_cjs/ServerRequest/internal.cjs +77 -0
  90. package/_cjs/ServerRequest/internal.cjs.map +1 -0
  91. package/_cjs/ServerRequest.cjs +28 -0
  92. package/_cjs/ServerRequest.cjs.map +1 -0
  93. package/_cjs/ServerResponse/api.cjs +157 -0
  94. package/_cjs/ServerResponse/api.cjs.map +1 -0
  95. package/_cjs/ServerResponse/definition.cjs +44 -0
  96. package/_cjs/ServerResponse/definition.cjs.map +1 -0
  97. package/_cjs/ServerResponse.cjs +28 -0
  98. package/_cjs/ServerResponse.cjs.map +1 -0
  99. package/_cjs/Socket.cjs +221 -0
  100. package/_cjs/Socket.cjs.map +1 -0
  101. package/_cjs/UrlParams.cjs +34 -0
  102. package/_cjs/UrlParams.cjs.map +1 -0
  103. package/_cjs/global.cjs +6 -0
  104. package/_cjs/global.cjs.map +1 -0
  105. package/_mjs/Body/api.mjs +78 -0
  106. package/_mjs/Body/api.mjs.map +1 -0
  107. package/_mjs/Body/definition.mjs +58 -0
  108. package/_mjs/Body/definition.mjs.map +1 -0
  109. package/_mjs/Body.mjs +5 -0
  110. package/_mjs/Body.mjs.map +1 -0
  111. package/_mjs/BodyError.mjs +33 -0
  112. package/_mjs/BodyError.mjs.map +1 -0
  113. package/_mjs/Headers.mjs +75 -0
  114. package/_mjs/Headers.mjs.map +1 -0
  115. package/_mjs/HttpApp.mjs +96 -0
  116. package/_mjs/HttpApp.mjs.map +1 -0
  117. package/_mjs/IncomingMessage/api.mjs +25 -0
  118. package/_mjs/IncomingMessage/api.mjs.map +1 -0
  119. package/_mjs/IncomingMessage/definition.mjs +13 -0
  120. package/_mjs/IncomingMessage/definition.mjs.map +1 -0
  121. package/_mjs/IncomingMessage.mjs +5 -0
  122. package/_mjs/IncomingMessage.mjs.map +1 -0
  123. package/_mjs/Method.mjs +4 -0
  124. package/_mjs/Method.mjs.map +1 -0
  125. package/_mjs/Middleware.mjs +9 -0
  126. package/_mjs/Middleware.mjs.map +1 -0
  127. package/_mjs/QueryParams.mjs +2 -0
  128. package/_mjs/QueryParams.mjs.map +1 -0
  129. package/_mjs/RequestError.mjs +12 -0
  130. package/_mjs/RequestError.mjs.map +1 -0
  131. package/_mjs/ResponseError.mjs +20 -0
  132. package/_mjs/ResponseError.mjs.map +1 -0
  133. package/_mjs/Route/api.mjs +48 -0
  134. package/_mjs/Route/api.mjs.map +1 -0
  135. package/_mjs/Route/definition.mjs +25 -0
  136. package/_mjs/Route/definition.mjs.map +1 -0
  137. package/_mjs/Route/internal.mjs +21 -0
  138. package/_mjs/Route/internal.mjs.map +1 -0
  139. package/_mjs/Route.mjs +5 -0
  140. package/_mjs/Route.mjs.map +1 -0
  141. package/_mjs/RouteNotFound.mjs +11 -0
  142. package/_mjs/RouteNotFound.mjs.map +1 -0
  143. package/_mjs/Router/api.mjs +123 -0
  144. package/_mjs/Router/api.mjs.map +1 -0
  145. package/_mjs/Router/definition.mjs +15 -0
  146. package/_mjs/Router/definition.mjs.map +1 -0
  147. package/_mjs/Router/internal.mjs +76 -0
  148. package/_mjs/Router/internal.mjs.map +1 -0
  149. package/_mjs/Router.mjs +5 -0
  150. package/_mjs/Router.mjs.map +1 -0
  151. package/_mjs/Server.mjs +41 -0
  152. package/_mjs/Server.mjs.map +1 -0
  153. package/_mjs/ServerError.mjs +14 -0
  154. package/_mjs/ServerError.mjs.map +1 -0
  155. package/_mjs/ServerRequest/api.mjs +8 -0
  156. package/_mjs/ServerRequest/api.mjs.map +1 -0
  157. package/_mjs/ServerRequest/definition.mjs +20 -0
  158. package/_mjs/ServerRequest/definition.mjs.map +1 -0
  159. package/_mjs/ServerRequest/internal.mjs +68 -0
  160. package/_mjs/ServerRequest/internal.mjs.map +1 -0
  161. package/_mjs/ServerRequest.mjs +5 -0
  162. package/_mjs/ServerRequest.mjs.map +1 -0
  163. package/_mjs/ServerResponse/api.mjs +138 -0
  164. package/_mjs/ServerResponse/api.mjs.map +1 -0
  165. package/_mjs/ServerResponse/definition.mjs +34 -0
  166. package/_mjs/ServerResponse/definition.mjs.map +1 -0
  167. package/_mjs/ServerResponse.mjs +5 -0
  168. package/_mjs/ServerResponse.mjs.map +1 -0
  169. package/_mjs/Socket.mjs +202 -0
  170. package/_mjs/Socket.mjs.map +1 -0
  171. package/_mjs/UrlParams.mjs +25 -0
  172. package/_mjs/UrlParams.mjs.map +1 -0
  173. package/_mjs/global.mjs +2 -0
  174. package/_mjs/global.mjs.map +1 -0
  175. package/_src/Body/api.ts +106 -0
  176. package/_src/Body/definition.ts +74 -0
  177. package/_src/Body.ts +5 -0
  178. package/_src/BodyError.ts +38 -0
  179. package/_src/Headers.ts +84 -0
  180. package/_src/HttpApp.ts +129 -0
  181. package/_src/IncomingMessage/api.ts +25 -0
  182. package/_src/IncomingMessage/definition.ts +20 -0
  183. package/_src/IncomingMessage.ts +5 -0
  184. package/_src/Method.ts +5 -0
  185. package/_src/Middleware.ts +29 -0
  186. package/_src/QueryParams.ts +7 -0
  187. package/_src/RequestError.ts +13 -0
  188. package/_src/ResponseError.ts +25 -0
  189. package/_src/Route/api.ts +53 -0
  190. package/_src/Route/definition.ts +40 -0
  191. package/_src/Route/internal.ts +25 -0
  192. package/_src/Route.ts +5 -0
  193. package/_src/RouteNotFound.ts +14 -0
  194. package/_src/Router/api.ts +161 -0
  195. package/_src/Router/definition.ts +29 -0
  196. package/_src/Router/internal.ts +95 -0
  197. package/_src/Router.ts +5 -0
  198. package/_src/Server.ts +88 -0
  199. package/_src/ServerError.ts +14 -0
  200. package/_src/ServerRequest/api.ts +10 -0
  201. package/_src/ServerRequest/definition.ts +33 -0
  202. package/_src/ServerRequest/internal.ts +106 -0
  203. package/_src/ServerRequest.ts +5 -0
  204. package/_src/ServerResponse/api.ts +177 -0
  205. package/_src/ServerResponse/definition.ts +51 -0
  206. package/_src/ServerResponse.ts +5 -0
  207. package/_src/Socket.ts +294 -0
  208. package/_src/UrlParams.ts +28 -0
  209. package/_src/global.ts +2 -0
  210. package/global.d.ts +1 -0
  211. package/package.json +27 -0
@@ -0,0 +1,123 @@
1
+ const fileName_1 = "(@fncts/http) src/Router/api.ts";
2
+ import * as tsplus_module_1 from "@fncts/base/collection/immutable/Conc/api/empty";
3
+ import * as tsplus_module_2 from "@fncts/base/collection/immutable/Conc/api";
4
+ import * as tsplus_module_3 from "@fncts/base/collection/immutable/Conc/constructors";
5
+ import * as tsplus_module_4 from "@fncts/base/data/Maybe/constructors";
6
+ import * as tsplus_module_5 from "@fncts/base/data/Maybe/api";
7
+ import * as tsplus_module_6 from "@fncts/io/IO/api";
8
+ import * as tsplus_module_7 from "@fncts/io/IO/api/environment";
9
+ export const use = use_1;
10
+ export const concat = concat_1;
11
+ export const prefixAll = prefixAll_1;
12
+ import { RouteImpl } from "../Route/internal.mjs";
13
+ import { RouterInternal } from "./internal.mjs";
14
+ /**
15
+ * @tsplus static fncts.http.RouterOps empty
16
+ */
17
+ export const empty = /*#__PURE__*/new RouterInternal( /*#__PURE__*/tsplus_module_1.empty(), /*#__PURE__*/tsplus_module_1.empty());
18
+ export function route(method) {
19
+ return (path, handler) => self => new RouterInternal(tsplus_module_2.append(new RouteImpl(method, path, handler))(self.routes), self.mounts);
20
+ }
21
+ /**
22
+ * @tsplus pipeable fncts.http.Router get
23
+ * @tsplus static fncts.http.RouterOps get
24
+ */
25
+ export const get = /*#__PURE__*/route("GET");
26
+ /**
27
+ * @tsplus pipeable fncts.http.Router post
28
+ * @tsplus static fncts.http.RouterOps post
29
+ */
30
+ export const post = /*#__PURE__*/route("POST");
31
+ /**
32
+ * @tsplus pipeable fncts.http.Router put
33
+ * @tsplus static fncts.http.RouterOps put
34
+ */
35
+ export const put = /*#__PURE__*/route("PUT");
36
+ /**
37
+ * @tsplus pipeable fncts.http.Router patch
38
+ * @tsplus static fncts.http.RouterOps patch
39
+ */
40
+ export const patch = /*#__PURE__*/route("PATCH");
41
+ /**
42
+ * @tsplus pipeable fncts.http.Router del
43
+ * @tsplus static fncts.http.RouterOps del
44
+ */
45
+ export const del = /*#__PURE__*/route("DELETE");
46
+ /**
47
+ * @tsplus pipeable fncts.http.Router head
48
+ * @tsplus static fncts.http.RouterOps head
49
+ */
50
+ export const head = /*#__PURE__*/route("HEAD");
51
+ /**
52
+ * @tsplus pipeable fncts.http.Router options
53
+ * @tsplus static fncts.http.RouterOps options
54
+ */
55
+ export const options = /*#__PURE__*/route("OPTIONS");
56
+ /**
57
+ * @tsplus pipeable fncts.http.Router use
58
+ * @tsplus static fncts.http.RouterOps use
59
+ */
60
+ function use_1(f, __tsplusTrace) {
61
+ return self => new RouterInternal(tsplus_module_2.map(route => new RouteImpl(route.method, route.path, f(route.handler), route.prefix))(self.routes), tsplus_module_2.map(({
62
+ prefix,
63
+ httpApp
64
+ }) => ({
65
+ prefix,
66
+ httpApp: f(httpApp)
67
+ }))(self.mounts));
68
+ }
69
+ /**
70
+ * @tsplus static fncts.http.RouterOps from
71
+ */
72
+ export function from(routes) {
73
+ return new RouterInternal(tsplus_module_3.from(routes), tsplus_module_1.empty());
74
+ }
75
+ /**
76
+ * @tsplus pipeable fncts.http.Router concat
77
+ */
78
+ function concat_1(that) {
79
+ return self => new RouterInternal(tsplus_module_2.concat(that.routes)(self.routes), self.mounts);
80
+ }
81
+ function removeTrailingSlash(path) {
82
+ return path.endsWith("/") ? path.slice(0, -1) : path;
83
+ }
84
+ /**
85
+ * @tsplus pipeable fncts.http.Router prefixAll
86
+ */
87
+ function prefixAll_1(prefix) {
88
+ return self => {
89
+ prefix = removeTrailingSlash(prefix);
90
+ return new RouterInternal(tsplus_module_2.map(route => new RouteImpl(route.method, route.path === "/" ? prefix : prefix + route.path, route.handler, tsplus_module_5.orElse(() => tsplus_module_4.just(prefix, fileName_1 + ":124:60"))(tsplus_module_5.map(_ => prefix + _)(route.prefix))))(self.routes), tsplus_module_2.map(({
91
+ prefix: path,
92
+ httpApp
93
+ }) => ({
94
+ prefix: path === "/" ? prefix : prefix + path,
95
+ httpApp
96
+ }))(self.mounts));
97
+ };
98
+ }
99
+ /**
100
+ * @tsplus pipeable fncts.http.Router mount
101
+ */
102
+ export function mount(path, that) {
103
+ return self => concat_1(prefixAll_1(path)(that))(self);
104
+ }
105
+ /**
106
+ * @tsplus pipeable fncts.http.Router catchAll
107
+ */
108
+ export function catchAll(f, __tsplusTrace) {
109
+ return self => use_1(handler => tsplus_module_6.catchAll(f, __tsplusTrace)(handler), __tsplusTrace)(self);
110
+ }
111
+ /**
112
+ * @tsplus pipeable fncts.http.Router catchAllCause
113
+ */
114
+ export function catchAllCause(f, __tsplusTrace) {
115
+ return self => use_1(handler => tsplus_module_6.catchAllCause(f, __tsplusTrace)(handler), __tsplusTrace)(self);
116
+ }
117
+ /**
118
+ * @tsplus pipeable fncts.http.Router provideService
119
+ */
120
+ export function provideService(service, tag, __tsplusTrace) {
121
+ return self => use_1(handler => tsplus_module_7.provideSomeService(service, tag, __tsplusTrace)(handler), __tsplusTrace)(self);
122
+ }
123
+ //# sourceMappingURL=api.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.mjs","names":["use","use_1","concat","concat_1","prefixAll","prefixAll_1","RouteImpl","RouterInternal","empty","tsplus_module_1","route","method","path","handler","self","tsplus_module_2","append","routes","mounts","get","post","put","patch","del","head","options","f","__tsplusTrace","map","prefix","httpApp","from","tsplus_module_3","that","removeTrailingSlash","endsWith","slice","tsplus_module_5","orElse","tsplus_module_4","just","fileName_1","_","mount","catchAll","tsplus_module_6","catchAllCause","provideService","service","tag","tsplus_module_7","provideSomeService"],"sources":["../../_src/Router/api.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ var _a;
2
+ import { External } from "@fncts/io/IO";
3
+ export const RouterTypeId = /*#__PURE__*/Symbol.for("fncts.http.Router");
4
+ /**
5
+ * @tsplus type fncts.http.Router
6
+ * @tsplus companion fncts.http.RouterOps
7
+ */
8
+ export class Router extends External {
9
+ constructor() {
10
+ super(...arguments);
11
+ this[_a] = RouterTypeId;
12
+ }
13
+ }
14
+ _a = RouterTypeId;
15
+ //# sourceMappingURL=definition.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.mjs","names":["External","RouterTypeId","Symbol","for","Router","constructor","_a"],"sources":["../../_src/Router/definition.ts"],"sourcesContent":[null],"mappings":";AAMA,SAASA,QAAQ,QAAQ,cAAc;AAEvC,OAAO,MAAMC,YAAY,gBAAGC,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;AAG3D;;;;AAIA,OAAM,MAAgBC,MACpB,SAAQJ,QAAqE;EAD/EK,YAAA;;IAIW,KAAAC,EAAA,CAAc,GAAiBL,YAAY;EAKtD;;KALYA,YAAY"}
@@ -0,0 +1,76 @@
1
+ const fileName_1 = "(@fncts/http) src/Router/internal.ts";
2
+ import * as tsplus_module_1 from "@fncts/base/data/Maybe/constructors";
3
+ import * as tsplus_module_2 from "@fncts/base/collection/immutable/Conc/api";
4
+ import * as tsplus_module_3 from "@fncts/io/FiberRef/unsafe";
5
+ import * as tsplus_module_4 from "@fncts/http/ServerRequest/definition";
6
+ import * as tsplus_module_5 from "@fncts/base/data/Environment/api";
7
+ import * as tsplus_module_6 from "@fncts/http/Route/definition";
8
+ import * as tsplus_module_7 from "@fncts/io/FiberRef/operations";
9
+ import * as tsplus_module_8 from "@fncts/io/IO/api";
10
+ import * as tsplus_module_9 from "@fncts/base/data/Maybe/definition";
11
+ import * as FindMyWay from "find-my-way-ts";
12
+ import { RouteContextImpl, RouteImpl } from "../Route/internal.mjs";
13
+ import { RouteNotFound } from "../RouteNotFound.mjs";
14
+ import { Router } from "./definition.mjs";
15
+ export class RouterInternal extends Router {
16
+ constructor(routes, mounts) {
17
+ super();
18
+ this.routes = routes;
19
+ this.mounts = mounts;
20
+ this.httpApp = toHttpApp(this);
21
+ }
22
+ get toIO() {
23
+ return this.httpApp;
24
+ }
25
+ }
26
+ function toHttpApp(self) {
27
+ const router = FindMyWay.make();
28
+ const mounts = tsplus_module_2.map(({
29
+ prefix,
30
+ httpApp,
31
+ options
32
+ }) => [prefix, new RouteContextImpl(new RouteImpl("*", options?.inclduePrefix ? `${prefix}/*` : "/*", httpApp, options?.inclduePrefix ? tsplus_module_1.nothing(fileName_1 + ":43:45") : tsplus_module_1.just(prefix, fileName_1 + ":43:54")), {}, {}), options])(self.mounts);
33
+ const mountsLen = mounts.length;
34
+ tsplus_module_2.forEach(route => {
35
+ if (route.method === "*") {
36
+ router.all(route.path, route);
37
+ } else {
38
+ router.on(route.method, route.path, route);
39
+ }
40
+ })(self.routes);
41
+ return tsplus_module_8.withFiberRuntime(fiber => {
42
+ let context = fiber.getFiberRef(tsplus_module_3.currentEnvironment);
43
+ const request = tsplus_module_5.unsafeGet(tsplus_module_4.ServerRequestTag)(context);
44
+ if (mountsLen > 0) {
45
+ for (let i = 0; i < mountsLen; i++) {
46
+ const [path, routeContext, options] = tsplus_module_2.unsafeGet(i)(mounts);
47
+ if (request.url.startsWith(path)) {
48
+ context = tsplus_module_5.add(routeContext, tsplus_module_6.RouteContextTag)(context);
49
+ if (options?.inclduePrefix !== true) {
50
+ context = tsplus_module_5.add(sliceRequestUrl(request, path), tsplus_module_4.ServerRequestTag)(context);
51
+ }
52
+ return tsplus_module_7.locally(tsplus_module_3.currentEnvironment, context, fileName_1 + ":70:53")(routeContext.route.handler);
53
+ }
54
+ }
55
+ }
56
+ let result = router.find(request.method, request.url);
57
+ if (result === undefined && request.method === "HEAD") {
58
+ result = router.find("GET", request.url);
59
+ }
60
+ if (result === undefined) {
61
+ return tsplus_module_8.failNow(new RouteNotFound(request), fileName_1 + ":80:24");
62
+ }
63
+ const route = result.handler;
64
+ if (tsplus_module_9.isJust(route.prefix)) {
65
+ context = tsplus_module_5.add(sliceRequestUrl(request, route.prefix.value), tsplus_module_4.ServerRequestTag)(context);
66
+ }
67
+ return tsplus_module_7.locally(tsplus_module_3.currentEnvironment, context, fileName_1 + ":86:47")(route.handler);
68
+ }, fileName_1 + ":59:29");
69
+ }
70
+ function sliceRequestUrl(request, prefix) {
71
+ const prefixLen = prefix.length;
72
+ return request.modify({
73
+ url: request.url.length <= prefixLen ? "/" : request.url.slice(prefixLen)
74
+ });
75
+ }
76
+ //# sourceMappingURL=internal.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.mjs","names":["FindMyWay","RouteContextImpl","RouteImpl","RouteNotFound","Router","RouterInternal","constructor","routes","mounts","httpApp","toHttpApp","toIO","self","router","make","tsplus_module_2","map","prefix","options","inclduePrefix","tsplus_module_1","nothing","fileName_1","just","mountsLen","length","forEach","route","method","all","path","on","tsplus_module_8","withFiberRuntime","fiber","context","getFiberRef","tsplus_module_3","currentEnvironment","request","tsplus_module_5","unsafeGet","tsplus_module_4","ServerRequestTag","i","routeContext","url","startsWith","add","tsplus_module_6","RouteContextTag","sliceRequestUrl","tsplus_module_7","locally","handler","result","find","undefined","failNow","tsplus_module_9","isJust","value","prefixLen","modify","slice"],"sources":["../../_src/Router/internal.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /* eslint-disable simple-import-sort/exports */
2
+ // codegen:start { preset: barrel, include: ./Router/*.ts, exclude: Router/*(*internal).ts }
3
+ export * from "./Router/definition.mjs";
4
+ export * from "./Router/api.mjs";
5
+ //# sourceMappingURL=Router.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Router.mjs","names":[],"sources":["../_src/Router.ts"],"sourcesContent":[null],"mappings":"AAAA;AACA;AACA,cAAc,yBAAwB;AACtC,cAAc,kBAAiB"}
@@ -0,0 +1,41 @@
1
+ var _a;
2
+ const fileName_1 = "(@fncts/http) src/Server.ts";
3
+ import * as tsplus_module_1 from "@fncts/base/data/Tag/constructors";
4
+ import * as tsplus_module_2 from "@fncts/io/IO/api/environment";
5
+ import * as tsplus_module_3 from "@fncts/io/IO/api";
6
+ import * as tsplus_module_4 from "@fncts/io/Layer/api";
7
+ export const ServerTypeId = /*#__PURE__*/Symbol.for("fncts.http.Server");
8
+ /**
9
+ * @tsplus type fncts.http.Server
10
+ * @tsplus companion fncts.http.ServerOps
11
+ */
12
+ export class Server {
13
+ constructor() {
14
+ this[_a] = ServerTypeId;
15
+ }
16
+ }
17
+ _a = ServerTypeId;
18
+ /**
19
+ * @tsplus static fncts.http.ServerOps Tag
20
+ */
21
+ const ServerTag_1 = /*#__PURE__*/tsplus_module_1.makeTag();
22
+ export const ServerTag = ServerTag_1;
23
+ /**
24
+ * @tsplus static fncts.http.ServerOps __call
25
+ */
26
+ export function make(options) {
27
+ return new class extends Server {
28
+ constructor() {
29
+ super(...arguments);
30
+ this.serve = options.serve;
31
+ this.address = options.address;
32
+ }
33
+ }();
34
+ }
35
+ export function serve(middleware) {
36
+ return httpApp => tsplus_module_4.scopedDiscard(() => tsplus_module_3.flatMap(server => server.serve(httpApp, middleware), fileName_1 + ":69:55")(tsplus_module_2.service(ServerTag_1, fileName_1 + ":69:35")), fileName_1 + ":69:24");
37
+ }
38
+ export function serveIO(middleware) {
39
+ return httpApp => tsplus_module_3.flatMap(server => server.serve(httpApp, middleware), fileName_1 + ":87:53")(tsplus_module_2.service(ServerTag_1, fileName_1 + ":87:33"));
40
+ }
41
+ //# sourceMappingURL=Server.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Server.mjs","names":["ServerTypeId","Symbol","for","Server","constructor","_a","ServerTag_1","tsplus_module_1","makeTag","ServerTag","make","options","serve","address","middleware","httpApp","tsplus_module_4","scopedDiscard","tsplus_module_3","flatMap","server","fileName_1","tsplus_module_2","service","serveIO"],"sources":["../_src/Server.ts"],"sourcesContent":[null],"mappings":";;;;;;AAIA,OAAO,MAAMA,YAAY,gBAAGC,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;AAG3D;;;;AAIA,OAAM,MAAgBC,MAAM;EAA5BC,YAAA;IACW,KAAAC,EAAA,CAAc,GAAiBL,YAAY;EAOtD;;KAPYA,YAAY;AASxB;;;AAGO,MAAMM,WAAA,gBAAYC,eAAA,CAAAC,OAAA,EAAa;aAAzBC,SAAS,GAAAH,WAAA;AAetB;;;AAGA,OAAM,SAAUI,IAAIA,CAACC,OAGpB;EACC,OAAO,IAAK,cAAcR,MAAM;IAApBC,YAAA;;MACV,KAAAQ,KAAK,GAAGD,OAAO,CAACC,KAAK;MACrB,KAAAC,OAAO,GAAGF,OAAO,CAACE,OAAO;IAC3B;GAAC,CAAC,CAAE;AACN;AAcA,OAAM,SAAUD,KAAKA,CACnBE,UAA0C;EAE1C,OAAQC,OAAO,IACbC,eAAA,CAAAC,aAAA,OAAoBC,eAAA,CAAAC,OAAA,CAAgCC,MAAM,IAAKA,MAAM,CAACR,KAAK,CAACG,OAAO,EAAED,UAAW,CAAC,EAAAO,UAAA,aAA7EC,eAAA,CAAAC,OAAA,CAAAjB,WAAA,EAAAe,UAAA,YAAsB,CAAwD,EAAAA,UAAA,YAAQ;AAC9G;AAcA,OAAM,SAAUG,OAAOA,CACrBV,UAA0C;EAE1C,OAAQC,OAAO,IAAKG,eAAA,CAAAC,OAAA,CAAgCC,MAAM,IAAKA,MAAM,CAACR,KAAK,CAACG,OAAO,EAAED,UAAW,CAAC,EAAAO,UAAA,aAA7EC,eAAA,CAAAC,OAAA,CAAAjB,WAAA,EAAAe,UAAA,YAAsB,CAA+D;AAC3G"}
@@ -0,0 +1,14 @@
1
+ var _a;
2
+ import { Runtime } from "@fncts/base/data/FiberId";
3
+ import { globalValue } from "@fncts/base/data/Global";
4
+ export const clientAbortFiberId = /*#__PURE__*/globalValue("fncts.http.ServerError.clientAbortFiberId", () => new Runtime(-499, 0));
5
+ export const ServeErrorTypeId = /*#__PURE__*/Symbol.for("fncts.http.ServeError");
6
+ export class ServeError extends Error {
7
+ constructor(error) {
8
+ super();
9
+ this.error = error;
10
+ this[_a] = ServeErrorTypeId;
11
+ }
12
+ }
13
+ _a = ServeErrorTypeId;
14
+ //# sourceMappingURL=ServerError.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerError.mjs","names":["Runtime","globalValue","clientAbortFiberId","ServeErrorTypeId","Symbol","for","ServeError","Error","constructor","error","_a"],"sources":["../_src/ServerError.ts"],"sourcesContent":[null],"mappings":";AAAA,SAASA,OAAO,QAAQ,0BAA0B;AAClD,SAASC,WAAW,QAAQ,yBAAyB;AAErD,OAAO,MAAMC,kBAAkB,gBAAGD,WAAW,CAAC,2CAA2C,EAAE,MAAM,IAAID,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAEtH,OAAO,MAAMG,gBAAgB,gBAAGC,MAAM,CAACC,GAAG,CAAC,uBAAuB,CAAC;AAGnE,OAAM,MAAOC,UAAW,SAAQC,KAAK;EAEnCC,YAAqBC,KAAe;IAClC,KAAK,EAAE;IADY,KAAAA,KAAK,GAALA,KAAK;IADjB,KAAAC,EAAA,CAAkB,GAAqBP,gBAAgB;EAGhE;;KAHUA,gBAAgB"}
@@ -0,0 +1,8 @@
1
+ import { ServerRequestImpl } from "./internal.mjs";
2
+ /**
3
+ * @tsplus static fncts.http.ServerRequestOps fromWeb
4
+ */
5
+ export function fromWeb(request) {
6
+ return new ServerRequestImpl(request, request.url);
7
+ }
8
+ //# sourceMappingURL=api.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.mjs","names":["ServerRequestImpl","fromWeb","request","url"],"sources":["../../_src/ServerRequest/api.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,iBAAiB,QAAQ,gBAAe;AAEjD;;;AAGA,OAAM,SAAUC,OAAOA,CAACC,OAA2B;EACjD,OAAO,IAAIF,iBAAiB,CAACE,OAAO,EAAEA,OAAO,CAACC,GAAG,CAAC;AACpD"}
@@ -0,0 +1,20 @@
1
+ var _a;
2
+ import * as tsplus_module_1 from "@fncts/base/data/Tag/constructors";
3
+ import { IncomingMessage } from "../IncomingMessage/definition.mjs";
4
+ export const ServerRequestTypeId = /*#__PURE__*/Symbol.for("fncts.http.ServerRequest");
5
+ /**
6
+ * @tsplus type fncts.http.ServerRequest
7
+ * @tsplus companion fncts.http.ServerRequestOps
8
+ */
9
+ export class ServerRequest extends IncomingMessage {
10
+ constructor() {
11
+ super(...arguments);
12
+ this[_a] = ServerRequestTypeId;
13
+ }
14
+ }
15
+ _a = ServerRequestTypeId;
16
+ /**
17
+ * @tsplus static fncts.http.ServerRequestOps Tag
18
+ */
19
+ export const ServerRequestTag = /*#__PURE__*/tsplus_module_1.makeTag();
20
+ //# sourceMappingURL=definition.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.mjs","names":["IncomingMessage","ServerRequestTypeId","Symbol","for","ServerRequest","constructor","_a","ServerRequestTag","tsplus_module_1","makeTag"],"sources":["../../_src/ServerRequest/definition.ts"],"sourcesContent":[null],"mappings":";;AAKA,SAASA,eAAe,QAAQ,mCAAkC;AAElE,OAAO,MAAMC,mBAAmB,gBAAGC,MAAM,CAACC,GAAG,CAAC,0BAA0B,CAAC;AAGzE;;;;AAIA,OAAM,MAAgBC,aAAc,SAAQJ,eAA6B;EAAzEK,YAAA;;IACW,KAAAC,EAAA,CAAqB,GAAwBL,mBAAmB;EAY3E;;KAZYA,mBAAmB;AAc/B;;;AAGA,OAAO,MAAMM,gBAAgB,gBAAGC,eAAA,CAAAC,OAAA,EAAoB"}
@@ -0,0 +1,68 @@
1
+ const fileName_1 = "(@fncts/http) src/ServerRequest/internal.ts";
2
+ import * as tsplus_module_1 from "@fncts/base/data/Maybe/constructors";
3
+ import * as tsplus_module_2 from "@fncts/http/Headers";
4
+ import * as tsplus_module_3 from "@fncts/io/IO/api";
5
+ import * as tsplus_module_4 from "@fncts/io/IO/api/memoize";
6
+ import * as tsplus_module_5 from "@fncts/io/IO/runtime";
7
+ import * as tsplus_module_6 from "@fncts/base/data/Exit/api";
8
+ import * as tsplus_module_7 from "@fncts/http/UrlParams";
9
+ import * as tsplus_module_8 from "@fncts/io/Stream/api";
10
+ import { RequestError } from "../RequestError.mjs";
11
+ import { UrlParams } from "../UrlParams.mjs";
12
+ import { ServerRequest } from "./definition.mjs";
13
+ export class ServerRequestImpl extends ServerRequest {
14
+ constructor(source, url, headersOverride, remoteAddressOverride) {
15
+ super();
16
+ this.source = source;
17
+ this.url = url;
18
+ this.headersOverride = headersOverride;
19
+ this.remoteAddressOverride = remoteAddressOverride;
20
+ }
21
+ get method() {
22
+ return this.source.method.toUpperCase();
23
+ }
24
+ get originalUrl() {
25
+ return this.source.url;
26
+ }
27
+ get remoteAddress() {
28
+ return tsplus_module_1.fromNullable(this.remoteAddressOverride);
29
+ }
30
+ get headers() {
31
+ this.headersOverride ?? (this.headersOverride = tsplus_module_2.fromHeaders(this.source.headers));
32
+ return this.headersOverride;
33
+ }
34
+ get text() {
35
+ if (this.textIO) {
36
+ return this.textIO;
37
+ }
38
+ this.textIO = tsplus_module_6.getOrThrow(tsplus_module_5.unsafeRun(tsplus_module_4.memoize(tsplus_module_3.fromPromiseCatch(() => this.source.text(), error => new RequestError(this, "Decode", error), fileName_1 + ":42:38"), fileName_1 + ":45:6")));
39
+ return this.textIO;
40
+ }
41
+ get json() {
42
+ return tsplus_module_3.flatMap(text => tsplus_module_3.tryCatch(() => JSON.parse(text), error => new RequestError(this, "Decode", error), fileName_1 + ":52:18"), fileName_1 + ":51:29")(this.text);
43
+ }
44
+ get urlParamsBody() {
45
+ return tsplus_module_3.flatMap(text => tsplus_module_3.tryCatch(() => tsplus_module_7.make(new URLSearchParams(text)), error => new RequestError(this, "Decode", error), fileName_1 + ":61:18"), fileName_1 + ":60:29")(this.text);
46
+ }
47
+ get arrayBuffer() {
48
+ if (this.arrayBufferIO) {
49
+ return this.arrayBufferIO;
50
+ }
51
+ this.arrayBufferIO = tsplus_module_6.getOrThrow(tsplus_module_5.unsafeRun(tsplus_module_4.memoize(tsplus_module_3.fromPromiseCatch(() => this.source.arrayBuffer(), error => new RequestError(this, "Decode", error), fileName_1 + ":74:45"), fileName_1 + ":77:6")));
52
+ return this.arrayBufferIO;
53
+ }
54
+ get stream() {
55
+ if (this.source.body) {
56
+ return tsplus_module_8.fromReadableStream(() => this.source.body, error => new RequestError(this, "Decode", error));
57
+ } else {
58
+ return tsplus_module_8.failNow(new RequestError(this, "Decode", "cannot create stream from empty body"), fileName_1 + ":86:28");
59
+ }
60
+ }
61
+ modify(options) {
62
+ return new ServerRequestImpl(this.source, options.url ?? this.url, options.headers ?? this.headers, options.remoteAddress ?? this.remoteAddressOverride);
63
+ }
64
+ get upgrade() {
65
+ return tsplus_module_3.failNow(new RequestError(this, "Decode", "Not an upgradeable ServerRequest"), fileName_1 + ":104:22");
66
+ }
67
+ }
68
+ //# sourceMappingURL=internal.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.mjs","names":["RequestError","UrlParams","ServerRequest","ServerRequestImpl","constructor","source","url","headersOverride","remoteAddressOverride","method","toUpperCase","originalUrl","remoteAddress","tsplus_module_1","fromNullable","headers","tsplus_module_2","fromHeaders","text","textIO","tsplus_module_6","getOrThrow","tsplus_module_5","unsafeRun","tsplus_module_4","memoize","tsplus_module_3","fromPromiseCatch","error","fileName_1","json","flatMap","tryCatch","JSON","parse","urlParamsBody","tsplus_module_7","make","URLSearchParams","arrayBuffer","arrayBufferIO","stream","body","tsplus_module_8","fromReadableStream","failNow","modify","options","upgrade"],"sources":["../../_src/ServerRequest/internal.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;AAIA,SAASA,YAAY,QAAQ,qBAAoB;AACjD,SAASC,SAAS,QAAQ,kBAAiB;AAC3C,SAASC,aAAa,QAAQ,kBAAiB;AAE/C,OAAM,MAAOC,iBAAkB,SAAQD,aAAa;EAClDE,YACWC,MAAe,EACfC,GAAW,EACbC,eAAyB,EACxBC,qBAA8B;IAEtC,KAAK,EAAE;IALE,KAAAH,MAAM,GAANA,MAAM;IACN,KAAAC,GAAG,GAAHA,GAAG;IACL,KAAAC,eAAe,GAAfA,eAAe;IACd,KAAAC,qBAAqB,GAArBA,qBAAqB;EAG/B;EAEA,IAAIC,MAAMA,CAAA;IACR,OAAO,IAAI,CAACJ,MAAM,CAACI,MAAM,CAACC,WAAW,EAAY;EACnD;EAEA,IAAIC,WAAWA,CAAA;IACb,OAAO,IAAI,CAACN,MAAM,CAACC,GAAG;EACxB;EAEA,IAAIM,aAAaA,CAAA;IACf,OAAOC,eAAA,CAAAC,YAAA,CAAmB,IAAI,CAACN,qBAAqB,CAAC;EACvD;EAEA,IAAIO,OAAOA,CAAA;IACT,IAAI,CAACR,eAAe,KAApB,IAAI,CAACA,eAAe,GAAKS,eAAA,CAAAC,WAAA,CAAoB,IAAI,CAACZ,MAAM,CAACU,OAAO,CAAC;IACjE,OAAO,IAAI,CAACR,eAAe;EAC7B;EAGA,IAAIW,IAAIA,CAAA;IACN,IAAI,IAAI,CAACC,MAAM,EAAE;MACf,OAAO,IAAI,CAACA,MAAM;IACpB;IAEA,IAAI,CAACA,MAAM,GAAAC,eAAA,CAAAC,UAAA,CAAAC,eAAA,CAAAC,SAAA,CAAAC,eAAA,CAAAC,OAAA,CAAGC,eAAA,CAAAC,gBAAA,OACZ,IAAI,CAACtB,MAAM,CAACa,IAAI,EAAE,EACjBU,KAAK,IAAK,IAAI5B,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE4B,KAAK,CAAC,EAAAC,UAAA,YACnD,EAAAA,UAAA,aAA6B;IAE9B,OAAO,IAAI,CAACV,MAAM;EACpB;EAEA,IAAIW,IAAIA,CAAA;IACN,OAAOJ,eAAA,CAAAK,OAAA,CAAmBb,IAAI,IAC5BQ,eAAA,CAAAM,QAAA,CACE,MAAMC,IAAI,CAACC,KAAK,CAAChB,IAAI,CAAC,EACrBU,KAAK,IAAK,IAAI5B,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE4B,KAAK,CAAC,EAAAC,UAAA,YACnD,EAAAA,UAAA,aAJI,IAAI,CAACX,IAAI,CAKf;EACH;EAEA,IAAIiB,aAAaA,CAAA;IACf,OAAOT,eAAA,CAAAK,OAAA,CAAmBb,IAAI,IAC5BQ,eAAA,CAAAM,QAAA,CACE,MAAMI,eAAA,CAAAC,IAAA,CAAU,IAAIC,eAAe,CAACpB,IAAI,CAAC,CAAC,EACzCU,KAAK,IAAK,IAAI5B,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE4B,KAAK,CAAC,EAAAC,UAAA,YACnD,EAAAA,UAAA,aAJI,IAAI,CAACX,IAAI,CAKf;EACH;EAGA,IAAIqB,WAAWA,CAAA;IACb,IAAI,IAAI,CAACC,aAAa,EAAE;MACtB,OAAO,IAAI,CAACA,aAAa;IAC3B;IAEA,IAAI,CAACA,aAAa,GAAApB,eAAA,CAAAC,UAAA,CAAAC,eAAA,CAAAC,SAAA,CAAAC,eAAA,CAAAC,OAAA,CAAGC,eAAA,CAAAC,gBAAA,OACnB,IAAI,CAACtB,MAAM,CAACkC,WAAW,EAAE,EACxBX,KAAK,IAAK,IAAI5B,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE4B,KAAK,CAAC,EAAAC,UAAA,YACnD,EAAAA,UAAA,aAA6B;IAE9B,OAAO,IAAI,CAACW,aAAa;EAC3B;EAEA,IAAIC,MAAMA,CAAA;IACR,IAAI,IAAI,CAACpC,MAAM,CAACqC,IAAI,EAAE;MACpB,OAAOC,eAAA,CAAAC,kBAAA,OAA0B,IAAI,CAACvC,MAAM,CAACqC,IAAI,EAAGd,KAAK,IAAK,IAAI5B,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE4B,KAAK,CAAC,CAAC;IACxG,CAAC,MAAM;MACL,OAAOe,eAAA,CAAAE,OAAA,CAAe,IAAI7C,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,sCAAsC,CAAC,EAAA6B,UAAA,YAAC;IACjG;EACF;EAEAiB,MAAMA,CAACC,OAIN;IACC,OAAO,IAAI5C,iBAAiB,CAC1B,IAAI,CAACE,MAAM,EACX0C,OAAO,CAACzC,GAAG,IAAI,IAAI,CAACA,GAAG,EACvByC,OAAO,CAAChC,OAAO,IAAI,IAAI,CAACA,OAAO,EAC/BgC,OAAO,CAACnC,aAAa,IAAI,IAAI,CAACJ,qBAAqB,CACpD;EACH;EAEA,IAAIwC,OAAOA,CAAA;IACT,OAAOtB,eAAA,CAAAmB,OAAA,CAAW,IAAI7C,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,kCAAkC,CAAC,EAAA6B,UAAA,aAAC;EACzF"}
@@ -0,0 +1,5 @@
1
+ /* eslint-disable simple-import-sort/exports */
2
+ // codegen:start { preset: barrel, include: ./ServerRequest/*.ts, exclude: ServerRequest/*(*internal).ts }
3
+ export * from "./ServerRequest/definition.mjs";
4
+ export * from "./ServerRequest/api.mjs";
5
+ //# sourceMappingURL=ServerRequest.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerRequest.mjs","names":[],"sources":["../_src/ServerRequest.ts"],"sourcesContent":[null],"mappings":"AAAA;AACA;AACA,cAAc,gCAA+B;AAC7C,cAAc,yBAAwB"}
@@ -0,0 +1,138 @@
1
+ const fileName_1 = "(@fncts/http) src/ServerResponse/api.ts";
2
+ import * as tsplus_module_1 from "@fncts/http/Headers";
3
+ import * as tsplus_module_2 from "@fncts/http/Body/api";
4
+ import * as tsplus_module_3 from "@fncts/io/IO/api";
5
+ import * as tsplus_module_4 from "@fncts/http/UrlParams";
6
+ import * as tsplus_module_5 from "@fncts/http/Body/definition";
7
+ import * as tsplus_module_6 from "@fncts/io/Stream/api";
8
+ import { UrlParams } from "../UrlParams.mjs";
9
+ import { ServerResponse } from "./definition.mjs";
10
+ /**
11
+ * @tsplus static fncts.http.ServerResponseOps empty
12
+ */
13
+ export function empty(options) {
14
+ return new ServerResponse(options?.status ?? 204, options?.statusText, options?.headers ?? tsplus_module_1.empty, tsplus_module_2.empty);
15
+ }
16
+ /**
17
+ * @tsplus static fncts.http.ServerResponseOps uint8Array
18
+ */
19
+ export function uint8Array(body, options) {
20
+ return new ServerResponse(options?.status ?? 200, options?.statusText, options?.headers ?? tsplus_module_1.empty, tsplus_module_2.uint8Array(body, getContentType(options)));
21
+ }
22
+ /**
23
+ * @tsplus static fncts.http.ServerResponseOps text
24
+ */
25
+ export function text(body, options) {
26
+ return new ServerResponse(options?.status ?? 200, options?.statusText, options?.headers ?? tsplus_module_1.empty, tsplus_module_2.text(body, getContentType(options)));
27
+ }
28
+ /**
29
+ * @tsplus static fncts.http.ServerResponseOps json
30
+ */
31
+ export function json(body, options) {
32
+ return tsplus_module_3.map(body => new ServerResponse(options?.status ?? 200, options?.statusText, options?.headers ?? tsplus_module_1.empty, body), fileName_1 + ":44:29")(tsplus_module_2.json(body));
33
+ }
34
+ /**
35
+ * @tsplus static fncts.http.ServerResponseOps schemaJson
36
+ */
37
+ export function schemaJson(schema) {
38
+ const encode = tsplus_module_2.jsonSchema(schema);
39
+ return (body, options) => tsplus_module_3.map(body => new ServerResponse(options?.status ?? 200, options?.statusText, options?.headers ?? tsplus_module_1.empty, body), fileName_1 + ":55:21")(encode(body));
40
+ }
41
+ /**
42
+ * @tsplus static fncts.http.ServerResponseOps urlParams
43
+ */
44
+ export function urlParams(body, options) {
45
+ return new ServerResponse(options?.status ?? 200, options?.statusText, options?.headers ?? tsplus_module_1.empty, tsplus_module_2.text(tsplus_module_4.toString(tsplus_module_4.make(body)), "application/x-www-form-urlencoded"));
46
+ }
47
+ /**
48
+ * @tsplus static fncts.http.ServerResponseOps stream
49
+ */
50
+ export function stream(body, options) {
51
+ return new ServerResponse(options?.status ?? 200, options?.statusText, options?.headers ?? tsplus_module_1.empty, tsplus_module_2.stream(body, {
52
+ contentType: getContentType(options),
53
+ contentLength: options?.contentLength
54
+ }));
55
+ }
56
+ /**
57
+ * @tsplus pipeable fncts.http.ServerResponse setHeader
58
+ */
59
+ export function setHeader(key, value) {
60
+ return self => new ServerResponse(self.status, self.statusText, self.headers.set(key, value), self.body);
61
+ }
62
+ /**
63
+ * @tsplus pipeable fncts.http.ServerResponse setHeaders
64
+ */
65
+ export function setHeaders(headers) {
66
+ return self => new ServerResponse(self.status, self.statusText, self.headers.setAll(headers), self.body);
67
+ }
68
+ /**
69
+ * @tsplus pipeable fncts.http.ServerResponse setStatus
70
+ */
71
+ export function setStatus(status, statusText) {
72
+ return self => new ServerResponse(status, statusText, self.headers, self.body);
73
+ }
74
+ /**
75
+ * @tsplus pipeable fncts.http.ServerResponse setBody
76
+ */
77
+ export function setBody(body) {
78
+ return self => {
79
+ let headers = self.headers;
80
+ tsplus_module_5.concrete(body);
81
+ if (body._tag === 0 /* BodyTag.Empty */) {
82
+ headers = self.headers.remove("content-type").remove("content-length");
83
+ }
84
+ return new ServerResponse(self.status, self.statusText, headers, body);
85
+ };
86
+ }
87
+ /**
88
+ * @tsplus pipeable fncts.http.ServerResponse toWeb
89
+ */
90
+ export function toWeb(withoutBody = false) {
91
+ return self => {
92
+ if (withoutBody) {
93
+ return new Response(undefined, {
94
+ status: self.status,
95
+ statusText: self.statusText,
96
+ headers: self.headers.toHeadersInit()
97
+ });
98
+ }
99
+ tsplus_module_5.concrete(self.body);
100
+ switch (self.body._tag) {
101
+ case 0 /* BodyTag.Empty */:
102
+ return new Response(undefined, {
103
+ status: self.status,
104
+ statusText: self.statusText,
105
+ headers: self.headers.toHeadersInit()
106
+ });
107
+ case 2 /* BodyTag.Uint8Array */:
108
+ case 1 /* BodyTag.Raw */:
109
+ return new Response(self.body.body, {
110
+ status: self.status,
111
+ statusText: self.statusText,
112
+ headers: self.headers.toHeadersInit()
113
+ });
114
+ case 3 /* BodyTag.FormData */:
115
+ return new Response(self.body.formData, {
116
+ status: self.status,
117
+ statusText: self.statusText,
118
+ headers: self.headers.toHeadersInit()
119
+ });
120
+ case 4 /* BodyTag.Stream */:
121
+ return new Response(tsplus_module_6.toReadableStream(self.body.stream, fileName_1 + ":160:45"), {
122
+ status: self.status,
123
+ statusText: self.statusText,
124
+ headers: self.headers.toHeadersInit()
125
+ });
126
+ }
127
+ };
128
+ }
129
+ function getContentType(options) {
130
+ if (options?.contentType) {
131
+ return options.contentType;
132
+ } else if (options?.headers) {
133
+ return options.headers.unsafeGet("content-type");
134
+ } else {
135
+ return;
136
+ }
137
+ }
138
+ //# sourceMappingURL=api.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.mjs","names":["UrlParams","ServerResponse","empty","options","status","statusText","headers","tsplus_module_1","tsplus_module_2","uint8Array","body","getContentType","text","json","tsplus_module_3","map","fileName_1","schemaJson","schema","encode","jsonSchema","urlParams","tsplus_module_4","toString","make","stream","contentType","contentLength","setHeader","key","value","self","set","setHeaders","setAll","setStatus","setBody","tsplus_module_5","concrete","_tag","remove","toWeb","withoutBody","Response","undefined","toHeadersInit","formData","tsplus_module_6","toReadableStream","unsafeGet"],"sources":["../../_src/ServerResponse/api.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ var _a;
2
+ import * as tsplus_module_1 from "@fncts/base/collection/immutable/HashMap/api";
3
+ import * as tsplus_module_2 from "@fncts/base/util/predicates";
4
+ import { Headers } from "../Headers.mjs";
5
+ export const ServerResponseTypeId = /*#__PURE__*/Symbol.for("fncts.http.ServerResponse");
6
+ /**
7
+ * @tsplus type fncts.http.ServerResponse
8
+ * @tsplus companion fncts.http.ServerResponseOps
9
+ */
10
+ export class ServerResponse {
11
+ constructor(status, statusText, headers, body) {
12
+ this.status = status;
13
+ this.statusText = statusText;
14
+ this.body = body;
15
+ this[_a] = ServerResponseTypeId;
16
+ if (body.contentType || body.contentLength) {
17
+ const newHeaders = tsplus_module_1.beginMutation(headers.backing);
18
+ if (body.contentType) {
19
+ tsplus_module_1.set("content-type", body.contentType)(newHeaders);
20
+ }
21
+ if (body.contentLength) {
22
+ tsplus_module_1.set("content-length", body.contentLength.toString())(newHeaders);
23
+ }
24
+ this.headers = new Headers(tsplus_module_1.endMutation(newHeaders));
25
+ } else {
26
+ this.headers = headers;
27
+ }
28
+ }
29
+ }
30
+ _a = ServerResponseTypeId;
31
+ export function isServerResponse(u) {
32
+ return tsplus_module_2.isObject(u) && ServerResponseTypeId in u;
33
+ }
34
+ //# sourceMappingURL=definition.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.mjs","names":["Headers","ServerResponseTypeId","Symbol","for","ServerResponse","constructor","status","statusText","headers","body","_a","contentType","contentLength","newHeaders","tsplus_module_1","beginMutation","backing","set","toString","endMutation","isServerResponse","u","tsplus_module_2","isObject"],"sources":["../../_src/ServerResponse/definition.ts"],"sourcesContent":[null],"mappings":";;;AAEA,SAASA,OAAO,QAAQ,gBAAe;AAEvC,OAAO,MAAMC,oBAAoB,gBAAGC,MAAM,CAACC,GAAG,CAAC,2BAA2B,CAAC;AAG3E;;;;AAIA,OAAM,MAAOC,cAAc;EAGzBC,YACWC,MAAc,EACdC,UAA8B,EACvCC,OAAgB,EACPC,IAAU;IAHV,KAAAH,MAAM,GAANA,MAAM;IACN,KAAAC,UAAU,GAAVA,UAAU;IAEV,KAAAE,IAAI,GAAJA,IAAI;IANN,KAAAC,EAAA,CAAsB,GAAyBT,oBAAoB;IAQ1E,IAAIQ,IAAI,CAACE,WAAW,IAAIF,IAAI,CAACG,aAAa,EAAE;MAC1C,MAAMC,UAAU,GAAAC,eAAA,CAAAC,aAAA,CAAGP,OAAO,CAACQ,OAAO,CAAc;MAChD,IAAIP,IAAI,CAACE,WAAW,EAAE;QACpBG,eAAA,CAAAG,GAAA,CAAe,cAAc,EAAER,IAAI,CAACE,WAAW,EAA/CE,UAAU,CAAsC;MAClD;MACA,IAAIJ,IAAI,CAACG,aAAa,EAAE;QACtBE,eAAA,CAAAG,GAAA,CAAe,gBAAgB,EAAER,IAAI,CAACG,aAAa,CAACM,QAAQ,EAAE,EAA9DL,UAAU,CAAqD;MACjE;MACA,IAAI,CAACL,OAAO,GAAG,IAAIR,OAAO,CAAAc,eAAA,CAAAK,WAAA,CAACN,UAAU,EAAa;IACpD,CAAC,MAAM;MACL,IAAI,CAACL,OAAO,GAAGA,OAAO;IACxB;EACF;;KApBUP,oBAAoB;AAoChC,OAAM,SAAUmB,gBAAgBA,CAACC,CAAU;EACzC,OAAOC,eAAA,CAAAC,QAAQ,CAACF,CAAC,CAAC,IAAIpB,oBAAoB,IAAIoB,CAAC;AACjD"}