@loopback/rest 4.0.0-alpha.8 → 5.0.1

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 (388) hide show
  1. package/CHANGELOG.md +1822 -0
  2. package/LICENSE +1 -1
  3. package/README.md +30 -58
  4. package/dist/body-parsers/body-parser.d.ts +25 -0
  5. package/dist/body-parsers/body-parser.helpers.d.ts +44 -0
  6. package/dist/body-parsers/body-parser.helpers.js +102 -0
  7. package/dist/body-parsers/body-parser.helpers.js.map +1 -0
  8. package/dist/body-parsers/body-parser.js +159 -0
  9. package/dist/body-parsers/body-parser.js.map +1 -0
  10. package/dist/body-parsers/body-parser.json.d.ts +9 -0
  11. package/dist/body-parsers/body-parser.json.js +43 -0
  12. package/dist/body-parsers/body-parser.json.js.map +1 -0
  13. package/dist/body-parsers/body-parser.raw.d.ts +12 -0
  14. package/dist/body-parsers/body-parser.raw.js +39 -0
  15. package/dist/body-parsers/body-parser.raw.js.map +1 -0
  16. package/dist/body-parsers/body-parser.stream.d.ts +12 -0
  17. package/dist/body-parsers/body-parser.stream.js +28 -0
  18. package/dist/body-parsers/body-parser.stream.js.map +1 -0
  19. package/dist/body-parsers/body-parser.text.d.ts +9 -0
  20. package/dist/body-parsers/body-parser.text.js +38 -0
  21. package/dist/body-parsers/body-parser.text.js.map +1 -0
  22. package/dist/body-parsers/body-parser.urlencoded.d.ts +9 -0
  23. package/dist/body-parsers/body-parser.urlencoded.js +36 -0
  24. package/dist/body-parsers/body-parser.urlencoded.js.map +1 -0
  25. package/dist/body-parsers/index.d.ts +8 -0
  26. package/dist/body-parsers/index.js +16 -0
  27. package/dist/body-parsers/index.js.map +1 -0
  28. package/dist/body-parsers/types.d.ts +51 -0
  29. package/dist/body-parsers/types.js +12 -0
  30. package/dist/body-parsers/types.js.map +1 -0
  31. package/dist/coercion/coerce-parameter.d.ts +9 -0
  32. package/dist/coercion/coerce-parameter.js +166 -0
  33. package/dist/coercion/coerce-parameter.js.map +1 -0
  34. package/dist/coercion/utils.d.ts +43 -0
  35. package/dist/coercion/utils.js +96 -0
  36. package/dist/coercion/utils.js.map +1 -0
  37. package/dist/coercion/validator.d.ts +49 -0
  38. package/dist/coercion/validator.js +85 -0
  39. package/dist/coercion/validator.js.map +1 -0
  40. package/dist/http-handler.d.ts +38 -0
  41. package/dist/http-handler.js +68 -0
  42. package/dist/http-handler.js.map +1 -0
  43. package/dist/index.d.ts +36 -1
  44. package/dist/index.js +40 -6
  45. package/dist/index.js.map +1 -0
  46. package/dist/keys.d.ts +198 -0
  47. package/dist/keys.js +202 -0
  48. package/dist/keys.js.map +1 -0
  49. package/dist/parse-json.d.ts +11 -0
  50. package/dist/parse-json.js +42 -0
  51. package/dist/parse-json.js.map +1 -0
  52. package/dist/parser.d.ts +11 -0
  53. package/dist/parser.js +76 -0
  54. package/dist/parser.js.map +1 -0
  55. package/{dist6/src/providers/find-route.d.ts → dist/providers/find-route.provider.d.ts} +3 -1
  56. package/dist/providers/find-route.provider.js +36 -0
  57. package/dist/providers/find-route.provider.js.map +1 -0
  58. package/dist/providers/index.d.ts +6 -0
  59. package/dist/providers/index.js +14 -0
  60. package/dist/providers/index.js.map +1 -0
  61. package/dist/{src/providers/invoke-method.d.ts → providers/invoke-method.provider.d.ts} +3 -1
  62. package/dist/providers/invoke-method.provider.js +30 -0
  63. package/dist/providers/invoke-method.provider.js.map +1 -0
  64. package/dist/providers/log-error.provider.d.ts +6 -0
  65. package/dist/providers/log-error.provider.js +21 -0
  66. package/dist/providers/log-error.provider.js.map +1 -0
  67. package/dist/providers/parse-params.provider.d.ts +15 -0
  68. package/dist/providers/parse-params.provider.js +41 -0
  69. package/dist/providers/parse-params.provider.js.map +1 -0
  70. package/dist/providers/reject.provider.d.ts +10 -0
  71. package/dist/providers/reject.provider.js +47 -0
  72. package/dist/providers/reject.provider.js.map +1 -0
  73. package/dist/{src/providers/send.d.ts → providers/send.provider.d.ts} +1 -4
  74. package/dist/{src/providers/send.js → providers/send.provider.js} +4 -6
  75. package/dist/providers/send.provider.js.map +1 -0
  76. package/dist/request-context.d.ts +36 -0
  77. package/dist/request-context.js +104 -0
  78. package/dist/request-context.js.map +1 -0
  79. package/dist/rest-http-error.d.ts +37 -0
  80. package/dist/rest-http-error.js +51 -0
  81. package/dist/rest-http-error.js.map +1 -0
  82. package/dist/rest.application.d.ts +232 -0
  83. package/dist/rest.application.js +174 -0
  84. package/dist/rest.application.js.map +1 -0
  85. package/dist/rest.component.d.ts +15 -0
  86. package/dist/rest.component.js +72 -0
  87. package/dist/rest.component.js.map +1 -0
  88. package/dist/rest.server.d.ts +443 -0
  89. package/dist/rest.server.js +748 -0
  90. package/dist/rest.server.js.map +1 -0
  91. package/dist/router/base-route.d.ts +29 -0
  92. package/dist/router/base-route.js +41 -0
  93. package/dist/router/base-route.js.map +1 -0
  94. package/dist/router/controller-route.d.ts +61 -0
  95. package/dist/router/controller-route.js +160 -0
  96. package/dist/router/controller-route.js.map +1 -0
  97. package/dist/router/external-express-routes.d.ts +24 -0
  98. package/dist/router/external-express-routes.js +90 -0
  99. package/dist/router/external-express-routes.js.map +1 -0
  100. package/dist/router/handler-route.d.ts +12 -0
  101. package/dist/router/handler-route.js +30 -0
  102. package/dist/router/handler-route.js.map +1 -0
  103. package/dist/router/index.d.ts +14 -0
  104. package/dist/router/index.js +25 -0
  105. package/dist/router/index.js.map +1 -0
  106. package/dist/router/openapi-path.d.ts +14 -0
  107. package/dist/router/openapi-path.js +64 -0
  108. package/dist/router/openapi-path.js.map +1 -0
  109. package/dist/router/redirect-route.d.ts +23 -0
  110. package/dist/router/redirect-route.js +50 -0
  111. package/dist/router/redirect-route.js.map +1 -0
  112. package/dist/router/regexp-router.d.ts +25 -0
  113. package/dist/router/regexp-router.js +84 -0
  114. package/dist/router/regexp-router.js.map +1 -0
  115. package/dist/router/rest-router.d.ts +35 -0
  116. package/dist/{src/internal-types.js → router/rest-router.js} +2 -2
  117. package/dist/router/rest-router.js.map +1 -0
  118. package/dist/router/route-entry.d.ts +46 -0
  119. package/dist/router/route-entry.js +20 -0
  120. package/dist/router/route-entry.js.map +1 -0
  121. package/dist/router/route-sort.d.ts +7 -0
  122. package/dist/router/route-sort.js +75 -0
  123. package/dist/router/route-sort.js.map +1 -0
  124. package/dist/router/router-base.d.ts +42 -0
  125. package/dist/router/router-base.js +101 -0
  126. package/dist/router/router-base.js.map +1 -0
  127. package/dist/router/router-spec.d.ts +3 -0
  128. package/dist/router/router-spec.js +40 -0
  129. package/dist/router/router-spec.js.map +1 -0
  130. package/dist/router/routing-table.d.ts +32 -0
  131. package/dist/router/routing-table.js +86 -0
  132. package/dist/router/routing-table.js.map +1 -0
  133. package/dist/router/trie-router.d.ts +13 -0
  134. package/dist/router/trie-router.js +55 -0
  135. package/dist/router/trie-router.js.map +1 -0
  136. package/dist/router/trie.d.ts +59 -0
  137. package/dist/router/trie.js +180 -0
  138. package/dist/router/trie.js.map +1 -0
  139. package/{dist6/src → dist}/sequence.d.ts +28 -23
  140. package/dist/sequence.js +112 -0
  141. package/dist/sequence.js.map +1 -0
  142. package/dist/spec-enhancers/consolidate.spec-enhancer.d.ts +68 -0
  143. package/dist/spec-enhancers/consolidate.spec-enhancer.js +145 -0
  144. package/dist/spec-enhancers/consolidate.spec-enhancer.js.map +1 -0
  145. package/dist/spec-enhancers/info.spec-enhancer.d.ts +19 -0
  146. package/dist/spec-enhancers/info.spec-enhancer.js +89 -0
  147. package/dist/spec-enhancers/info.spec-enhancer.js.map +1 -0
  148. package/dist/types.d.ts +178 -0
  149. package/dist/types.js +12 -0
  150. package/dist/types.js.map +1 -0
  151. package/dist/validation/ajv-factory.provider.d.ts +12 -0
  152. package/dist/validation/ajv-factory.provider.js +87 -0
  153. package/dist/validation/ajv-factory.provider.js.map +1 -0
  154. package/dist/validation/request-body.validator.d.ts +14 -0
  155. package/dist/validation/request-body.validator.js +161 -0
  156. package/dist/validation/request-body.validator.js.map +1 -0
  157. package/dist/writer.d.ts +9 -0
  158. package/dist/writer.js +62 -0
  159. package/dist/writer.js.map +1 -0
  160. package/package.json +66 -38
  161. package/src/body-parsers/body-parser.helpers.ts +148 -0
  162. package/src/body-parsers/body-parser.json.ts +46 -0
  163. package/src/body-parsers/body-parser.raw.ts +42 -0
  164. package/src/body-parsers/body-parser.stream.ts +27 -0
  165. package/src/body-parsers/body-parser.text.ts +44 -0
  166. package/src/body-parsers/body-parser.ts +208 -0
  167. package/src/body-parsers/body-parser.urlencoded.ts +42 -0
  168. package/src/body-parsers/index.ts +13 -0
  169. package/src/body-parsers/types.ts +60 -0
  170. package/src/coercion/coerce-parameter.ts +207 -0
  171. package/src/coercion/utils.ts +103 -0
  172. package/src/coercion/validator.ts +98 -0
  173. package/src/http-handler.ts +84 -41
  174. package/src/index.ts +37 -30
  175. package/src/keys.ts +273 -20
  176. package/src/parse-json.ts +42 -0
  177. package/src/parser.ts +89 -104
  178. package/src/providers/{find-route.ts → find-route.provider.ts} +10 -7
  179. package/src/providers/index.ts +7 -9
  180. package/src/providers/{invoke-method.ts → invoke-method.provider.ts} +8 -5
  181. package/src/providers/log-error.provider.ts +27 -0
  182. package/src/providers/parse-params.provider.ts +42 -0
  183. package/src/providers/reject.provider.ts +44 -0
  184. package/src/providers/{send.ts → send.provider.ts} +2 -5
  185. package/src/request-context.ts +123 -0
  186. package/src/rest-http-error.ts +87 -0
  187. package/src/rest.application.ts +390 -0
  188. package/src/rest.component.ts +111 -0
  189. package/src/rest.server.ts +1192 -0
  190. package/src/router/base-route.ts +53 -0
  191. package/src/router/controller-route.ts +241 -0
  192. package/src/router/external-express-routes.ts +139 -0
  193. package/src/router/handler-route.ts +44 -0
  194. package/src/router/index.ts +24 -0
  195. package/src/router/openapi-path.ts +67 -0
  196. package/src/router/redirect-route.ts +64 -0
  197. package/src/router/regexp-router.ts +104 -0
  198. package/src/router/rest-router.ts +48 -0
  199. package/src/router/route-entry.ts +74 -0
  200. package/src/router/route-sort.ts +74 -0
  201. package/src/router/router-base.ts +124 -0
  202. package/src/router/router-spec.ts +36 -0
  203. package/src/router/routing-table.ts +83 -279
  204. package/src/router/trie-router.ts +57 -0
  205. package/src/router/trie.ts +233 -0
  206. package/src/sequence.ts +44 -37
  207. package/src/spec-enhancers/consolidate.spec-enhancer.ts +182 -0
  208. package/src/spec-enhancers/info.spec-enhancer.ts +92 -0
  209. package/src/types.ts +216 -0
  210. package/src/validation/ajv-factory.provider.ts +94 -0
  211. package/src/validation/request-body.validator.ts +208 -0
  212. package/src/writer.ts +41 -68
  213. package/api-docs/.DS_Store +0 -0
  214. package/api-docs/apple-touch-icon-114x114-precomposed.png +0 -0
  215. package/api-docs/apple-touch-icon-144x144-precomposed.png +0 -0
  216. package/api-docs/apple-touch-icon-57x57-precomposed.png +0 -0
  217. package/api-docs/apple-touch-icon-72x72-precomposed.png +0 -0
  218. package/api-docs/apple-touch-icon-precomposed.png +0 -0
  219. package/api-docs/apple-touch-icon.png +0 -0
  220. package/api-docs/css/bootstrap.min.css +0 -9
  221. package/api-docs/css/code-themes/arta.css +0 -158
  222. package/api-docs/css/code-themes/ascetic.css +0 -50
  223. package/api-docs/css/code-themes/brown_paper.css +0 -104
  224. package/api-docs/css/code-themes/brown_papersq.png +0 -0
  225. package/api-docs/css/code-themes/dark.css +0 -103
  226. package/api-docs/css/code-themes/default.css +0 -135
  227. package/api-docs/css/code-themes/far.css +0 -111
  228. package/api-docs/css/code-themes/github.css +0 -127
  229. package/api-docs/css/code-themes/googlecode.css +0 -144
  230. package/api-docs/css/code-themes/idea.css +0 -121
  231. package/api-docs/css/code-themes/ir_black.css +0 -104
  232. package/api-docs/css/code-themes/magula.css +0 -121
  233. package/api-docs/css/code-themes/monokai.css +0 -114
  234. package/api-docs/css/code-themes/pojoaque.css +0 -104
  235. package/api-docs/css/code-themes/pojoaque.jpg +0 -0
  236. package/api-docs/css/code-themes/rainbow.css +0 -114
  237. package/api-docs/css/code-themes/school_book.css +0 -111
  238. package/api-docs/css/code-themes/school_book.png +0 -0
  239. package/api-docs/css/code-themes/sl-theme.css +0 -45
  240. package/api-docs/css/code-themes/solarized_dark.css +0 -88
  241. package/api-docs/css/code-themes/solarized_light.css +0 -88
  242. package/api-docs/css/code-themes/sunburst.css +0 -158
  243. package/api-docs/css/code-themes/tomorrow-night-blue.css +0 -52
  244. package/api-docs/css/code-themes/tomorrow-night-bright.css +0 -51
  245. package/api-docs/css/code-themes/tomorrow-night-eighties.css +0 -51
  246. package/api-docs/css/code-themes/tomorrow-night.css +0 -52
  247. package/api-docs/css/code-themes/tomorrow.css +0 -49
  248. package/api-docs/css/code-themes/vs.css +0 -86
  249. package/api-docs/css/code-themes/xcode.css +0 -154
  250. package/api-docs/css/code-themes/zenburn.css +0 -115
  251. package/api-docs/css/main.css +0 -139
  252. package/api-docs/favicon.ico +0 -0
  253. package/api-docs/fonts/0ihfXUL2emPh0ROJezvraLO3LdcAZYWl9Si6vvxL-qU.woff +0 -0
  254. package/api-docs/fonts/OsJ2DjdpjqFRVUSto6IffLO3LdcAZYWl9Si6vvxL-qU.woff +0 -0
  255. package/api-docs/fonts/_aijTyevf54tkVDLy-dlnLO3LdcAZYWl9Si6vvxL-qU.woff +0 -0
  256. package/api-docs/index.html +0 -7082
  257. package/api-docs/js/main.js +0 -19
  258. package/api-docs/js/vendor/bootstrap.min.js +0 -6
  259. package/api-docs/js/vendor/jquery-1.10.1.min.js +0 -6
  260. package/api-docs/js/vendor/jquery.scrollTo-1.4.3.1.js +0 -218
  261. package/api-docs/js/vendor/modernizr-2.6.2-respond-1.1.0.min.js +0 -11
  262. package/dist/src/http-handler.d.ts +0 -19
  263. package/dist/src/http-handler.js +0 -43
  264. package/dist/src/http-handler.js.map +0 -1
  265. package/dist/src/index.d.ts +0 -14
  266. package/dist/src/index.js +0 -33
  267. package/dist/src/index.js.map +0 -1
  268. package/dist/src/internal-types.d.ts +0 -67
  269. package/dist/src/internal-types.js.map +0 -1
  270. package/dist/src/keys.d.ts +0 -22
  271. package/dist/src/keys.js +0 -35
  272. package/dist/src/keys.js.map +0 -1
  273. package/dist/src/parser.d.ts +0 -11
  274. package/dist/src/parser.js +0 -98
  275. package/dist/src/parser.js.map +0 -1
  276. package/dist/src/providers/bind-element.d.ts +0 -7
  277. package/dist/src/providers/bind-element.js +0 -34
  278. package/dist/src/providers/bind-element.js.map +0 -1
  279. package/dist/src/providers/find-route.d.ts +0 -9
  280. package/dist/src/providers/find-route.js +0 -42
  281. package/dist/src/providers/find-route.js.map +0 -1
  282. package/dist/src/providers/get-from-context.d.ts +0 -7
  283. package/dist/src/providers/get-from-context.js +0 -34
  284. package/dist/src/providers/get-from-context.js.map +0 -1
  285. package/dist/src/providers/index.d.ts +0 -8
  286. package/dist/src/providers/index.js +0 -18
  287. package/dist/src/providers/index.js.map +0 -1
  288. package/dist/src/providers/invoke-method.js +0 -36
  289. package/dist/src/providers/invoke-method.js.map +0 -1
  290. package/dist/src/providers/log-error-provider.d.ts +0 -6
  291. package/dist/src/providers/log-error-provider.js +0 -17
  292. package/dist/src/providers/log-error-provider.js.map +0 -1
  293. package/dist/src/providers/parse-params.d.ts +0 -13
  294. package/dist/src/providers/parse-params.js +0 -22
  295. package/dist/src/providers/parse-params.js.map +0 -1
  296. package/dist/src/providers/reject.d.ts +0 -6
  297. package/dist/src/providers/reject.js +0 -40
  298. package/dist/src/providers/reject.js.map +0 -1
  299. package/dist/src/providers/send.js.map +0 -1
  300. package/dist/src/rest-component.d.ts +0 -12
  301. package/dist/src/rest-component.js +0 -50
  302. package/dist/src/rest-component.js.map +0 -1
  303. package/dist/src/rest-server.d.ts +0 -211
  304. package/dist/src/rest-server.js +0 -426
  305. package/dist/src/rest-server.js.map +0 -1
  306. package/dist/src/router/metadata.d.ts +0 -150
  307. package/dist/src/router/metadata.js +0 -410
  308. package/dist/src/router/metadata.js.map +0 -1
  309. package/dist/src/router/routing-table.d.ts +0 -68
  310. package/dist/src/router/routing-table.js +0 -204
  311. package/dist/src/router/routing-table.js.map +0 -1
  312. package/dist/src/sequence.d.ts +0 -81
  313. package/dist/src/sequence.js +0 -104
  314. package/dist/src/sequence.js.map +0 -1
  315. package/dist/src/writer.d.ts +0 -17
  316. package/dist/src/writer.js +0 -87
  317. package/dist/src/writer.js.map +0 -1
  318. package/dist6/index.d.ts +0 -1
  319. package/dist6/index.js +0 -12
  320. package/dist6/src/http-handler.d.ts +0 -19
  321. package/dist6/src/http-handler.js +0 -53
  322. package/dist6/src/http-handler.js.map +0 -1
  323. package/dist6/src/index.d.ts +0 -14
  324. package/dist6/src/index.js +0 -33
  325. package/dist6/src/index.js.map +0 -1
  326. package/dist6/src/internal-types.d.ts +0 -67
  327. package/dist6/src/internal-types.js +0 -7
  328. package/dist6/src/internal-types.js.map +0 -1
  329. package/dist6/src/keys.d.ts +0 -22
  330. package/dist6/src/keys.js +0 -35
  331. package/dist6/src/keys.js.map +0 -1
  332. package/dist6/src/parser.d.ts +0 -11
  333. package/dist6/src/parser.js +0 -108
  334. package/dist6/src/parser.js.map +0 -1
  335. package/dist6/src/providers/bind-element.d.ts +0 -7
  336. package/dist6/src/providers/bind-element.js +0 -34
  337. package/dist6/src/providers/bind-element.js.map +0 -1
  338. package/dist6/src/providers/find-route.js +0 -42
  339. package/dist6/src/providers/find-route.js.map +0 -1
  340. package/dist6/src/providers/get-from-context.d.ts +0 -7
  341. package/dist6/src/providers/get-from-context.js +0 -34
  342. package/dist6/src/providers/get-from-context.js.map +0 -1
  343. package/dist6/src/providers/index.d.ts +0 -8
  344. package/dist6/src/providers/index.js +0 -18
  345. package/dist6/src/providers/index.js.map +0 -1
  346. package/dist6/src/providers/invoke-method.d.ts +0 -7
  347. package/dist6/src/providers/invoke-method.js +0 -44
  348. package/dist6/src/providers/invoke-method.js.map +0 -1
  349. package/dist6/src/providers/log-error-provider.d.ts +0 -6
  350. package/dist6/src/providers/log-error-provider.js +0 -17
  351. package/dist6/src/providers/log-error-provider.js.map +0 -1
  352. package/dist6/src/providers/parse-params.d.ts +0 -13
  353. package/dist6/src/providers/parse-params.js +0 -22
  354. package/dist6/src/providers/parse-params.js.map +0 -1
  355. package/dist6/src/providers/reject.d.ts +0 -6
  356. package/dist6/src/providers/reject.js +0 -40
  357. package/dist6/src/providers/reject.js.map +0 -1
  358. package/dist6/src/providers/send.d.ts +0 -15
  359. package/dist6/src/providers/send.js +0 -24
  360. package/dist6/src/providers/send.js.map +0 -1
  361. package/dist6/src/rest-component.d.ts +0 -12
  362. package/dist6/src/rest-component.js +0 -50
  363. package/dist6/src/rest-component.js.map +0 -1
  364. package/dist6/src/rest-server.d.ts +0 -211
  365. package/dist6/src/rest-server.js +0 -444
  366. package/dist6/src/rest-server.js.map +0 -1
  367. package/dist6/src/router/metadata.d.ts +0 -150
  368. package/dist6/src/router/metadata.js +0 -410
  369. package/dist6/src/router/metadata.js.map +0 -1
  370. package/dist6/src/router/routing-table.d.ts +0 -68
  371. package/dist6/src/router/routing-table.js +0 -218
  372. package/dist6/src/router/routing-table.js.map +0 -1
  373. package/dist6/src/sequence.js +0 -114
  374. package/dist6/src/sequence.js.map +0 -1
  375. package/dist6/src/writer.d.ts +0 -17
  376. package/dist6/src/writer.js +0 -87
  377. package/dist6/src/writer.js.map +0 -1
  378. package/index.d.ts +0 -6
  379. package/index.js +0 -9
  380. package/src/internal-types.ts +0 -96
  381. package/src/providers/bind-element.ts +0 -15
  382. package/src/providers/get-from-context.ts +0 -16
  383. package/src/providers/log-error-provider.ts +0 -23
  384. package/src/providers/parse-params.ts +0 -20
  385. package/src/providers/reject.ts +0 -27
  386. package/src/rest-component.ts +0 -54
  387. package/src/rest-server.ts +0 -584
  388. package/src/router/metadata.ts +0 -517
@@ -1,204 +0,0 @@
1
- "use strict";
2
- // Copyright IBM Corp. 2017. All Rights Reserved.
3
- // Node module: @loopback/rest
4
- // This file is licensed under the MIT License.
5
- // License text available at https://opensource.org/licenses/MIT
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- const context_1 = require("@loopback/context");
8
- const HttpErrors = require("http-errors");
9
- const assert = require("assert");
10
- const url = require("url");
11
- const debug = require('debug')('loopback:core:routing-table');
12
- // TODO(bajtos) Refactor this code to use Trie-based lookup,
13
- // e.g. via wayfarer/trie or find-my-way
14
- // See https://github.com/strongloop/loopback-next/issues/98
15
- const pathToRegexp = require("path-to-regexp");
16
- /**
17
- * Parse the URL of the incoming request and set additional properties
18
- * on this request object:
19
- * - `path`
20
- * - `query`
21
- *
22
- * @private
23
- * @param request
24
- */
25
- function parseRequestUrl(request) {
26
- // TODO(bajtos) The following parsing can be skipped when the router
27
- // is mounted on an express app
28
- const parsedRequest = request;
29
- const parsedUrl = url.parse(parsedRequest.url, true);
30
- parsedRequest.path = parsedUrl.pathname || '/';
31
- parsedRequest.query = parsedUrl.query;
32
- return parsedRequest;
33
- }
34
- exports.parseRequestUrl = parseRequestUrl;
35
- class RoutingTable {
36
- constructor() {
37
- this._routes = [];
38
- }
39
- registerController(controller, spec) {
40
- assert(typeof spec === 'object' && !!spec, 'API specification must be a non-null object');
41
- if (!spec.paths || !Object.keys(spec.paths).length) {
42
- return;
43
- }
44
- debug('Registering Controller with API', spec);
45
- const basePath = spec.basePath || '/';
46
- for (const p in spec.paths) {
47
- for (const verb in spec.paths[p]) {
48
- const opSpec = spec.paths[p][verb];
49
- const fullPath = RoutingTable.joinPath(basePath, p);
50
- const route = new ControllerRoute(verb, fullPath, opSpec, controller);
51
- this.registerRoute(route);
52
- }
53
- }
54
- }
55
- static joinPath(basePath, path) {
56
- const fullPath = [basePath, path]
57
- .join('/') // Join by /
58
- .replace(/(\/){2,}/g, '/') // Remove extra /
59
- .replace(/\/$/, '') // Remove trailing /
60
- .replace(/^(\/)?/, '/'); // Add leading /
61
- return fullPath;
62
- }
63
- registerRoute(route) {
64
- // TODO(bajtos) handle the case where opSpec.parameters contains $ref
65
- // See https://github.com/strongloop/loopback-next/issues/435
66
- debug('Registering route %s %s -> %s(%s)', route.verb, route.path, route.describe(), describeOperationParameters(route.spec));
67
- this._routes.push(route);
68
- }
69
- describeApiPaths() {
70
- const paths = {};
71
- for (const route of this._routes) {
72
- if (!paths[route.path]) {
73
- paths[route.path] = {};
74
- }
75
- paths[route.path][route.verb] = route.spec;
76
- }
77
- return paths;
78
- }
79
- find(request) {
80
- for (const entry of this._routes) {
81
- const match = entry.match(request);
82
- if (match)
83
- return match;
84
- }
85
- throw new HttpErrors.NotFound(`Endpoint "${request.method} ${request.path}" not found.`);
86
- }
87
- }
88
- exports.RoutingTable = RoutingTable;
89
- class BaseRoute {
90
- constructor(verb, path, spec) {
91
- this.path = path;
92
- this.spec = spec;
93
- this._keys = [];
94
- this.verb = verb.toLowerCase();
95
- // In Swagger, path parameters are wrapped in `{}`.
96
- // In Express.js, path parameters are prefixed with `:`
97
- path = path.replace(/{([^}]*)}(\/|$)/g, ':$1$2');
98
- this._pathRegexp = pathToRegexp(path, this._keys, {
99
- strict: false,
100
- end: true,
101
- });
102
- }
103
- match(request) {
104
- debug('trying endpoint', this);
105
- if (this.verb !== request.method.toLowerCase()) {
106
- debug(' -> verb mismatch');
107
- return undefined;
108
- }
109
- const match = this._pathRegexp.exec(request.path);
110
- if (!match) {
111
- debug(' -> path mismatch');
112
- return undefined;
113
- }
114
- const pathParams = this._buildPathParams(match);
115
- debug(' -> found with params: %j', pathParams);
116
- return createResolvedRoute(this, pathParams);
117
- }
118
- describe() {
119
- return `"${this.verb} ${this.path}"`;
120
- }
121
- _buildPathParams(pathMatch) {
122
- const pathParams = Object.create(null);
123
- for (const ix in this._keys) {
124
- const key = this._keys[ix];
125
- const matchIndex = +ix + 1;
126
- pathParams[key.name] = pathMatch[matchIndex];
127
- }
128
- return pathParams;
129
- }
130
- }
131
- exports.BaseRoute = BaseRoute;
132
- function createResolvedRoute(route, pathParams) {
133
- return Object.create(route, {
134
- pathParams: {
135
- writable: false,
136
- value: pathParams,
137
- },
138
- });
139
- }
140
- exports.createResolvedRoute = createResolvedRoute;
141
- class Route extends BaseRoute {
142
- constructor(verb, path, spec, _handler) {
143
- super(verb, path, spec);
144
- this.spec = spec;
145
- this._handler = _handler;
146
- }
147
- describe() {
148
- return this._handler.name || super.describe();
149
- }
150
- updateBindings(requestContext) {
151
- // no-op
152
- }
153
- async invokeHandler(requestContext, args) {
154
- return await this._handler(...args);
155
- }
156
- }
157
- exports.Route = Route;
158
- class ControllerRoute extends BaseRoute {
159
- constructor(verb, path, spec, _controllerCtor, methodName) {
160
- super(verb, path,
161
- // Add x-controller-name and x-operation-name if not present
162
- Object.assign({
163
- 'x-controller-name': _controllerCtor.name,
164
- 'x-operation-name': methodName,
165
- }, spec));
166
- this._controllerCtor = _controllerCtor;
167
- if (!methodName) {
168
- methodName = this.spec['x-operation-name'];
169
- }
170
- if (!methodName) {
171
- throw new Error('methodName must be provided either via the ControllerRoute argument ' +
172
- 'or via "x-operation-name" extension field in OpenAPI spec. ' +
173
- `Operation: "${verb} ${path}" ` +
174
- `Controller: ${this._controllerCtor.name}.`);
175
- }
176
- this._methodName = methodName;
177
- }
178
- describe() {
179
- return `${this._controllerCtor.name}.${this._methodName}`;
180
- }
181
- updateBindings(requestContext) {
182
- const ctor = this._controllerCtor;
183
- requestContext.bind('controller.current.ctor').to(ctor);
184
- requestContext.bind('controller.current.operation').to(this._methodName);
185
- }
186
- async invokeHandler(requestContext, args) {
187
- const controller = await this._createControllerInstance(requestContext);
188
- if (typeof controller[this._methodName] !== 'function') {
189
- throw new HttpErrors.NotFound(`Controller method not found: ${this.describe()}`);
190
- }
191
- return await controller[this._methodName](...args);
192
- }
193
- async _createControllerInstance(requestContext) {
194
- const valueOrPromise = context_1.instantiateClass(this._controllerCtor, requestContext);
195
- return (await Promise.resolve(valueOrPromise));
196
- }
197
- }
198
- exports.ControllerRoute = ControllerRoute;
199
- function describeOperationParameters(opSpec) {
200
- return (opSpec.parameters || [])
201
- .map(p => p.name)
202
- .join(', ');
203
- }
204
- //# sourceMappingURL=routing-table.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routing-table.js","sourceRoot":"","sources":["../../../src/router/routing-table.ts"],"names":[],"mappings":"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"}
@@ -1,81 +0,0 @@
1
- /// <reference types="node" />
2
- import { ServerResponse } from 'http';
3
- import { Context } from '@loopback/context';
4
- import { FindRoute, InvokeMethod, ParsedRequest, Send, Reject, ParseParams } from './internal-types';
5
- /**
6
- * A sequence function is a function implementing a custom
7
- * sequence of actions to handle an incoming request.
8
- */
9
- export declare type SequenceFunction = (sequence: DefaultSequence, request: ParsedRequest, response: ServerResponse) => Promise<void> | void;
10
- /**
11
- * A sequence handler is a class implementing sequence of actions
12
- * required to handle an incoming request.
13
- */
14
- export interface SequenceHandler {
15
- /**
16
- * Handle the request by running the configured sequence of actions.
17
- *
18
- * @param request The incoming HTTP request
19
- * @param response The HTTP server response where to write the result
20
- */
21
- handle(request: ParsedRequest, response: ServerResponse): Promise<void>;
22
- }
23
- /**
24
- * The default implementation of SequenceHandler.
25
- *
26
- * This class implements default Sequence for the LoopBack framework.
27
- * Default sequence is used if user hasn't defined their own Sequence
28
- * for their application.
29
- *
30
- * Sequence constructor() and run() methods are invoked from [[http-handler]]
31
- * when the API request comes in. User defines APIs in their Application
32
- * Controller class.
33
- *
34
- * User can bind their own Sequence to app as shown below
35
- * ```ts
36
- * app.bind(CoreBindings.SEQUENCE).toClass(MySequence);
37
- * ```
38
- */
39
- export declare class DefaultSequence implements SequenceHandler {
40
- ctx: Context;
41
- protected findRoute: FindRoute;
42
- protected parseParams: ParseParams;
43
- protected invoke: InvokeMethod;
44
- send: Send;
45
- reject: Reject;
46
- /**
47
- * Constructor: Injects findRoute, invokeMethod & logError
48
- * methods as promises.
49
- *
50
- * @param {Context} ctx The context for the sequence (injected via
51
- * RestBindings.Http.CONTEXT).
52
- * @param {FindRoute} findRoute Finds the appropriate controller method,
53
- * spec and args for invocation (injected via SequenceActions.FIND_ROUTE).
54
- * @param {ParseParams} parseParams The parameter parsing function (injected
55
- * via SequenceActions.PARSE_PARAMS).
56
- * @param {InvokeMethod} invoke Invokes the method specified by the route
57
- * (injected via SequenceActions.INVOKE_METHOD).
58
- * @param {Send} send The action to merge the invoke result with the response
59
- * (injected via SequenceActions.SEND)
60
- * @param {Reject} reject The action to take if the invoke returns a rejected
61
- * promise result (injected via SequenceActions.REJECT).
62
- */
63
- constructor(ctx: Context, findRoute: FindRoute, parseParams: ParseParams, invoke: InvokeMethod, send: Send, reject: Reject);
64
- /**
65
- * Runs the default sequence. Given a request and response, running the
66
- * sequence will produce a response or an error.
67
- *
68
- * Default sequence executes these steps
69
- * - Finds the appropriate controller method, swagger spec
70
- * and args for invocation
71
- * - Parses HTTP request to get API argument list
72
- * - Invokes the API which is defined in the Application Controller
73
- * - Writes the result from API into the HTTP response
74
- * - Error is caught and logged using 'logError' if any of the above steps
75
- * in the sequence fails with an error.
76
- * @param req Parsed incoming HTTP request
77
- * @param res HTTP server response with result from Application controller
78
- * method invocation
79
- */
80
- handle(req: ParsedRequest, res: ServerResponse): Promise<void>;
81
- }
@@ -1,104 +0,0 @@
1
- "use strict";
2
- // Copyright IBM Corp. 2017. All Rights Reserved.
3
- // Node module: @loopback/rest
4
- // This file is licensed under the MIT License.
5
- // License text available at https://opensource.org/licenses/MIT
6
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
7
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
10
- return c > 3 && r && Object.defineProperty(target, key, r), r;
11
- };
12
- var __metadata = (this && this.__metadata) || function (k, v) {
13
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
14
- };
15
- var __param = (this && this.__param) || function (paramIndex, decorator) {
16
- return function (target, key) { decorator(target, key, paramIndex); }
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- const debug = require('debug')('loopback:core:sequence');
20
- const context_1 = require("@loopback/context");
21
- const keys_1 = require("./keys");
22
- const SequenceActions = keys_1.RestBindings.SequenceActions;
23
- /**
24
- * The default implementation of SequenceHandler.
25
- *
26
- * This class implements default Sequence for the LoopBack framework.
27
- * Default sequence is used if user hasn't defined their own Sequence
28
- * for their application.
29
- *
30
- * Sequence constructor() and run() methods are invoked from [[http-handler]]
31
- * when the API request comes in. User defines APIs in their Application
32
- * Controller class.
33
- *
34
- * User can bind their own Sequence to app as shown below
35
- * ```ts
36
- * app.bind(CoreBindings.SEQUENCE).toClass(MySequence);
37
- * ```
38
- */
39
- let DefaultSequence = class DefaultSequence {
40
- /**
41
- * Constructor: Injects findRoute, invokeMethod & logError
42
- * methods as promises.
43
- *
44
- * @param {Context} ctx The context for the sequence (injected via
45
- * RestBindings.Http.CONTEXT).
46
- * @param {FindRoute} findRoute Finds the appropriate controller method,
47
- * spec and args for invocation (injected via SequenceActions.FIND_ROUTE).
48
- * @param {ParseParams} parseParams The parameter parsing function (injected
49
- * via SequenceActions.PARSE_PARAMS).
50
- * @param {InvokeMethod} invoke Invokes the method specified by the route
51
- * (injected via SequenceActions.INVOKE_METHOD).
52
- * @param {Send} send The action to merge the invoke result with the response
53
- * (injected via SequenceActions.SEND)
54
- * @param {Reject} reject The action to take if the invoke returns a rejected
55
- * promise result (injected via SequenceActions.REJECT).
56
- */
57
- constructor(ctx, findRoute, parseParams, invoke, send, reject) {
58
- this.ctx = ctx;
59
- this.findRoute = findRoute;
60
- this.parseParams = parseParams;
61
- this.invoke = invoke;
62
- this.send = send;
63
- this.reject = reject;
64
- }
65
- /**
66
- * Runs the default sequence. Given a request and response, running the
67
- * sequence will produce a response or an error.
68
- *
69
- * Default sequence executes these steps
70
- * - Finds the appropriate controller method, swagger spec
71
- * and args for invocation
72
- * - Parses HTTP request to get API argument list
73
- * - Invokes the API which is defined in the Application Controller
74
- * - Writes the result from API into the HTTP response
75
- * - Error is caught and logged using 'logError' if any of the above steps
76
- * in the sequence fails with an error.
77
- * @param req Parsed incoming HTTP request
78
- * @param res HTTP server response with result from Application controller
79
- * method invocation
80
- */
81
- async handle(req, res) {
82
- try {
83
- const route = this.findRoute(req);
84
- const args = await this.parseParams(req, route);
85
- const result = await this.invoke(route, args);
86
- debug('%s result -', route.describe(), result);
87
- this.send(res, result);
88
- }
89
- catch (err) {
90
- this.reject(res, req, err);
91
- }
92
- }
93
- };
94
- DefaultSequence = __decorate([
95
- __param(0, context_1.inject(keys_1.RestBindings.Http.CONTEXT)),
96
- __param(1, context_1.inject(SequenceActions.FIND_ROUTE)),
97
- __param(2, context_1.inject(SequenceActions.PARSE_PARAMS)),
98
- __param(3, context_1.inject(SequenceActions.INVOKE_METHOD)),
99
- __param(4, context_1.inject(SequenceActions.SEND)),
100
- __param(5, context_1.inject(SequenceActions.REJECT)),
101
- __metadata("design:paramtypes", [context_1.Context, Function, Function, Function, Function, Function])
102
- ], DefaultSequence);
103
- exports.DefaultSequence = DefaultSequence;
104
- //# sourceMappingURL=sequence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../src/sequence.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;;;;;;;;;;;AAEhE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAEzD,+CAAkD;AASlD,iCAAoC;AAEpC,MAAM,eAAe,GAAG,mBAAY,CAAC,eAAe,CAAC;AA0BrD;;;;;;;;;;;;;;;GAeG;AACH,IAAa,eAAe,GAA5B;IACE;;;;;;;;;;;;;;;;OAgBG;IACH,YAC4C,GAAY,EACR,SAAoB,EAClB,WAAwB,EACvB,MAAoB,EAChC,IAAU,EACR,MAAc;QALX,QAAG,GAAH,GAAG,CAAS;QACR,cAAS,GAAT,SAAS,CAAW;QAClB,gBAAW,GAAX,WAAW,CAAa;QACvB,WAAM,GAAN,MAAM,CAAc;QAChC,SAAI,GAAJ,IAAI,CAAM;QACR,WAAM,GAAN,MAAM,CAAQ;IACpD,CAAC;IAEJ;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,MAAM,CAAC,GAAkB,EAAE,GAAmB;QAClD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAE9C,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACzB,CAAC;QAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;CACF,CAAA;AAvDY,eAAe;IAmBvB,WAAA,gBAAM,CAAC,mBAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACjC,WAAA,gBAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;IAClC,WAAA,gBAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;IACpC,WAAA,gBAAM,CAAC,eAAe,CAAC,aAAa,CAAC,CAAA;IACrC,WAAA,gBAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IAC5B,WAAA,gBAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;qCALgB,iBAAO;GAnB7C,eAAe,CAuD3B;AAvDY,0CAAe"}
@@ -1,17 +0,0 @@
1
- /// <reference types="node" />
2
- import { ServerResponse as Response } from 'http';
3
- import { OperationRetval } from './internal-types';
4
- /**
5
- * Writes the result from Application controller method
6
- * into the HTTP response
7
- *
8
- * @param response HTTP Response
9
- * @param result Result from the API to write into HTTP Response
10
- */
11
- export declare function writeResultToResponse(response: Response, result: OperationRetval): void;
12
- /**
13
- * Write an error into the HTTP response
14
- * @param response HTTP response
15
- * @param error Error
16
- */
17
- export declare function writeErrorToResponse(response: Response, error: Error): void;
@@ -1,87 +0,0 @@
1
- "use strict";
2
- // Copyright IBM Corp. 2017. All Rights Reserved.
3
- // Node module: @loopback/rest
4
- // This file is licensed under the MIT License.
5
- // License text available at https://opensource.org/licenses/MIT
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- const stream_1 = require("stream");
8
- /**
9
- * Writes the result from Application controller method
10
- * into the HTTP response
11
- *
12
- * @param response HTTP Response
13
- * @param result Result from the API to write into HTTP Response
14
- */
15
- function writeResultToResponse(
16
- // not needed and responsibility should be in the sequence.send
17
- response,
18
- // result returned back from invoking controller method
19
- result) {
20
- if (result) {
21
- if (result instanceof stream_1.Readable || typeof result.pipe === 'function') {
22
- response.setHeader('Content-Type', 'application/octet-stream');
23
- // Stream
24
- result.pipe(response);
25
- return;
26
- }
27
- switch (typeof result) {
28
- case 'object':
29
- case 'boolean':
30
- case 'number':
31
- if (Buffer.isBuffer(result)) {
32
- // Buffer for binary data
33
- response.setHeader('Content-Type', 'application/octet-stream');
34
- }
35
- else {
36
- // TODO(ritch) remove this, should be configurable
37
- // See https://github.com/strongloop/loopback-next/issues/436
38
- response.setHeader('Content-Type', 'application/json');
39
- // TODO(bajtos) handle errors - JSON.stringify can throw
40
- result = JSON.stringify(result);
41
- }
42
- break;
43
- default:
44
- response.setHeader('Content-Type', 'text/plain');
45
- result = result.toString();
46
- break;
47
- }
48
- response.write(result);
49
- }
50
- response.end();
51
- }
52
- exports.writeResultToResponse = writeResultToResponse;
53
- /**
54
- * Write an error into the HTTP response
55
- * @param response HTTP response
56
- * @param error Error
57
- */
58
- function writeErrorToResponse(response, error) {
59
- const e = error;
60
- const statusCode = (response.statusCode = e.statusCode || e.status || 500);
61
- if (e.headers) {
62
- // Set response headers for the error
63
- for (const h in e.headers) {
64
- response.setHeader(h, e.headers[h]);
65
- }
66
- }
67
- // Build an error object
68
- const errObj = {
69
- statusCode,
70
- };
71
- if (e.expose) {
72
- // Expose other properties if the `expose` flag is set to `true`
73
- for (const p in e) {
74
- if (p === 'headers' ||
75
- p === 'expose' ||
76
- p === 'status' ||
77
- p === 'statusCode')
78
- continue;
79
- errObj[p] = e[p];
80
- }
81
- }
82
- response.setHeader('Content-Type', 'application/json');
83
- response.write(JSON.stringify(errObj));
84
- response.end();
85
- }
86
- exports.writeErrorToResponse = writeErrorToResponse;
87
- //# sourceMappingURL=writer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/writer.ts"],"names":[],"mappings":"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"}
package/dist6/index.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from './src';
package/dist6/index.js DELETED
@@ -1,12 +0,0 @@
1
- "use strict";
2
- // Copyright IBM Corp. 2013,2017. All Rights Reserved.
3
- // Node module: @loopback/rest
4
- // This file is licensed under the MIT License.
5
- // License text available at https://opensource.org/licenses/MIT
6
- function __export(m) {
7
- for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
8
- }
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- // NOTE(bajtos) This file is used by VSCode/TypeScriptServer at dev time only
11
- __export(require("./src"));
12
- //# sourceMappingURL=index.js.map
@@ -1,19 +0,0 @@
1
- /// <reference types="node" />
2
- import { Context } from '@loopback/context';
3
- import { PathsObject } from '@loopback/openapi-spec';
4
- import { ServerRequest, ServerResponse } from 'http';
5
- import { ControllerSpec } from './router/metadata';
6
- import { RoutingTable, ResolvedRoute, RouteEntry, ControllerClass } from './router/routing-table';
7
- import { ParsedRequest } from './internal-types';
8
- export declare class HttpHandler {
9
- protected _rootContext: Context;
10
- protected _routes: RoutingTable;
11
- handleRequest: (request: ServerRequest, response: ServerResponse) => Promise<void>;
12
- constructor(_rootContext: Context);
13
- registerController(name: ControllerClass, spec: ControllerSpec): void;
14
- registerRoute(route: RouteEntry): void;
15
- describeApiPaths(): PathsObject;
16
- findRoute(request: ParsedRequest): ResolvedRoute;
17
- protected _handleRequest(request: ServerRequest, response: ServerResponse): Promise<void>;
18
- protected _createRequestContext(req: ServerRequest, res: ServerResponse): Context;
19
- }
@@ -1,53 +0,0 @@
1
- "use strict";
2
- // Copyright IBM Corp. 2017. All Rights Reserved.
3
- // Node module: @loopback/rest
4
- // This file is licensed under the MIT License.
5
- // License text available at https://opensource.org/licenses/MIT
6
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
- return new (P || (P = Promise))(function (resolve, reject) {
8
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
9
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
10
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
11
- step((generator = generator.apply(thisArg, _arguments || [])).next());
12
- });
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const context_1 = require("@loopback/context");
16
- const routing_table_1 = require("./router/routing-table");
17
- const keys_1 = require("./keys");
18
- class HttpHandler {
19
- constructor(_rootContext) {
20
- this._rootContext = _rootContext;
21
- this._routes = new routing_table_1.RoutingTable();
22
- this.handleRequest = (req, res) => this._handleRequest(req, res);
23
- }
24
- registerController(name, spec) {
25
- this._routes.registerController(name, spec);
26
- }
27
- registerRoute(route) {
28
- this._routes.registerRoute(route);
29
- }
30
- describeApiPaths() {
31
- return this._routes.describeApiPaths();
32
- }
33
- findRoute(request) {
34
- return this._routes.find(request);
35
- }
36
- _handleRequest(request, response) {
37
- return __awaiter(this, void 0, void 0, function* () {
38
- const parsedRequest = routing_table_1.parseRequestUrl(request);
39
- const requestContext = this._createRequestContext(request, response);
40
- const sequence = yield requestContext.get(keys_1.RestBindings.SEQUENCE);
41
- yield sequence.handle(parsedRequest, response);
42
- });
43
- }
44
- _createRequestContext(req, res) {
45
- const requestContext = new context_1.Context(this._rootContext);
46
- requestContext.bind(keys_1.RestBindings.Http.REQUEST).to(req);
47
- requestContext.bind(keys_1.RestBindings.Http.RESPONSE).to(res);
48
- requestContext.bind(keys_1.RestBindings.Http.CONTEXT).to(requestContext);
49
- return requestContext;
50
- }
51
- }
52
- exports.HttpHandler = HttpHandler;
53
- //# sourceMappingURL=http-handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-handler.js","sourceRoot":"","sources":["../../src/http-handler.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;;;;;;;AAEhE,+CAA0C;AAM1C,0DAMgC;AAGhC,iCAAoC;AAEpC;IAQE,YAAsB,YAAqB;QAArB,iBAAY,GAAZ,YAAY,CAAS;QAPjC,YAAO,GAAiB,IAAI,4BAAY,EAAE,CAAC;QAQnD,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnE,CAAC;IAED,kBAAkB,CAAC,IAAqB,EAAE,IAAoB;QAC5D,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,aAAa,CAAC,KAAiB;QAC7B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,gBAAgB;QACd,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IACzC,CAAC;IAED,SAAS,CAAC,OAAsB;QAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAEe,cAAc,CAC5B,OAAsB,EACtB,QAAwB;;YAExB,MAAM,aAAa,GAAkB,+BAAe,CAAC,OAAO,CAAC,CAAC;YAC9D,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAErE,MAAM,QAAQ,GAAoB,MAAM,cAAc,CAAC,GAAG,CACxD,mBAAY,CAAC,QAAQ,CACtB,CAAC;YACF,MAAM,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC;KAAA;IAES,qBAAqB,CAC7B,GAAkB,EAClB,GAAmB;QAEnB,MAAM,cAAc,GAAG,IAAI,iBAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtD,cAAc,CAAC,IAAI,CAAC,mBAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACvD,cAAc,CAAC,IAAI,CAAC,mBAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACxD,cAAc,CAAC,IAAI,CAAC,mBAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;QAClE,MAAM,CAAC,cAAc,CAAC;IACxB,CAAC;CACF;AAnDD,kCAmDC"}
@@ -1,14 +0,0 @@
1
- export { ServerRequest, ServerResponse } from 'http';
2
- export { RouteEntry, RoutingTable, Route, ControllerRoute, ResolvedRoute, createResolvedRoute, parseRequestUrl } from './router/routing-table';
3
- export * from './router/metadata';
4
- export * from './providers';
5
- import * as HttpErrors from 'http-errors';
6
- export * from './parser';
7
- export { writeResultToResponse } from './writer';
8
- export { HttpErrors };
9
- export * from './http-handler';
10
- export * from './internal-types';
11
- export * from './keys';
12
- export * from './rest-component';
13
- export * from './rest-server';
14
- export * from './sequence';