elm-pages 3.0.0-beta.13 → 3.0.0-beta.14

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 (465) hide show
  1. package/README.md +1 -1
  2. package/codegen/elm-pages-codegen.js +1497 -1127
  3. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmi +0 -0
  4. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmo +0 -0
  5. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmo +0 -0
  6. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  7. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  8. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm.json +1 -1
  9. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1 -1
  10. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +152 -40
  11. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  12. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
  13. package/generator/dead-code-review/src/Pages/Review/DeadCodeEliminateData.elm +58 -10
  14. package/generator/dead-code-review/tests/Pages/Review/DeadCodeEliminateDataTest.elm +45 -29
  15. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  16. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  17. package/generator/review/elm-stuff/tests-0.19.1/elm.json +1 -1
  18. package/generator/review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1 -1
  19. package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +46 -5
  20. package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  21. package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
  22. package/generator/src/RouteBuilder.elm +66 -52
  23. package/generator/src/SharedTemplate.elm +3 -2
  24. package/generator/src/SiteConfig.elm +3 -2
  25. package/generator/src/build.js +5 -5
  26. package/generator/src/cli.js +7 -6
  27. package/generator/src/compatibility-key.js +1 -1
  28. package/generator/src/dev-server.js +7 -7
  29. package/generator/src/render-test.js +109 -0
  30. package/generator/src/render.js +77 -51
  31. package/generator/src/request-cache.js +149 -158
  32. package/generator/template/app/Api.elm +2 -2
  33. package/generator/template/app/Route/Index.elm +3 -3
  34. package/generator/template/app/Shared.elm +3 -3
  35. package/generator/template/app/Site.elm +3 -3
  36. package/package.json +10 -10
  37. package/src/ApiRoute.elm +63 -57
  38. package/src/BackendTask/Env.elm +87 -0
  39. package/src/{DataSource → BackendTask}/File.elm +89 -43
  40. package/src/{DataSource → BackendTask}/Glob.elm +134 -125
  41. package/src/BackendTask/Http.elm +637 -0
  42. package/src/{DataSource → BackendTask}/Internal/Glob.elm +1 -1
  43. package/src/BackendTask/Internal/Request.elm +28 -0
  44. package/src/BackendTask/Port.elm +202 -0
  45. package/src/{DataSource.elm → BackendTask.elm} +223 -207
  46. package/src/Exception.elm +37 -0
  47. package/src/Form.elm +20 -20
  48. package/src/Head.elm +7 -7
  49. package/src/Internal/ApiRoute.elm +7 -5
  50. package/src/PageServerResponse.elm +6 -1
  51. package/src/Pages/Generate.elm +35 -63
  52. package/src/Pages/Internal/Platform/Cli.elm +422 -731
  53. package/src/Pages/Internal/Platform/Cli.elm.bak +22 -22
  54. package/src/Pages/Internal/Platform/CompatibilityKey.elm +1 -1
  55. package/src/Pages/Internal/Platform/Effect.elm +0 -1
  56. package/src/Pages/Internal/Platform/GeneratorApplication.elm +51 -111
  57. package/src/Pages/Internal/Platform/StaticResponses.elm +73 -287
  58. package/src/Pages/Internal/Platform/ToJsPayload.elm +4 -4
  59. package/src/Pages/Internal/Platform.elm +25 -31
  60. package/src/Pages/Internal/Script.elm +3 -2
  61. package/src/Pages/Internal/StaticHttpBody.elm +35 -1
  62. package/src/Pages/Manifest.elm +5 -4
  63. package/src/Pages/ProgramConfig.elm +8 -7
  64. package/src/Pages/Script.elm +28 -13
  65. package/src/Pages/SiteConfig.elm +3 -2
  66. package/src/Pages/StaticHttp/Request.elm +2 -2
  67. package/src/Pages/StaticHttpRequest.elm +39 -94
  68. package/src/RequestsAndPending.elm +8 -19
  69. package/src/Server/Request.elm +14 -14
  70. package/src/Server/Session.elm +34 -34
  71. package/src/Server/SetCookie.elm +1 -1
  72. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/dependencies.75364bef27ac5a049b87c3325f846fc6dbda23b8ed7187ed06748b96bb6a50a7.json +0 -1
  73. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Console-Text.elmi +0 -0
  74. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Console-Text.elmo +0 -0
  75. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmi +0 -0
  76. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmo +0 -0
  77. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmi +0 -0
  78. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmo +0 -0
  79. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Generated-Main.elmi +0 -0
  80. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Generated-Main.elmo +0 -0
  81. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format-Color.elmi +0 -0
  82. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format-Color.elmo +0 -0
  83. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format-Monochrome.elmi +0 -0
  84. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format-Monochrome.elmo +0 -0
  85. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format.elmi +0 -0
  86. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format.elmo +0 -0
  87. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console.elmi +0 -0
  88. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console.elmo +0 -0
  89. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Highlightable.elmi +0 -0
  90. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Highlightable.elmo +0 -0
  91. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-JUnit.elmi +0 -0
  92. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-JUnit.elmo +0 -0
  93. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Json.elmi +0 -0
  94. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Json.elmo +0 -0
  95. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Reporter.elmi +0 -0
  96. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Reporter.elmo +0 -0
  97. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-TestResults.elmi +0 -0
  98. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-TestResults.elmo +0 -0
  99. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-JsMessage.elmi +0 -0
  100. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-JsMessage.elmo +0 -0
  101. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node-Vendor-Console.elmi +0 -0
  102. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node-Vendor-Console.elmo +0 -0
  103. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node-Vendor-Diff.elmi +0 -0
  104. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node-Vendor-Diff.elmo +0 -0
  105. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node.elmi +0 -0
  106. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node.elmo +0 -0
  107. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/d.dat +0 -0
  108. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/i.dat +0 -0
  109. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/lock +0 -0
  110. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/o.dat +0 -0
  111. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm.json +0 -38
  112. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elmTestOutput.js +0 -29603
  113. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/package.json +0 -1
  114. package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/src/Test/Generated/Main.elm +0 -27
  115. package/generator/dead-code-review/node_modules/.package-lock.json +0 -484
  116. package/generator/dead-code-review/node_modules/ansi-styles/index.d.ts +0 -345
  117. package/generator/dead-code-review/node_modules/ansi-styles/index.js +0 -163
  118. package/generator/dead-code-review/node_modules/ansi-styles/license +0 -9
  119. package/generator/dead-code-review/node_modules/ansi-styles/package.json +0 -56
  120. package/generator/dead-code-review/node_modules/ansi-styles/readme.md +0 -152
  121. package/generator/dead-code-review/node_modules/anymatch/LICENSE +0 -15
  122. package/generator/dead-code-review/node_modules/anymatch/README.md +0 -87
  123. package/generator/dead-code-review/node_modules/anymatch/index.d.ts +0 -20
  124. package/generator/dead-code-review/node_modules/anymatch/index.js +0 -104
  125. package/generator/dead-code-review/node_modules/anymatch/package.json +0 -48
  126. package/generator/dead-code-review/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  127. package/generator/dead-code-review/node_modules/balanced-match/LICENSE.md +0 -21
  128. package/generator/dead-code-review/node_modules/balanced-match/README.md +0 -97
  129. package/generator/dead-code-review/node_modules/balanced-match/index.js +0 -62
  130. package/generator/dead-code-review/node_modules/balanced-match/package.json +0 -48
  131. package/generator/dead-code-review/node_modules/binary-extensions/binary-extensions.json +0 -260
  132. package/generator/dead-code-review/node_modules/binary-extensions/binary-extensions.json.d.ts +0 -3
  133. package/generator/dead-code-review/node_modules/binary-extensions/index.d.ts +0 -14
  134. package/generator/dead-code-review/node_modules/binary-extensions/index.js +0 -1
  135. package/generator/dead-code-review/node_modules/binary-extensions/license +0 -9
  136. package/generator/dead-code-review/node_modules/binary-extensions/package.json +0 -38
  137. package/generator/dead-code-review/node_modules/binary-extensions/readme.md +0 -41
  138. package/generator/dead-code-review/node_modules/brace-expansion/.github/FUNDING.yml +0 -2
  139. package/generator/dead-code-review/node_modules/brace-expansion/LICENSE +0 -21
  140. package/generator/dead-code-review/node_modules/brace-expansion/README.md +0 -135
  141. package/generator/dead-code-review/node_modules/brace-expansion/index.js +0 -203
  142. package/generator/dead-code-review/node_modules/brace-expansion/package.json +0 -46
  143. package/generator/dead-code-review/node_modules/braces/CHANGELOG.md +0 -184
  144. package/generator/dead-code-review/node_modules/braces/LICENSE +0 -21
  145. package/generator/dead-code-review/node_modules/braces/README.md +0 -593
  146. package/generator/dead-code-review/node_modules/braces/index.js +0 -170
  147. package/generator/dead-code-review/node_modules/braces/lib/compile.js +0 -57
  148. package/generator/dead-code-review/node_modules/braces/lib/constants.js +0 -57
  149. package/generator/dead-code-review/node_modules/braces/lib/expand.js +0 -113
  150. package/generator/dead-code-review/node_modules/braces/lib/parse.js +0 -333
  151. package/generator/dead-code-review/node_modules/braces/lib/stringify.js +0 -32
  152. package/generator/dead-code-review/node_modules/braces/lib/utils.js +0 -112
  153. package/generator/dead-code-review/node_modules/braces/package.json +0 -77
  154. package/generator/dead-code-review/node_modules/chalk/index.d.ts +0 -415
  155. package/generator/dead-code-review/node_modules/chalk/license +0 -9
  156. package/generator/dead-code-review/node_modules/chalk/package.json +0 -68
  157. package/generator/dead-code-review/node_modules/chalk/readme.md +0 -341
  158. package/generator/dead-code-review/node_modules/chalk/source/index.js +0 -229
  159. package/generator/dead-code-review/node_modules/chalk/source/templates.js +0 -134
  160. package/generator/dead-code-review/node_modules/chalk/source/util.js +0 -39
  161. package/generator/dead-code-review/node_modules/chokidar/LICENSE +0 -21
  162. package/generator/dead-code-review/node_modules/chokidar/README.md +0 -308
  163. package/generator/dead-code-review/node_modules/chokidar/index.js +0 -973
  164. package/generator/dead-code-review/node_modules/chokidar/lib/constants.js +0 -65
  165. package/generator/dead-code-review/node_modules/chokidar/lib/fsevents-handler.js +0 -524
  166. package/generator/dead-code-review/node_modules/chokidar/lib/nodefs-handler.js +0 -654
  167. package/generator/dead-code-review/node_modules/chokidar/package.json +0 -85
  168. package/generator/dead-code-review/node_modules/chokidar/types/index.d.ts +0 -188
  169. package/generator/dead-code-review/node_modules/color-convert/CHANGELOG.md +0 -54
  170. package/generator/dead-code-review/node_modules/color-convert/LICENSE +0 -21
  171. package/generator/dead-code-review/node_modules/color-convert/README.md +0 -68
  172. package/generator/dead-code-review/node_modules/color-convert/conversions.js +0 -839
  173. package/generator/dead-code-review/node_modules/color-convert/index.js +0 -81
  174. package/generator/dead-code-review/node_modules/color-convert/package.json +0 -48
  175. package/generator/dead-code-review/node_modules/color-convert/route.js +0 -97
  176. package/generator/dead-code-review/node_modules/color-name/LICENSE +0 -8
  177. package/generator/dead-code-review/node_modules/color-name/README.md +0 -11
  178. package/generator/dead-code-review/node_modules/color-name/index.js +0 -152
  179. package/generator/dead-code-review/node_modules/color-name/package.json +0 -28
  180. package/generator/dead-code-review/node_modules/commander/LICENSE +0 -22
  181. package/generator/dead-code-review/node_modules/commander/Readme.md +0 -1118
  182. package/generator/dead-code-review/node_modules/commander/esm.mjs +0 -16
  183. package/generator/dead-code-review/node_modules/commander/index.js +0 -27
  184. package/generator/dead-code-review/node_modules/commander/lib/argument.js +0 -147
  185. package/generator/dead-code-review/node_modules/commander/lib/command.js +0 -2160
  186. package/generator/dead-code-review/node_modules/commander/lib/error.js +0 -45
  187. package/generator/dead-code-review/node_modules/commander/lib/help.js +0 -406
  188. package/generator/dead-code-review/node_modules/commander/lib/option.js +0 -326
  189. package/generator/dead-code-review/node_modules/commander/lib/suggestSimilar.js +0 -100
  190. package/generator/dead-code-review/node_modules/commander/package-support.json +0 -16
  191. package/generator/dead-code-review/node_modules/commander/package.json +0 -80
  192. package/generator/dead-code-review/node_modules/commander/typings/index.d.ts +0 -881
  193. package/generator/dead-code-review/node_modules/cross-spawn/CHANGELOG.md +0 -130
  194. package/generator/dead-code-review/node_modules/cross-spawn/LICENSE +0 -21
  195. package/generator/dead-code-review/node_modules/cross-spawn/README.md +0 -96
  196. package/generator/dead-code-review/node_modules/cross-spawn/index.js +0 -39
  197. package/generator/dead-code-review/node_modules/cross-spawn/lib/enoent.js +0 -59
  198. package/generator/dead-code-review/node_modules/cross-spawn/lib/parse.js +0 -91
  199. package/generator/dead-code-review/node_modules/cross-spawn/lib/util/escape.js +0 -45
  200. package/generator/dead-code-review/node_modules/cross-spawn/lib/util/readShebang.js +0 -23
  201. package/generator/dead-code-review/node_modules/cross-spawn/lib/util/resolveCommand.js +0 -52
  202. package/generator/dead-code-review/node_modules/cross-spawn/package.json +0 -73
  203. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/LICENSE +0 -373
  204. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/README.md +0 -64
  205. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm.d.ts +0 -22
  206. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm.js +0 -419
  207. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm_bg.wasm +0 -0
  208. package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/package.json +0 -27
  209. package/generator/dead-code-review/node_modules/elm-test/LICENSE +0 -27
  210. package/generator/dead-code-review/node_modules/elm-test/README.md +0 -192
  211. package/generator/dead-code-review/node_modules/elm-test/bin/elm-test +0 -3
  212. package/generator/dead-code-review/node_modules/elm-test/elm/elm.json +0 -25
  213. package/generator/dead-code-review/node_modules/elm-test/elm/src/Console/Text.elm +0 -217
  214. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format/Color.elm +0 -30
  215. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format/Monochrome.elm +0 -39
  216. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format.elm +0 -212
  217. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console.elm +0 -207
  218. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Highlightable.elm +0 -48
  219. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/JUnit.elm +0 -161
  220. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Json.elm +0 -158
  221. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Reporter.elm +0 -53
  222. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/TestResults.elm +0 -113
  223. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/JsMessage.elm +0 -38
  224. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node/Vendor/Console.elm +0 -230
  225. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node/Vendor/Diff.elm +0 -326
  226. package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node.elm +0 -440
  227. package/generator/dead-code-review/node_modules/elm-test/lib/Compile.js +0 -110
  228. package/generator/dead-code-review/node_modules/elm-test/lib/DependencyProvider.js +0 -343
  229. package/generator/dead-code-review/node_modules/elm-test/lib/ElmCompiler.js +0 -109
  230. package/generator/dead-code-review/node_modules/elm-test/lib/ElmHome.js +0 -47
  231. package/generator/dead-code-review/node_modules/elm-test/lib/ElmJson.js +0 -194
  232. package/generator/dead-code-review/node_modules/elm-test/lib/FindTests.js +0 -276
  233. package/generator/dead-code-review/node_modules/elm-test/lib/Generate.js +0 -294
  234. package/generator/dead-code-review/node_modules/elm-test/lib/Install.js +0 -290
  235. package/generator/dead-code-review/node_modules/elm-test/lib/Parser.js +0 -941
  236. package/generator/dead-code-review/node_modules/elm-test/lib/Project.js +0 -117
  237. package/generator/dead-code-review/node_modules/elm-test/lib/Report.js +0 -23
  238. package/generator/dead-code-review/node_modules/elm-test/lib/RunTests.js +0 -322
  239. package/generator/dead-code-review/node_modules/elm-test/lib/Solve.js +0 -76
  240. package/generator/dead-code-review/node_modules/elm-test/lib/Supervisor.js +0 -294
  241. package/generator/dead-code-review/node_modules/elm-test/lib/SyncGet.js +0 -45
  242. package/generator/dead-code-review/node_modules/elm-test/lib/SyncGetWorker.js +0 -36
  243. package/generator/dead-code-review/node_modules/elm-test/lib/elm-test.js +0 -318
  244. package/generator/dead-code-review/node_modules/elm-test/package.json +0 -69
  245. package/generator/dead-code-review/node_modules/elm-test/templates/after.js +0 -29
  246. package/generator/dead-code-review/node_modules/elm-test/templates/before.js +0 -58
  247. package/generator/dead-code-review/node_modules/elm-test/templates/tests/Example.elm +0 -10
  248. package/generator/dead-code-review/node_modules/fill-range/LICENSE +0 -21
  249. package/generator/dead-code-review/node_modules/fill-range/README.md +0 -237
  250. package/generator/dead-code-review/node_modules/fill-range/index.js +0 -249
  251. package/generator/dead-code-review/node_modules/fill-range/package.json +0 -69
  252. package/generator/dead-code-review/node_modules/fs.realpath/LICENSE +0 -43
  253. package/generator/dead-code-review/node_modules/fs.realpath/README.md +0 -33
  254. package/generator/dead-code-review/node_modules/fs.realpath/index.js +0 -66
  255. package/generator/dead-code-review/node_modules/fs.realpath/old.js +0 -303
  256. package/generator/dead-code-review/node_modules/fs.realpath/package.json +0 -26
  257. package/generator/dead-code-review/node_modules/fsevents/LICENSE +0 -22
  258. package/generator/dead-code-review/node_modules/fsevents/README.md +0 -83
  259. package/generator/dead-code-review/node_modules/fsevents/fsevents.d.ts +0 -46
  260. package/generator/dead-code-review/node_modules/fsevents/fsevents.js +0 -82
  261. package/generator/dead-code-review/node_modules/fsevents/fsevents.node +0 -0
  262. package/generator/dead-code-review/node_modules/fsevents/package.json +0 -62
  263. package/generator/dead-code-review/node_modules/glob/LICENSE +0 -15
  264. package/generator/dead-code-review/node_modules/glob/README.md +0 -378
  265. package/generator/dead-code-review/node_modules/glob/common.js +0 -240
  266. package/generator/dead-code-review/node_modules/glob/glob.js +0 -790
  267. package/generator/dead-code-review/node_modules/glob/package.json +0 -55
  268. package/generator/dead-code-review/node_modules/glob/sync.js +0 -486
  269. package/generator/dead-code-review/node_modules/glob-parent/CHANGELOG.md +0 -110
  270. package/generator/dead-code-review/node_modules/glob-parent/LICENSE +0 -15
  271. package/generator/dead-code-review/node_modules/glob-parent/README.md +0 -137
  272. package/generator/dead-code-review/node_modules/glob-parent/index.js +0 -42
  273. package/generator/dead-code-review/node_modules/glob-parent/package.json +0 -48
  274. package/generator/dead-code-review/node_modules/graceful-fs/LICENSE +0 -15
  275. package/generator/dead-code-review/node_modules/graceful-fs/README.md +0 -143
  276. package/generator/dead-code-review/node_modules/graceful-fs/clone.js +0 -23
  277. package/generator/dead-code-review/node_modules/graceful-fs/graceful-fs.js +0 -448
  278. package/generator/dead-code-review/node_modules/graceful-fs/legacy-streams.js +0 -118
  279. package/generator/dead-code-review/node_modules/graceful-fs/package.json +0 -50
  280. package/generator/dead-code-review/node_modules/graceful-fs/polyfills.js +0 -355
  281. package/generator/dead-code-review/node_modules/has-flag/index.d.ts +0 -39
  282. package/generator/dead-code-review/node_modules/has-flag/index.js +0 -8
  283. package/generator/dead-code-review/node_modules/has-flag/license +0 -9
  284. package/generator/dead-code-review/node_modules/has-flag/package.json +0 -46
  285. package/generator/dead-code-review/node_modules/has-flag/readme.md +0 -89
  286. package/generator/dead-code-review/node_modules/inflight/LICENSE +0 -15
  287. package/generator/dead-code-review/node_modules/inflight/README.md +0 -37
  288. package/generator/dead-code-review/node_modules/inflight/inflight.js +0 -54
  289. package/generator/dead-code-review/node_modules/inflight/package.json +0 -29
  290. package/generator/dead-code-review/node_modules/inherits/LICENSE +0 -16
  291. package/generator/dead-code-review/node_modules/inherits/README.md +0 -42
  292. package/generator/dead-code-review/node_modules/inherits/inherits.js +0 -9
  293. package/generator/dead-code-review/node_modules/inherits/inherits_browser.js +0 -27
  294. package/generator/dead-code-review/node_modules/inherits/package.json +0 -29
  295. package/generator/dead-code-review/node_modules/is-binary-path/index.d.ts +0 -17
  296. package/generator/dead-code-review/node_modules/is-binary-path/index.js +0 -7
  297. package/generator/dead-code-review/node_modules/is-binary-path/license +0 -9
  298. package/generator/dead-code-review/node_modules/is-binary-path/package.json +0 -40
  299. package/generator/dead-code-review/node_modules/is-binary-path/readme.md +0 -34
  300. package/generator/dead-code-review/node_modules/is-extglob/LICENSE +0 -21
  301. package/generator/dead-code-review/node_modules/is-extglob/README.md +0 -107
  302. package/generator/dead-code-review/node_modules/is-extglob/index.js +0 -20
  303. package/generator/dead-code-review/node_modules/is-extglob/package.json +0 -69
  304. package/generator/dead-code-review/node_modules/is-glob/LICENSE +0 -21
  305. package/generator/dead-code-review/node_modules/is-glob/README.md +0 -206
  306. package/generator/dead-code-review/node_modules/is-glob/index.js +0 -150
  307. package/generator/dead-code-review/node_modules/is-glob/package.json +0 -81
  308. package/generator/dead-code-review/node_modules/is-number/LICENSE +0 -21
  309. package/generator/dead-code-review/node_modules/is-number/README.md +0 -187
  310. package/generator/dead-code-review/node_modules/is-number/index.js +0 -18
  311. package/generator/dead-code-review/node_modules/is-number/package.json +0 -82
  312. package/generator/dead-code-review/node_modules/isexe/LICENSE +0 -15
  313. package/generator/dead-code-review/node_modules/isexe/README.md +0 -51
  314. package/generator/dead-code-review/node_modules/isexe/index.js +0 -57
  315. package/generator/dead-code-review/node_modules/isexe/mode.js +0 -41
  316. package/generator/dead-code-review/node_modules/isexe/package.json +0 -31
  317. package/generator/dead-code-review/node_modules/isexe/test/basic.js +0 -221
  318. package/generator/dead-code-review/node_modules/isexe/windows.js +0 -42
  319. package/generator/dead-code-review/node_modules/minimatch/LICENSE +0 -15
  320. package/generator/dead-code-review/node_modules/minimatch/README.md +0 -259
  321. package/generator/dead-code-review/node_modules/minimatch/lib/path.js +0 -4
  322. package/generator/dead-code-review/node_modules/minimatch/minimatch.js +0 -906
  323. package/generator/dead-code-review/node_modules/minimatch/package.json +0 -32
  324. package/generator/dead-code-review/node_modules/normalize-path/LICENSE +0 -21
  325. package/generator/dead-code-review/node_modules/normalize-path/README.md +0 -127
  326. package/generator/dead-code-review/node_modules/normalize-path/index.js +0 -35
  327. package/generator/dead-code-review/node_modules/normalize-path/package.json +0 -77
  328. package/generator/dead-code-review/node_modules/once/LICENSE +0 -15
  329. package/generator/dead-code-review/node_modules/once/README.md +0 -79
  330. package/generator/dead-code-review/node_modules/once/once.js +0 -42
  331. package/generator/dead-code-review/node_modules/once/package.json +0 -33
  332. package/generator/dead-code-review/node_modules/path-key/index.d.ts +0 -40
  333. package/generator/dead-code-review/node_modules/path-key/index.js +0 -16
  334. package/generator/dead-code-review/node_modules/path-key/license +0 -9
  335. package/generator/dead-code-review/node_modules/path-key/package.json +0 -39
  336. package/generator/dead-code-review/node_modules/path-key/readme.md +0 -61
  337. package/generator/dead-code-review/node_modules/picomatch/CHANGELOG.md +0 -136
  338. package/generator/dead-code-review/node_modules/picomatch/LICENSE +0 -21
  339. package/generator/dead-code-review/node_modules/picomatch/README.md +0 -708
  340. package/generator/dead-code-review/node_modules/picomatch/index.js +0 -3
  341. package/generator/dead-code-review/node_modules/picomatch/lib/constants.js +0 -179
  342. package/generator/dead-code-review/node_modules/picomatch/lib/parse.js +0 -1091
  343. package/generator/dead-code-review/node_modules/picomatch/lib/picomatch.js +0 -342
  344. package/generator/dead-code-review/node_modules/picomatch/lib/scan.js +0 -391
  345. package/generator/dead-code-review/node_modules/picomatch/lib/utils.js +0 -64
  346. package/generator/dead-code-review/node_modules/picomatch/package.json +0 -81
  347. package/generator/dead-code-review/node_modules/readdirp/LICENSE +0 -21
  348. package/generator/dead-code-review/node_modules/readdirp/README.md +0 -122
  349. package/generator/dead-code-review/node_modules/readdirp/index.d.ts +0 -43
  350. package/generator/dead-code-review/node_modules/readdirp/index.js +0 -287
  351. package/generator/dead-code-review/node_modules/readdirp/package.json +0 -122
  352. package/generator/dead-code-review/node_modules/shebang-command/index.js +0 -19
  353. package/generator/dead-code-review/node_modules/shebang-command/license +0 -9
  354. package/generator/dead-code-review/node_modules/shebang-command/package.json +0 -34
  355. package/generator/dead-code-review/node_modules/shebang-command/readme.md +0 -34
  356. package/generator/dead-code-review/node_modules/shebang-regex/index.d.ts +0 -22
  357. package/generator/dead-code-review/node_modules/shebang-regex/index.js +0 -2
  358. package/generator/dead-code-review/node_modules/shebang-regex/license +0 -9
  359. package/generator/dead-code-review/node_modules/shebang-regex/package.json +0 -35
  360. package/generator/dead-code-review/node_modules/shebang-regex/readme.md +0 -33
  361. package/generator/dead-code-review/node_modules/split/.travis.yml +0 -3
  362. package/generator/dead-code-review/node_modules/split/LICENCE +0 -22
  363. package/generator/dead-code-review/node_modules/split/examples/pretty.js +0 -26
  364. package/generator/dead-code-review/node_modules/split/index.js +0 -63
  365. package/generator/dead-code-review/node_modules/split/package.json +0 -30
  366. package/generator/dead-code-review/node_modules/split/readme.markdown +0 -72
  367. package/generator/dead-code-review/node_modules/split/test/options.asynct.js +0 -46
  368. package/generator/dead-code-review/node_modules/split/test/partitioned_unicode.js +0 -34
  369. package/generator/dead-code-review/node_modules/split/test/split.asynct.js +0 -137
  370. package/generator/dead-code-review/node_modules/split/test/try_catch.asynct.js +0 -51
  371. package/generator/dead-code-review/node_modules/supports-color/browser.js +0 -5
  372. package/generator/dead-code-review/node_modules/supports-color/index.js +0 -135
  373. package/generator/dead-code-review/node_modules/supports-color/license +0 -9
  374. package/generator/dead-code-review/node_modules/supports-color/package.json +0 -53
  375. package/generator/dead-code-review/node_modules/supports-color/readme.md +0 -76
  376. package/generator/dead-code-review/node_modules/through/.travis.yml +0 -5
  377. package/generator/dead-code-review/node_modules/through/LICENSE.APACHE2 +0 -15
  378. package/generator/dead-code-review/node_modules/through/LICENSE.MIT +0 -24
  379. package/generator/dead-code-review/node_modules/through/index.js +0 -108
  380. package/generator/dead-code-review/node_modules/through/package.json +0 -36
  381. package/generator/dead-code-review/node_modules/through/readme.markdown +0 -64
  382. package/generator/dead-code-review/node_modules/through/test/async.js +0 -28
  383. package/generator/dead-code-review/node_modules/through/test/auto-destroy.js +0 -30
  384. package/generator/dead-code-review/node_modules/through/test/buffering.js +0 -71
  385. package/generator/dead-code-review/node_modules/through/test/end.js +0 -45
  386. package/generator/dead-code-review/node_modules/through/test/index.js +0 -133
  387. package/generator/dead-code-review/node_modules/to-regex-range/LICENSE +0 -21
  388. package/generator/dead-code-review/node_modules/to-regex-range/README.md +0 -305
  389. package/generator/dead-code-review/node_modules/to-regex-range/index.js +0 -288
  390. package/generator/dead-code-review/node_modules/to-regex-range/package.json +0 -88
  391. package/generator/dead-code-review/node_modules/which/CHANGELOG.md +0 -166
  392. package/generator/dead-code-review/node_modules/which/LICENSE +0 -15
  393. package/generator/dead-code-review/node_modules/which/README.md +0 -54
  394. package/generator/dead-code-review/node_modules/which/bin/node-which +0 -52
  395. package/generator/dead-code-review/node_modules/which/package.json +0 -43
  396. package/generator/dead-code-review/node_modules/which/which.js +0 -125
  397. package/generator/dead-code-review/node_modules/wrappy/LICENSE +0 -15
  398. package/generator/dead-code-review/node_modules/wrappy/README.md +0 -36
  399. package/generator/dead-code-review/node_modules/wrappy/package.json +0 -29
  400. package/generator/dead-code-review/node_modules/wrappy/wrappy.js +0 -33
  401. package/generator/dead-code-review/node_modules/xmlbuilder/.nycrc +0 -6
  402. package/generator/dead-code-review/node_modules/xmlbuilder/.vscode/launch.json +0 -23
  403. package/generator/dead-code-review/node_modules/xmlbuilder/CHANGELOG.md +0 -593
  404. package/generator/dead-code-review/node_modules/xmlbuilder/LICENSE +0 -21
  405. package/generator/dead-code-review/node_modules/xmlbuilder/README.md +0 -103
  406. package/generator/dead-code-review/node_modules/xmlbuilder/lib/Derivation.js +0 -10
  407. package/generator/dead-code-review/node_modules/xmlbuilder/lib/DocumentPosition.js +0 -12
  408. package/generator/dead-code-review/node_modules/xmlbuilder/lib/NodeType.js +0 -25
  409. package/generator/dead-code-review/node_modules/xmlbuilder/lib/OperationType.js +0 -11
  410. package/generator/dead-code-review/node_modules/xmlbuilder/lib/Utility.js +0 -88
  411. package/generator/dead-code-review/node_modules/xmlbuilder/lib/WriterState.js +0 -10
  412. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLAttribute.js +0 -130
  413. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLCData.js +0 -41
  414. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLCharacterData.js +0 -86
  415. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLComment.js +0 -41
  416. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js +0 -80
  417. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js +0 -20
  418. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMImplementation.js +0 -55
  419. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMStringList.js +0 -44
  420. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDAttList.js +0 -66
  421. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDElement.js +0 -44
  422. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDEntity.js +0 -115
  423. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDNotation.js +0 -66
  424. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDeclaration.js +0 -51
  425. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocType.js +0 -235
  426. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocument.js +0 -282
  427. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocumentCB.js +0 -650
  428. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocumentFragment.js +0 -21
  429. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDummy.js +0 -39
  430. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLElement.js +0 -334
  431. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js +0 -77
  432. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNode.js +0 -999
  433. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNodeFilter.js +0 -51
  434. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNodeList.js +0 -45
  435. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js +0 -56
  436. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLRaw.js +0 -40
  437. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStreamWriter.js +0 -209
  438. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStringWriter.js +0 -40
  439. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStringifier.js +0 -291
  440. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLText.js +0 -82
  441. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLTypeInfo.js +0 -23
  442. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLUserDataHandler.js +0 -27
  443. package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLWriterBase.js +0 -485
  444. package/generator/dead-code-review/node_modules/xmlbuilder/lib/index.js +0 -120
  445. package/generator/dead-code-review/node_modules/xmlbuilder/package.json +0 -51
  446. package/generator/dead-code-review/node_modules/xmlbuilder/perf/basic/escaping.coffee +0 -244
  447. package/generator/dead-code-review/node_modules/xmlbuilder/perf/basic/object.coffee +0 -21
  448. package/generator/dead-code-review/node_modules/xmlbuilder/perf/index.coffee +0 -161
  449. package/generator/dead-code-review/node_modules/xmlbuilder/perf/perf.list +0 -11
  450. package/generator/dead-code-review/node_modules/xmlbuilder/typings/index.d.ts +0 -1771
  451. package/generator/review/elm-stuff/0.19.1/d.dat +0 -0
  452. package/generator/review/elm-stuff/0.19.1/i.dat +0 -0
  453. package/generator/review/elm-stuff/0.19.1/o.dat +0 -0
  454. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm-stuff/0.19.1/d.dat +0 -0
  455. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm-stuff/0.19.1/i.dat +0 -0
  456. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm-stuff/0.19.1/o.dat +0 -0
  457. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm.json +0 -25
  458. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm-stuff/0.19.1/d.dat +0 -0
  459. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm-stuff/0.19.1/i.dat +0 -0
  460. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm-stuff/0.19.1/o.dat +0 -0
  461. package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm.json +0 -41
  462. package/src/DataSource/Env.elm +0 -62
  463. package/src/DataSource/Http.elm +0 -446
  464. package/src/DataSource/Internal/Request.elm +0 -20
  465. package/src/DataSource/Port.elm +0 -90
@@ -1,31 +1,32 @@
1
- module DataSource exposing
2
- ( DataSource
1
+ module BackendTask exposing
2
+ ( BackendTask
3
3
  , map, succeed, fail
4
4
  , fromResult
5
5
  , andThen, resolve, combine
6
6
  , andMap
7
7
  , map2, map3, map4, map5, map6, map7, map8, map9
8
+ , catch, throw, mapError, onError, toResult
8
9
  )
9
10
 
10
- {-| In an `elm-pages` app, each Route Module can define a value `data` which is a `DataSource` that will be resolved **before** `init` is called. That means it is also available
11
+ {-| In an `elm-pages` app, each Route Module can define a value `data` which is a `BackendTask` that will be resolved **before** `init` is called. That means it is also available
11
12
  when the page's HTML is pre-rendered during the build step. You can also access the resolved data in `head` to use it for the page's SEO meta tags.
12
13
 
13
- A `DataSource` lets you pull in data from:
14
+ A `BackendTask` lets you pull in data from:
14
15
 
15
- - Local files ([`DataSource.File`](DataSource-File))
16
- - HTTP requests ([`DataSource.Http`](DataSource-Http))
17
- - Globs, i.e. listing out local files based on a pattern like `content/*.txt` ([`DataSource.Glob`](DataSource-Glob))
18
- - Ports, i.e. getting JSON data from running custom NodeJS, similar to a port in a vanilla Elm app except run at build-time in NodeJS, rather than at run-time in the browser ([`DataSource.Port`](DataSource-Port))
19
- - Hardcoded data (`DataSource.succeed "Hello!"`)
20
- - Or any combination of the above, using `DataSource.map2`, `DataSource.andThen`, or other combining/continuing helpers from this module
16
+ - Local files ([`BackendTask.File`](BackendTask-File))
17
+ - HTTP requests ([`BackendTask.Http`](BackendTask-Http))
18
+ - Globs, i.e. listing out local files based on a pattern like `content/*.txt` ([`BackendTask.Glob`](BackendTask-Glob))
19
+ - Ports, i.e. getting JSON data from running custom NodeJS, similar to a port in a vanilla Elm app except run at build-time in NodeJS, rather than at run-time in the browser ([`BackendTask.Port`](BackendTask-Port))
20
+ - Hardcoded data (`BackendTask.succeed "Hello!"`)
21
+ - Or any combination of the above, using `BackendTask.map2`, `BackendTask.andThen`, or other combining/continuing helpers from this module
21
22
 
22
23
 
23
- ## DataSource's vs. Effect's/Cmd's
24
+ ## BackendTask's vs. Effect's/Cmd's
24
25
 
25
- DataSource's are always resolved before the page is rendered and sent to the browser. A DataSource is never executed
26
- in the Browser. Instead, the resolved data from the DataSource is passed down to the Browser - it has been resolved
26
+ BackendTask's are always resolved before the page is rendered and sent to the browser. A BackendTask is never executed
27
+ in the Browser. Instead, the resolved data from the BackendTask is passed down to the Browser - it has been resolved
27
28
  before any client-side JavaScript ever executes. In the case of a pre-rendered route, this is during the CLI build phase,
28
- and for server-rendered routes its DataSource is resolved on the server.
29
+ and for server-rendered routes its BackendTask is resolved on the server.
29
30
 
30
31
  Effect's/Cmd's are never executed on the CLI or server, they are only executed in the Browser. The data from a Route Module's
31
32
  `init` function is used to render the initial HTML on the server or build step, but the Effect isn't executed and `update` is never called
@@ -37,33 +38,33 @@ So why not just get the data the old-fashioned way, with `elm/http`, for example
37
38
 
38
39
  A few reasons:
39
40
 
40
- 1. DataSource's allow you to pull in data that you wouldn't normally be able to access from an Elm app, like local files, or listings of files in a folder. Not only that, but the dev server knows to automatically hot reload the data when the files it depends on change, so you can edit the files you used in your DataSource and see the page hot reload as you save!
41
+ 1. BackendTask's allow you to pull in data that you wouldn't normally be able to access from an Elm app, like local files, or listings of files in a folder. Not only that, but the dev server knows to automatically hot reload the data when the files it depends on change, so you can edit the files you used in your BackendTask and see the page hot reload as you save!
41
42
  2. You can pre-render HTML for your pages, including the SEO meta tags, with all that rich, well-typed Elm data available! That's something you can't accomplish with a vanilla Elm app, and it's one of the main use cases for elm-pages.
42
- 3. Because `elm-pages` has a build step, you know that your `DataSource.Http` requests succeeded, your decoders succeeded, your custom DataSource validations succeeded, and everything went smoothly. If something went wrong, you get a build failure and can deal with the issues before the site goes live. That means your users won't see those errors, and as a developer you don't need to handle those error cases in your code! Think of it as "parse, don't validate", but for your entire build. In the case of server-rendered routes, a DataSource failure will render a 500 page, so more care needs to be taken to make sure all common errors are handled properly, but the tradeoff is that you can use DataSource's to pull in highly dynamic data and even render user-specific pages.
43
- 4. For static routes, you don't have to worry about an API being down, or hitting it repeatedly. You can build in data and it will end up as optimized binary-encoded data served up with all the other assets of your site. If your CDN (static site host) is down, then the rest of your site is probably down anyway. If your site host is up, then so is all of your `DataSource` data. Also, it will be served up extremely quickly without needing to wait for any database queries to be performed, `andThen` requests to be resolved, etc., because all of that work and waiting was done at build-time!
43
+ 3. Because `elm-pages` has a build step, you know that your `BackendTask.Http` requests succeeded, your decoders succeeded, your custom BackendTask validations succeeded, and everything went smoothly. If something went wrong, you get a build failure and can deal with the issues before the site goes live. That means your users won't see those errors, and as a developer you don't need to handle those error cases in your code! Think of it as "parse, don't validate", but for your entire build. In the case of server-rendered routes, a BackendTask failure will render a 500 page, so more care needs to be taken to make sure all common errors are handled properly, but the tradeoff is that you can use BackendTask's to pull in highly dynamic data and even render user-specific pages.
44
+ 4. For static routes, you don't have to worry about an API being down, or hitting it repeatedly. You can build in data and it will end up as optimized binary-encoded data served up with all the other assets of your site. If your CDN (static site host) is down, then the rest of your site is probably down anyway. If your site host is up, then so is all of your `BackendTask` data. Also, it will be served up extremely quickly without needing to wait for any database queries to be performed, `andThen` requests to be resolved, etc., because all of that work and waiting was done at build-time!
44
45
 
45
46
 
46
47
  ## Mental Model
47
48
 
48
- You can think of a DataSource as a declarative (not imperative) definition of data. It represents where to get the data from, and how to transform it (map, combine with other DataSources, etc.).
49
+ You can think of a BackendTask as a declarative (not imperative) definition of data. It represents where to get the data from, and how to transform it (map, combine with other BackendTasks, etc.).
49
50
 
50
51
 
51
- ## How do I actually use a DataSource?
52
+ ## How do I actually use a BackendTask?
52
53
 
53
54
  This is very similar to Cmd's in Elm. You don't perform a Cmd just by running that code, as you might in a language like JavaScript. Instead, a Cmd _will not do anything_ unless you pass it to The Elm Architecture to have it perform it for you.
54
55
  You pass a Cmd to The Elm Architecture by returning it in `init` or `update`. So actually a `Cmd` is just data describing a side-effect that the Elm runtime can perform, and how to build a `Msg` once it's done.
55
56
 
56
- `DataSource`'s are very similar. A `DataSource` doesn't do anything just by "running" it. Just like a `Cmd`, it's only data that describes a side-effect to perform. Specifically, it describes a side-effect that the _elm-pages runtime_ can perform.
57
- There are a few places where we can pass a `DataSource` to the `elm-pages` runtime so it can perform it. Most commonly, you give a field called `data` in your Route Module's definition. Instead of giving a `Msg` when the side-effects are complete,
57
+ `BackendTask`'s are very similar. A `BackendTask` doesn't do anything just by "running" it. Just like a `Cmd`, it's only data that describes a side-effect to perform. Specifically, it describes a side-effect that the _elm-pages runtime_ can perform.
58
+ There are a few places where we can pass a `BackendTask` to the `elm-pages` runtime so it can perform it. Most commonly, you give a field called `data` in your Route Module's definition. Instead of giving a `Msg` when the side-effects are complete,
58
59
  the page will render once all of the side-effects have run and all the data is resolved. `elm-pages` makes the resolved data available your Route Module's `init`, `view`, `update`, and `head` functions, similar to how a regular Elm app passes `Msg`'s in
59
60
  to `update`.
60
61
 
61
- Any place in your `elm-pages` app where the framework lets you pass in a value of type `DataSource` is a place where you can give `elm-pages` a DataSource to perform (for example, `Site.head` where you define global head tags for your site).
62
+ Any place in your `elm-pages` app where the framework lets you pass in a value of type `BackendTask` is a place where you can give `elm-pages` a BackendTask to perform (for example, `Site.head` where you define global head tags for your site).
62
63
 
63
64
 
64
65
  ## Basics
65
66
 
66
- @docs DataSource
67
+ @docs BackendTask
67
68
 
68
69
  @docs map, succeed, fail
69
70
 
@@ -78,19 +79,23 @@ Any place in your `elm-pages` app where the framework lets you pass in a value o
78
79
 
79
80
  @docs map2, map3, map4, map5, map6, map7, map8, map9
80
81
 
82
+
83
+ ## Exception Handling
84
+
85
+ @docs catch, throw, mapError, onError, toResult
86
+
81
87
  -}
82
88
 
83
- import Pages.Internal.StaticHttpBody as Body
84
- import Pages.StaticHttp.Request as HashRequest
89
+ import Exception exposing (Catchable(..), Throwable)
90
+ import Json.Encode
85
91
  import Pages.StaticHttpRequest exposing (RawRequest(..))
86
- import RequestsAndPending exposing (RequestsAndPending)
87
92
 
88
93
 
89
- {-| A DataSource represents data that will be gathered at build time. Multiple `DataSource`s can be combined together using the `mapN` functions,
94
+ {-| A BackendTask represents data that will be gathered at build time. Multiple `BackendTask`s can be combined together using the `mapN` functions,
90
95
  very similar to how you can manipulate values with Json Decoders in Elm.
91
96
  -}
92
- type alias DataSource value =
93
- RawRequest value
97
+ type alias BackendTask error value =
98
+ RawRequest error value
94
99
 
95
100
 
96
101
  {-| Transform a request into an arbitrary value. The same underlying HTTP requests will be performed during the build
@@ -98,14 +103,14 @@ step, but mapping allows you to change the resulting values by applying function
98
103
 
99
104
  A common use for this is to map your data into your elm-pages view:
100
105
 
101
- import DataSource
106
+ import BackendTask
102
107
  import Json.Decode as Decode exposing (Decoder)
103
108
 
104
109
  view =
105
- DataSource.Http.get
110
+ BackendTask.Http.get
106
111
  (Secrets.succeed "https://api.github.com/repos/dillonkearns/elm-pages")
107
112
  (Decode.field "stargazers_count" Decode.int)
108
- |> DataSource.map
113
+ |> BackendTask.map
109
114
  (\stars ->
110
115
  { view =
111
116
  \model viewForPage ->
@@ -117,36 +122,33 @@ A common use for this is to map your data into your elm-pages view:
117
122
  )
118
123
 
119
124
  -}
120
- map : (a -> b) -> DataSource a -> DataSource b
125
+ map : (a -> b) -> BackendTask error a -> BackendTask error b
121
126
  map fn requestInfo =
122
127
  case requestInfo of
123
128
  ApiRoute value ->
124
- ApiRoute (fn value)
129
+ ApiRoute (Result.map fn value)
125
130
 
126
131
  Request urls lookupFn ->
127
132
  Request
128
133
  urls
129
134
  (mapLookupFn fn lookupFn)
130
135
 
131
- RequestError error ->
132
- RequestError error
133
136
 
134
-
135
- mapLookupFn : (a -> b) -> (d -> c -> DataSource a) -> d -> c -> DataSource b
137
+ mapLookupFn : (a -> b) -> (d -> c -> BackendTask error a) -> d -> c -> BackendTask error b
136
138
  mapLookupFn fn lookupFn maybeMock requests =
137
139
  map fn (lookupFn maybeMock requests)
138
140
 
139
141
 
140
142
  {-| Helper to remove an inner layer of Request wrapping.
141
143
  -}
142
- resolve : DataSource (List (DataSource value)) -> DataSource (List value)
144
+ resolve : BackendTask error (List (BackendTask error value)) -> BackendTask error (List value)
143
145
  resolve =
144
146
  andThen combine
145
147
 
146
148
 
147
149
  {-| Turn a list of `StaticHttp.Request`s into a single one.
148
150
 
149
- import DataSource
151
+ import BackendTask
150
152
  import Json.Decode as Decode exposing (Decoder)
151
153
 
152
154
  type alias Pokemon =
@@ -178,7 +180,7 @@ resolve =
178
180
  |> StaticHttp.andThen StaticHttp.combine
179
181
 
180
182
  -}
181
- combine : List (DataSource value) -> DataSource (List value)
183
+ combine : List (BackendTask error value) -> BackendTask error (List value)
182
184
  combine items =
183
185
  List.foldl (map2 (::)) (succeed []) items |> map List.reverse
184
186
 
@@ -206,148 +208,119 @@ combine items =
206
208
  )
207
209
 
208
210
  -}
209
- map2 : (a -> b -> c) -> DataSource a -> DataSource b -> DataSource c
211
+ map2 : (a -> b -> c) -> BackendTask error a -> BackendTask error b -> BackendTask error c
210
212
  map2 fn request1 request2 =
213
+ -- elm-review: known-unoptimized-recursion
214
+ -- TODO try to find a way to optimize tail-call recursion here
211
215
  case ( request1, request2 ) of
212
216
  ( ApiRoute value1, ApiRoute value2 ) ->
213
- ApiRoute (fn value1 value2)
217
+ ApiRoute (Result.map2 fn value1 value2)
214
218
 
215
219
  ( Request urls1 lookupFn1, Request urls2 lookupFn2 ) ->
216
220
  Request
217
221
  (urls1 ++ urls2)
218
- (mapReq fn lookupFn1 lookupFn2)
222
+ (\resolver responses ->
223
+ map2 fn
224
+ (lookupFn1 resolver responses)
225
+ (lookupFn2 resolver responses)
226
+ )
219
227
 
220
228
  ( Request urls1 lookupFn1, ApiRoute value2 ) ->
221
229
  Request
222
230
  urls1
223
- (mapReq fn lookupFn1 (\_ _ -> ApiRoute value2))
231
+ (\resolver responses ->
232
+ map2 fn
233
+ (lookupFn1 resolver responses)
234
+ (ApiRoute value2)
235
+ )
224
236
 
225
237
  ( ApiRoute value2, Request urls1 lookupFn1 ) ->
226
238
  Request
227
239
  urls1
228
- (mapReq fn (\_ _ -> ApiRoute value2) lookupFn1)
229
-
230
- ( RequestError error, _ ) ->
231
- RequestError error
232
-
233
- ( _, RequestError error ) ->
234
- RequestError error
235
-
236
-
237
- mapReq : (a -> b -> c) -> (e -> d -> DataSource a) -> (e -> d -> DataSource b) -> e -> d -> DataSource c
238
- mapReq fn lookupFn1 lookupFn2 maybeMock rawResponses =
239
- map2 fn
240
- (lookupFn1 maybeMock rawResponses)
241
- (lookupFn2 maybeMock rawResponses)
242
-
243
-
244
- lookup : Maybe Pages.StaticHttpRequest.MockResolver -> DataSource value -> RequestsAndPending -> Result Pages.StaticHttpRequest.Error value
245
- lookup maybeMockResolver requestInfo rawResponses =
246
- case requestInfo of
247
- Request urls lookupFn ->
248
- lookup maybeMockResolver
249
- (addUrls urls (lookupFn maybeMockResolver rawResponses))
250
- rawResponses
251
-
252
- ApiRoute value ->
253
- Ok value
254
-
255
- RequestError error ->
256
- Err error
257
-
258
-
259
- addUrls : List HashRequest.Request -> DataSource value -> DataSource value
260
- addUrls urlsToAdd requestInfo =
261
- case requestInfo of
262
- ApiRoute value ->
263
- ApiRoute value
264
-
265
- Request initialUrls function ->
266
- Request (initialUrls ++ urlsToAdd) function
267
-
268
- RequestError error ->
269
- RequestError error
270
-
271
-
272
- {-| The full details to perform a StaticHttp request.
273
- -}
274
- type alias RequestDetails =
275
- { url : String
276
- , method : String
277
- , headers : List ( String, String )
278
- , body : Body.Body
279
- , useCache : Bool
280
- }
281
-
282
-
283
- lookupUrls : DataSource value -> List RequestDetails
284
- lookupUrls requestInfo =
285
- case requestInfo of
286
- ApiRoute _ ->
287
- []
288
-
289
- Request urls _ ->
290
- urls
291
-
292
- RequestError _ ->
293
- -- TODO should this have URLs passed through?
294
- []
240
+ (\resolver responses ->
241
+ map2 fn
242
+ (ApiRoute value2)
243
+ (lookupFn1 resolver responses)
244
+ )
295
245
 
296
246
 
297
- {-| Build off of the response from a previous `DataSource` request to build a follow-up request. You can use the data
247
+ {-| Build off of the response from a previous `BackendTask` request to build a follow-up request. You can use the data
298
248
  from the previous response to build up the URL, headers, etc. that you send to the subsequent request.
299
249
 
300
- import DataSource
250
+ import BackendTask
301
251
  import Json.Decode as Decode exposing (Decoder)
302
252
 
303
- licenseData : DataSource String
253
+ licenseData : BackendTask String
304
254
  licenseData =
305
- DataSource.Http.get
255
+ BackendTask.Http.get
306
256
  (Secrets.succeed "https://api.github.com/repos/dillonkearns/elm-pages")
307
257
  (Decode.at [ "license", "url" ] Decode.string)
308
- |> DataSource.andThen
258
+ |> BackendTask.andThen
309
259
  (\licenseUrl ->
310
- DataSource.Http.get (Secrets.succeed licenseUrl) (Decode.field "description" Decode.string)
260
+ BackendTask.Http.get (Secrets.succeed licenseUrl) (Decode.field "description" Decode.string)
311
261
  )
312
262
 
313
263
  -}
314
- andThen : (a -> DataSource b) -> DataSource a -> DataSource b
264
+ andThen : (a -> BackendTask error b) -> BackendTask error a -> BackendTask error b
315
265
  andThen fn requestInfo =
316
- Request
317
- (lookupUrls requestInfo)
318
- (\maybeMockResolver rawResponses ->
319
- lookup maybeMockResolver
320
- requestInfo
321
- rawResponses
322
- |> (\result ->
323
- case result of
324
- Ok value ->
325
- case fn value of
326
- ApiRoute finalValue ->
327
- ApiRoute finalValue
328
-
329
- Request values function ->
330
- Request values function
331
-
332
- RequestError error ->
333
- RequestError error
334
-
335
- Err error ->
336
- RequestError error
337
- )
338
- )
339
-
340
-
341
- {-| A helper for combining `DataSource`s in pipelines.
266
+ -- elm-review: known-unoptimized-recursion
267
+ -- TODO try to find a way to optimize recursion here
268
+ case requestInfo of
269
+ ApiRoute a ->
270
+ case a of
271
+ Ok okA ->
272
+ fn okA
273
+
274
+ Err errA ->
275
+ fail errA
276
+
277
+ Request urls lookupFn ->
278
+ if List.isEmpty urls then
279
+ andThen fn (lookupFn Nothing (Json.Encode.object []))
280
+
281
+ else
282
+ Request urls
283
+ (\maybeMockResolver responses ->
284
+ lookupFn maybeMockResolver responses
285
+ |> andThen fn
286
+ )
287
+
288
+
289
+ {-| -}
290
+ onError : (error -> BackendTask mappedError value) -> BackendTask error value -> BackendTask mappedError value
291
+ onError fromError backendTask =
292
+ -- elm-review: known-unoptimized-recursion
293
+ case backendTask of
294
+ ApiRoute a ->
295
+ case a of
296
+ Ok okA ->
297
+ succeed okA
298
+
299
+ Err errA ->
300
+ fromError errA
301
+
302
+ Request urls lookupFn ->
303
+ if List.isEmpty urls then
304
+ onError fromError (lookupFn Nothing (Json.Encode.object []))
305
+
306
+ else
307
+ Request urls
308
+ (\maybeMockResolver responses ->
309
+ lookupFn maybeMockResolver responses
310
+ |> onError fromError
311
+ )
312
+
313
+
314
+ {-| A helper for combining `BackendTask`s in pipelines.
342
315
  -}
343
- andMap : DataSource a -> DataSource (a -> b) -> DataSource b
316
+ andMap : BackendTask error a -> BackendTask error (a -> b) -> BackendTask error b
344
317
  andMap =
345
318
  map2 (|>)
346
319
 
347
320
 
348
321
  {-| This is useful for prototyping with some hardcoded data, or for having a view that doesn't have any StaticHttp data.
349
322
 
350
- import DataSource
323
+ import BackendTask
351
324
 
352
325
  view :
353
326
  List ( PagePath, Metadata )
@@ -369,23 +342,20 @@ andMap =
369
342
  }
370
343
 
371
344
  -}
372
- succeed : a -> DataSource a
345
+ succeed : a -> BackendTask error a
373
346
  succeed value =
374
- ApiRoute value
347
+ ApiRoute (Ok value)
375
348
 
376
349
 
377
- {-| Stop the StaticHttp chain with the given error message. If you reach a `fail` in your request,
378
- you will get a build error. Or in the dev server, you will see the error message in an overlay in your browser (and in
379
- the terminal).
380
- -}
381
- fail : String -> DataSource a
382
- fail errorMessage =
383
- RequestError (Pages.StaticHttpRequest.UserCalledStaticHttpFail errorMessage)
350
+ {-| -}
351
+ fail : error -> BackendTask error a
352
+ fail error =
353
+ ApiRoute (Err error)
384
354
 
385
355
 
386
- {-| Turn an Err into a DataSource failure.
356
+ {-| Turn an Err into a BackendTask failure.
387
357
  -}
388
- fromResult : Result String value -> DataSource value
358
+ fromResult : Result error value -> BackendTask error value
389
359
  fromResult result =
390
360
  case result of
391
361
  Ok okValue ->
@@ -395,13 +365,31 @@ fromResult result =
395
365
  fail error
396
366
 
397
367
 
368
+ {-| -}
369
+ mapError : (error -> errorMapped) -> BackendTask error value -> BackendTask errorMapped value
370
+ mapError mapFn requestInfo =
371
+ case requestInfo of
372
+ ApiRoute value ->
373
+ ApiRoute (Result.mapError mapFn value)
374
+
375
+ Request urls lookupFn ->
376
+ Request
377
+ urls
378
+ (mapLookupFnError mapFn lookupFn)
379
+
380
+
381
+ mapLookupFnError : (error -> errorMapped) -> (d -> c -> BackendTask error a) -> d -> c -> BackendTask errorMapped a
382
+ mapLookupFnError fn lookupFn maybeMock requests =
383
+ mapError fn (lookupFn maybeMock requests)
384
+
385
+
398
386
  {-| -}
399
387
  map3 :
400
388
  (value1 -> value2 -> value3 -> valueCombined)
401
- -> DataSource value1
402
- -> DataSource value2
403
- -> DataSource value3
404
- -> DataSource valueCombined
389
+ -> BackendTask error value1
390
+ -> BackendTask error value2
391
+ -> BackendTask error value3
392
+ -> BackendTask error valueCombined
405
393
  map3 combineFn request1 request2 request3 =
406
394
  succeed combineFn
407
395
  |> map2 (|>) request1
@@ -412,11 +400,11 @@ map3 combineFn request1 request2 request3 =
412
400
  {-| -}
413
401
  map4 :
414
402
  (value1 -> value2 -> value3 -> value4 -> valueCombined)
415
- -> DataSource value1
416
- -> DataSource value2
417
- -> DataSource value3
418
- -> DataSource value4
419
- -> DataSource valueCombined
403
+ -> BackendTask error value1
404
+ -> BackendTask error value2
405
+ -> BackendTask error value3
406
+ -> BackendTask error value4
407
+ -> BackendTask error valueCombined
420
408
  map4 combineFn request1 request2 request3 request4 =
421
409
  succeed combineFn
422
410
  |> map2 (|>) request1
@@ -428,12 +416,12 @@ map4 combineFn request1 request2 request3 request4 =
428
416
  {-| -}
429
417
  map5 :
430
418
  (value1 -> value2 -> value3 -> value4 -> value5 -> valueCombined)
431
- -> DataSource value1
432
- -> DataSource value2
433
- -> DataSource value3
434
- -> DataSource value4
435
- -> DataSource value5
436
- -> DataSource valueCombined
419
+ -> BackendTask error value1
420
+ -> BackendTask error value2
421
+ -> BackendTask error value3
422
+ -> BackendTask error value4
423
+ -> BackendTask error value5
424
+ -> BackendTask error valueCombined
437
425
  map5 combineFn request1 request2 request3 request4 request5 =
438
426
  succeed combineFn
439
427
  |> map2 (|>) request1
@@ -446,13 +434,13 @@ map5 combineFn request1 request2 request3 request4 request5 =
446
434
  {-| -}
447
435
  map6 :
448
436
  (value1 -> value2 -> value3 -> value4 -> value5 -> value6 -> valueCombined)
449
- -> DataSource value1
450
- -> DataSource value2
451
- -> DataSource value3
452
- -> DataSource value4
453
- -> DataSource value5
454
- -> DataSource value6
455
- -> DataSource valueCombined
437
+ -> BackendTask error value1
438
+ -> BackendTask error value2
439
+ -> BackendTask error value3
440
+ -> BackendTask error value4
441
+ -> BackendTask error value5
442
+ -> BackendTask error value6
443
+ -> BackendTask error valueCombined
456
444
  map6 combineFn request1 request2 request3 request4 request5 request6 =
457
445
  succeed combineFn
458
446
  |> map2 (|>) request1
@@ -466,14 +454,14 @@ map6 combineFn request1 request2 request3 request4 request5 request6 =
466
454
  {-| -}
467
455
  map7 :
468
456
  (value1 -> value2 -> value3 -> value4 -> value5 -> value6 -> value7 -> valueCombined)
469
- -> DataSource value1
470
- -> DataSource value2
471
- -> DataSource value3
472
- -> DataSource value4
473
- -> DataSource value5
474
- -> DataSource value6
475
- -> DataSource value7
476
- -> DataSource valueCombined
457
+ -> BackendTask error value1
458
+ -> BackendTask error value2
459
+ -> BackendTask error value3
460
+ -> BackendTask error value4
461
+ -> BackendTask error value5
462
+ -> BackendTask error value6
463
+ -> BackendTask error value7
464
+ -> BackendTask error valueCombined
477
465
  map7 combineFn request1 request2 request3 request4 request5 request6 request7 =
478
466
  succeed combineFn
479
467
  |> map2 (|>) request1
@@ -488,15 +476,15 @@ map7 combineFn request1 request2 request3 request4 request5 request6 request7 =
488
476
  {-| -}
489
477
  map8 :
490
478
  (value1 -> value2 -> value3 -> value4 -> value5 -> value6 -> value7 -> value8 -> valueCombined)
491
- -> DataSource value1
492
- -> DataSource value2
493
- -> DataSource value3
494
- -> DataSource value4
495
- -> DataSource value5
496
- -> DataSource value6
497
- -> DataSource value7
498
- -> DataSource value8
499
- -> DataSource valueCombined
479
+ -> BackendTask error value1
480
+ -> BackendTask error value2
481
+ -> BackendTask error value3
482
+ -> BackendTask error value4
483
+ -> BackendTask error value5
484
+ -> BackendTask error value6
485
+ -> BackendTask error value7
486
+ -> BackendTask error value8
487
+ -> BackendTask error valueCombined
500
488
  map8 combineFn request1 request2 request3 request4 request5 request6 request7 request8 =
501
489
  succeed combineFn
502
490
  |> map2 (|>) request1
@@ -512,16 +500,16 @@ map8 combineFn request1 request2 request3 request4 request5 request6 request7 re
512
500
  {-| -}
513
501
  map9 :
514
502
  (value1 -> value2 -> value3 -> value4 -> value5 -> value6 -> value7 -> value8 -> value9 -> valueCombined)
515
- -> DataSource value1
516
- -> DataSource value2
517
- -> DataSource value3
518
- -> DataSource value4
519
- -> DataSource value5
520
- -> DataSource value6
521
- -> DataSource value7
522
- -> DataSource value8
523
- -> DataSource value9
524
- -> DataSource valueCombined
503
+ -> BackendTask error value1
504
+ -> BackendTask error value2
505
+ -> BackendTask error value3
506
+ -> BackendTask error value4
507
+ -> BackendTask error value5
508
+ -> BackendTask error value6
509
+ -> BackendTask error value7
510
+ -> BackendTask error value8
511
+ -> BackendTask error value9
512
+ -> BackendTask error valueCombined
525
513
  map9 combineFn request1 request2 request3 request4 request5 request6 request7 request8 request9 =
526
514
  succeed combineFn
527
515
  |> map2 (|>) request1
@@ -533,3 +521,31 @@ map9 combineFn request1 request2 request3 request4 request5 request6 request7 re
533
521
  |> map2 (|>) request7
534
522
  |> map2 (|>) request8
535
523
  |> map2 (|>) request9
524
+
525
+
526
+ {-| -}
527
+ catch : BackendTask (Catchable error) value -> BackendTask error value
528
+ catch ds =
529
+ ds
530
+ |> onError
531
+ (\exception ->
532
+ case exception of
533
+ Catchable error _ ->
534
+ fail error
535
+ )
536
+
537
+
538
+ {-| -}
539
+ throw : BackendTask (Catchable error) data -> BackendTask Throwable data
540
+ throw backendTask =
541
+ backendTask
542
+ |> onError (Exception.throw >> fail)
543
+
544
+
545
+ {-| -}
546
+ toResult : BackendTask (Catchable error) data -> BackendTask noError (Result error data)
547
+ toResult backendTask =
548
+ backendTask
549
+ |> catch
550
+ |> andThen (Ok >> succeed)
551
+ |> onError (Err >> succeed)