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.
- package/README.md +1 -1
- package/codegen/elm-pages-codegen.js +1497 -1127
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm.json +1 -1
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1 -1
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +152 -40
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
- package/generator/dead-code-review/src/Pages/Review/DeadCodeEliminateData.elm +58 -10
- package/generator/dead-code-review/tests/Pages/Review/DeadCodeEliminateDataTest.elm +45 -29
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm.json +1 -1
- package/generator/review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1 -1
- package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +46 -5
- package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
- package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
- package/generator/src/RouteBuilder.elm +66 -52
- package/generator/src/SharedTemplate.elm +3 -2
- package/generator/src/SiteConfig.elm +3 -2
- package/generator/src/build.js +5 -5
- package/generator/src/cli.js +7 -6
- package/generator/src/compatibility-key.js +1 -1
- package/generator/src/dev-server.js +7 -7
- package/generator/src/render-test.js +109 -0
- package/generator/src/render.js +77 -51
- package/generator/src/request-cache.js +149 -158
- package/generator/template/app/Api.elm +2 -2
- package/generator/template/app/Route/Index.elm +3 -3
- package/generator/template/app/Shared.elm +3 -3
- package/generator/template/app/Site.elm +3 -3
- package/package.json +10 -10
- package/src/ApiRoute.elm +63 -57
- package/src/BackendTask/Env.elm +87 -0
- package/src/{DataSource → BackendTask}/File.elm +89 -43
- package/src/{DataSource → BackendTask}/Glob.elm +134 -125
- package/src/BackendTask/Http.elm +637 -0
- package/src/{DataSource → BackendTask}/Internal/Glob.elm +1 -1
- package/src/BackendTask/Internal/Request.elm +28 -0
- package/src/BackendTask/Port.elm +202 -0
- package/src/{DataSource.elm → BackendTask.elm} +223 -207
- package/src/Exception.elm +37 -0
- package/src/Form.elm +20 -20
- package/src/Head.elm +7 -7
- package/src/Internal/ApiRoute.elm +7 -5
- package/src/PageServerResponse.elm +6 -1
- package/src/Pages/Generate.elm +35 -63
- package/src/Pages/Internal/Platform/Cli.elm +422 -731
- package/src/Pages/Internal/Platform/Cli.elm.bak +22 -22
- package/src/Pages/Internal/Platform/CompatibilityKey.elm +1 -1
- package/src/Pages/Internal/Platform/Effect.elm +0 -1
- package/src/Pages/Internal/Platform/GeneratorApplication.elm +51 -111
- package/src/Pages/Internal/Platform/StaticResponses.elm +73 -287
- package/src/Pages/Internal/Platform/ToJsPayload.elm +4 -4
- package/src/Pages/Internal/Platform.elm +25 -31
- package/src/Pages/Internal/Script.elm +3 -2
- package/src/Pages/Internal/StaticHttpBody.elm +35 -1
- package/src/Pages/Manifest.elm +5 -4
- package/src/Pages/ProgramConfig.elm +8 -7
- package/src/Pages/Script.elm +28 -13
- package/src/Pages/SiteConfig.elm +3 -2
- package/src/Pages/StaticHttp/Request.elm +2 -2
- package/src/Pages/StaticHttpRequest.elm +39 -94
- package/src/RequestsAndPending.elm +8 -19
- package/src/Server/Request.elm +14 -14
- package/src/Server/Session.elm +34 -34
- package/src/Server/SetCookie.elm +1 -1
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/dependencies.75364bef27ac5a049b87c3325f846fc6dbda23b8ed7187ed06748b96bb6a50a7.json +0 -1
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm.json +0 -38
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elmTestOutput.js +0 -29603
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/package.json +0 -1
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/src/Test/Generated/Main.elm +0 -27
- package/generator/dead-code-review/node_modules/.package-lock.json +0 -484
- package/generator/dead-code-review/node_modules/ansi-styles/index.d.ts +0 -345
- package/generator/dead-code-review/node_modules/ansi-styles/index.js +0 -163
- package/generator/dead-code-review/node_modules/ansi-styles/license +0 -9
- package/generator/dead-code-review/node_modules/ansi-styles/package.json +0 -56
- package/generator/dead-code-review/node_modules/ansi-styles/readme.md +0 -152
- package/generator/dead-code-review/node_modules/anymatch/LICENSE +0 -15
- package/generator/dead-code-review/node_modules/anymatch/README.md +0 -87
- package/generator/dead-code-review/node_modules/anymatch/index.d.ts +0 -20
- package/generator/dead-code-review/node_modules/anymatch/index.js +0 -104
- package/generator/dead-code-review/node_modules/anymatch/package.json +0 -48
- package/generator/dead-code-review/node_modules/balanced-match/.github/FUNDING.yml +0 -2
- package/generator/dead-code-review/node_modules/balanced-match/LICENSE.md +0 -21
- package/generator/dead-code-review/node_modules/balanced-match/README.md +0 -97
- package/generator/dead-code-review/node_modules/balanced-match/index.js +0 -62
- package/generator/dead-code-review/node_modules/balanced-match/package.json +0 -48
- package/generator/dead-code-review/node_modules/binary-extensions/binary-extensions.json +0 -260
- package/generator/dead-code-review/node_modules/binary-extensions/binary-extensions.json.d.ts +0 -3
- package/generator/dead-code-review/node_modules/binary-extensions/index.d.ts +0 -14
- package/generator/dead-code-review/node_modules/binary-extensions/index.js +0 -1
- package/generator/dead-code-review/node_modules/binary-extensions/license +0 -9
- package/generator/dead-code-review/node_modules/binary-extensions/package.json +0 -38
- package/generator/dead-code-review/node_modules/binary-extensions/readme.md +0 -41
- package/generator/dead-code-review/node_modules/brace-expansion/.github/FUNDING.yml +0 -2
- package/generator/dead-code-review/node_modules/brace-expansion/LICENSE +0 -21
- package/generator/dead-code-review/node_modules/brace-expansion/README.md +0 -135
- package/generator/dead-code-review/node_modules/brace-expansion/index.js +0 -203
- package/generator/dead-code-review/node_modules/brace-expansion/package.json +0 -46
- package/generator/dead-code-review/node_modules/braces/CHANGELOG.md +0 -184
- package/generator/dead-code-review/node_modules/braces/LICENSE +0 -21
- package/generator/dead-code-review/node_modules/braces/README.md +0 -593
- package/generator/dead-code-review/node_modules/braces/index.js +0 -170
- package/generator/dead-code-review/node_modules/braces/lib/compile.js +0 -57
- package/generator/dead-code-review/node_modules/braces/lib/constants.js +0 -57
- package/generator/dead-code-review/node_modules/braces/lib/expand.js +0 -113
- package/generator/dead-code-review/node_modules/braces/lib/parse.js +0 -333
- package/generator/dead-code-review/node_modules/braces/lib/stringify.js +0 -32
- package/generator/dead-code-review/node_modules/braces/lib/utils.js +0 -112
- package/generator/dead-code-review/node_modules/braces/package.json +0 -77
- package/generator/dead-code-review/node_modules/chalk/index.d.ts +0 -415
- package/generator/dead-code-review/node_modules/chalk/license +0 -9
- package/generator/dead-code-review/node_modules/chalk/package.json +0 -68
- package/generator/dead-code-review/node_modules/chalk/readme.md +0 -341
- package/generator/dead-code-review/node_modules/chalk/source/index.js +0 -229
- package/generator/dead-code-review/node_modules/chalk/source/templates.js +0 -134
- package/generator/dead-code-review/node_modules/chalk/source/util.js +0 -39
- package/generator/dead-code-review/node_modules/chokidar/LICENSE +0 -21
- package/generator/dead-code-review/node_modules/chokidar/README.md +0 -308
- package/generator/dead-code-review/node_modules/chokidar/index.js +0 -973
- package/generator/dead-code-review/node_modules/chokidar/lib/constants.js +0 -65
- package/generator/dead-code-review/node_modules/chokidar/lib/fsevents-handler.js +0 -524
- package/generator/dead-code-review/node_modules/chokidar/lib/nodefs-handler.js +0 -654
- package/generator/dead-code-review/node_modules/chokidar/package.json +0 -85
- package/generator/dead-code-review/node_modules/chokidar/types/index.d.ts +0 -188
- package/generator/dead-code-review/node_modules/color-convert/CHANGELOG.md +0 -54
- package/generator/dead-code-review/node_modules/color-convert/LICENSE +0 -21
- package/generator/dead-code-review/node_modules/color-convert/README.md +0 -68
- package/generator/dead-code-review/node_modules/color-convert/conversions.js +0 -839
- package/generator/dead-code-review/node_modules/color-convert/index.js +0 -81
- package/generator/dead-code-review/node_modules/color-convert/package.json +0 -48
- package/generator/dead-code-review/node_modules/color-convert/route.js +0 -97
- package/generator/dead-code-review/node_modules/color-name/LICENSE +0 -8
- package/generator/dead-code-review/node_modules/color-name/README.md +0 -11
- package/generator/dead-code-review/node_modules/color-name/index.js +0 -152
- package/generator/dead-code-review/node_modules/color-name/package.json +0 -28
- package/generator/dead-code-review/node_modules/commander/LICENSE +0 -22
- package/generator/dead-code-review/node_modules/commander/Readme.md +0 -1118
- package/generator/dead-code-review/node_modules/commander/esm.mjs +0 -16
- package/generator/dead-code-review/node_modules/commander/index.js +0 -27
- package/generator/dead-code-review/node_modules/commander/lib/argument.js +0 -147
- package/generator/dead-code-review/node_modules/commander/lib/command.js +0 -2160
- package/generator/dead-code-review/node_modules/commander/lib/error.js +0 -45
- package/generator/dead-code-review/node_modules/commander/lib/help.js +0 -406
- package/generator/dead-code-review/node_modules/commander/lib/option.js +0 -326
- package/generator/dead-code-review/node_modules/commander/lib/suggestSimilar.js +0 -100
- package/generator/dead-code-review/node_modules/commander/package-support.json +0 -16
- package/generator/dead-code-review/node_modules/commander/package.json +0 -80
- package/generator/dead-code-review/node_modules/commander/typings/index.d.ts +0 -881
- package/generator/dead-code-review/node_modules/cross-spawn/CHANGELOG.md +0 -130
- package/generator/dead-code-review/node_modules/cross-spawn/LICENSE +0 -21
- package/generator/dead-code-review/node_modules/cross-spawn/README.md +0 -96
- package/generator/dead-code-review/node_modules/cross-spawn/index.js +0 -39
- package/generator/dead-code-review/node_modules/cross-spawn/lib/enoent.js +0 -59
- package/generator/dead-code-review/node_modules/cross-spawn/lib/parse.js +0 -91
- package/generator/dead-code-review/node_modules/cross-spawn/lib/util/escape.js +0 -45
- package/generator/dead-code-review/node_modules/cross-spawn/lib/util/readShebang.js +0 -23
- package/generator/dead-code-review/node_modules/cross-spawn/lib/util/resolveCommand.js +0 -52
- package/generator/dead-code-review/node_modules/cross-spawn/package.json +0 -73
- package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/LICENSE +0 -373
- package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/README.md +0 -64
- package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm.d.ts +0 -22
- package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm.js +0 -419
- package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm_bg.wasm +0 -0
- package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/package.json +0 -27
- package/generator/dead-code-review/node_modules/elm-test/LICENSE +0 -27
- package/generator/dead-code-review/node_modules/elm-test/README.md +0 -192
- package/generator/dead-code-review/node_modules/elm-test/bin/elm-test +0 -3
- package/generator/dead-code-review/node_modules/elm-test/elm/elm.json +0 -25
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Console/Text.elm +0 -217
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format/Color.elm +0 -30
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format/Monochrome.elm +0 -39
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format.elm +0 -212
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console.elm +0 -207
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Highlightable.elm +0 -48
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/JUnit.elm +0 -161
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Json.elm +0 -158
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Reporter.elm +0 -53
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/TestResults.elm +0 -113
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/JsMessage.elm +0 -38
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node/Vendor/Console.elm +0 -230
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node/Vendor/Diff.elm +0 -326
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node.elm +0 -440
- package/generator/dead-code-review/node_modules/elm-test/lib/Compile.js +0 -110
- package/generator/dead-code-review/node_modules/elm-test/lib/DependencyProvider.js +0 -343
- package/generator/dead-code-review/node_modules/elm-test/lib/ElmCompiler.js +0 -109
- package/generator/dead-code-review/node_modules/elm-test/lib/ElmHome.js +0 -47
- package/generator/dead-code-review/node_modules/elm-test/lib/ElmJson.js +0 -194
- package/generator/dead-code-review/node_modules/elm-test/lib/FindTests.js +0 -276
- package/generator/dead-code-review/node_modules/elm-test/lib/Generate.js +0 -294
- package/generator/dead-code-review/node_modules/elm-test/lib/Install.js +0 -290
- package/generator/dead-code-review/node_modules/elm-test/lib/Parser.js +0 -941
- package/generator/dead-code-review/node_modules/elm-test/lib/Project.js +0 -117
- package/generator/dead-code-review/node_modules/elm-test/lib/Report.js +0 -23
- package/generator/dead-code-review/node_modules/elm-test/lib/RunTests.js +0 -322
- package/generator/dead-code-review/node_modules/elm-test/lib/Solve.js +0 -76
- package/generator/dead-code-review/node_modules/elm-test/lib/Supervisor.js +0 -294
- package/generator/dead-code-review/node_modules/elm-test/lib/SyncGet.js +0 -45
- package/generator/dead-code-review/node_modules/elm-test/lib/SyncGetWorker.js +0 -36
- package/generator/dead-code-review/node_modules/elm-test/lib/elm-test.js +0 -318
- package/generator/dead-code-review/node_modules/elm-test/package.json +0 -69
- package/generator/dead-code-review/node_modules/elm-test/templates/after.js +0 -29
- package/generator/dead-code-review/node_modules/elm-test/templates/before.js +0 -58
- package/generator/dead-code-review/node_modules/elm-test/templates/tests/Example.elm +0 -10
- package/generator/dead-code-review/node_modules/fill-range/LICENSE +0 -21
- package/generator/dead-code-review/node_modules/fill-range/README.md +0 -237
- package/generator/dead-code-review/node_modules/fill-range/index.js +0 -249
- package/generator/dead-code-review/node_modules/fill-range/package.json +0 -69
- package/generator/dead-code-review/node_modules/fs.realpath/LICENSE +0 -43
- package/generator/dead-code-review/node_modules/fs.realpath/README.md +0 -33
- package/generator/dead-code-review/node_modules/fs.realpath/index.js +0 -66
- package/generator/dead-code-review/node_modules/fs.realpath/old.js +0 -303
- package/generator/dead-code-review/node_modules/fs.realpath/package.json +0 -26
- package/generator/dead-code-review/node_modules/fsevents/LICENSE +0 -22
- package/generator/dead-code-review/node_modules/fsevents/README.md +0 -83
- package/generator/dead-code-review/node_modules/fsevents/fsevents.d.ts +0 -46
- package/generator/dead-code-review/node_modules/fsevents/fsevents.js +0 -82
- package/generator/dead-code-review/node_modules/fsevents/fsevents.node +0 -0
- package/generator/dead-code-review/node_modules/fsevents/package.json +0 -62
- package/generator/dead-code-review/node_modules/glob/LICENSE +0 -15
- package/generator/dead-code-review/node_modules/glob/README.md +0 -378
- package/generator/dead-code-review/node_modules/glob/common.js +0 -240
- package/generator/dead-code-review/node_modules/glob/glob.js +0 -790
- package/generator/dead-code-review/node_modules/glob/package.json +0 -55
- package/generator/dead-code-review/node_modules/glob/sync.js +0 -486
- package/generator/dead-code-review/node_modules/glob-parent/CHANGELOG.md +0 -110
- package/generator/dead-code-review/node_modules/glob-parent/LICENSE +0 -15
- package/generator/dead-code-review/node_modules/glob-parent/README.md +0 -137
- package/generator/dead-code-review/node_modules/glob-parent/index.js +0 -42
- package/generator/dead-code-review/node_modules/glob-parent/package.json +0 -48
- package/generator/dead-code-review/node_modules/graceful-fs/LICENSE +0 -15
- package/generator/dead-code-review/node_modules/graceful-fs/README.md +0 -143
- package/generator/dead-code-review/node_modules/graceful-fs/clone.js +0 -23
- package/generator/dead-code-review/node_modules/graceful-fs/graceful-fs.js +0 -448
- package/generator/dead-code-review/node_modules/graceful-fs/legacy-streams.js +0 -118
- package/generator/dead-code-review/node_modules/graceful-fs/package.json +0 -50
- package/generator/dead-code-review/node_modules/graceful-fs/polyfills.js +0 -355
- package/generator/dead-code-review/node_modules/has-flag/index.d.ts +0 -39
- package/generator/dead-code-review/node_modules/has-flag/index.js +0 -8
- package/generator/dead-code-review/node_modules/has-flag/license +0 -9
- package/generator/dead-code-review/node_modules/has-flag/package.json +0 -46
- package/generator/dead-code-review/node_modules/has-flag/readme.md +0 -89
- package/generator/dead-code-review/node_modules/inflight/LICENSE +0 -15
- package/generator/dead-code-review/node_modules/inflight/README.md +0 -37
- package/generator/dead-code-review/node_modules/inflight/inflight.js +0 -54
- package/generator/dead-code-review/node_modules/inflight/package.json +0 -29
- package/generator/dead-code-review/node_modules/inherits/LICENSE +0 -16
- package/generator/dead-code-review/node_modules/inherits/README.md +0 -42
- package/generator/dead-code-review/node_modules/inherits/inherits.js +0 -9
- package/generator/dead-code-review/node_modules/inherits/inherits_browser.js +0 -27
- package/generator/dead-code-review/node_modules/inherits/package.json +0 -29
- package/generator/dead-code-review/node_modules/is-binary-path/index.d.ts +0 -17
- package/generator/dead-code-review/node_modules/is-binary-path/index.js +0 -7
- package/generator/dead-code-review/node_modules/is-binary-path/license +0 -9
- package/generator/dead-code-review/node_modules/is-binary-path/package.json +0 -40
- package/generator/dead-code-review/node_modules/is-binary-path/readme.md +0 -34
- package/generator/dead-code-review/node_modules/is-extglob/LICENSE +0 -21
- package/generator/dead-code-review/node_modules/is-extglob/README.md +0 -107
- package/generator/dead-code-review/node_modules/is-extglob/index.js +0 -20
- package/generator/dead-code-review/node_modules/is-extglob/package.json +0 -69
- package/generator/dead-code-review/node_modules/is-glob/LICENSE +0 -21
- package/generator/dead-code-review/node_modules/is-glob/README.md +0 -206
- package/generator/dead-code-review/node_modules/is-glob/index.js +0 -150
- package/generator/dead-code-review/node_modules/is-glob/package.json +0 -81
- package/generator/dead-code-review/node_modules/is-number/LICENSE +0 -21
- package/generator/dead-code-review/node_modules/is-number/README.md +0 -187
- package/generator/dead-code-review/node_modules/is-number/index.js +0 -18
- package/generator/dead-code-review/node_modules/is-number/package.json +0 -82
- package/generator/dead-code-review/node_modules/isexe/LICENSE +0 -15
- package/generator/dead-code-review/node_modules/isexe/README.md +0 -51
- package/generator/dead-code-review/node_modules/isexe/index.js +0 -57
- package/generator/dead-code-review/node_modules/isexe/mode.js +0 -41
- package/generator/dead-code-review/node_modules/isexe/package.json +0 -31
- package/generator/dead-code-review/node_modules/isexe/test/basic.js +0 -221
- package/generator/dead-code-review/node_modules/isexe/windows.js +0 -42
- package/generator/dead-code-review/node_modules/minimatch/LICENSE +0 -15
- package/generator/dead-code-review/node_modules/minimatch/README.md +0 -259
- package/generator/dead-code-review/node_modules/minimatch/lib/path.js +0 -4
- package/generator/dead-code-review/node_modules/minimatch/minimatch.js +0 -906
- package/generator/dead-code-review/node_modules/minimatch/package.json +0 -32
- package/generator/dead-code-review/node_modules/normalize-path/LICENSE +0 -21
- package/generator/dead-code-review/node_modules/normalize-path/README.md +0 -127
- package/generator/dead-code-review/node_modules/normalize-path/index.js +0 -35
- package/generator/dead-code-review/node_modules/normalize-path/package.json +0 -77
- package/generator/dead-code-review/node_modules/once/LICENSE +0 -15
- package/generator/dead-code-review/node_modules/once/README.md +0 -79
- package/generator/dead-code-review/node_modules/once/once.js +0 -42
- package/generator/dead-code-review/node_modules/once/package.json +0 -33
- package/generator/dead-code-review/node_modules/path-key/index.d.ts +0 -40
- package/generator/dead-code-review/node_modules/path-key/index.js +0 -16
- package/generator/dead-code-review/node_modules/path-key/license +0 -9
- package/generator/dead-code-review/node_modules/path-key/package.json +0 -39
- package/generator/dead-code-review/node_modules/path-key/readme.md +0 -61
- package/generator/dead-code-review/node_modules/picomatch/CHANGELOG.md +0 -136
- package/generator/dead-code-review/node_modules/picomatch/LICENSE +0 -21
- package/generator/dead-code-review/node_modules/picomatch/README.md +0 -708
- package/generator/dead-code-review/node_modules/picomatch/index.js +0 -3
- package/generator/dead-code-review/node_modules/picomatch/lib/constants.js +0 -179
- package/generator/dead-code-review/node_modules/picomatch/lib/parse.js +0 -1091
- package/generator/dead-code-review/node_modules/picomatch/lib/picomatch.js +0 -342
- package/generator/dead-code-review/node_modules/picomatch/lib/scan.js +0 -391
- package/generator/dead-code-review/node_modules/picomatch/lib/utils.js +0 -64
- package/generator/dead-code-review/node_modules/picomatch/package.json +0 -81
- package/generator/dead-code-review/node_modules/readdirp/LICENSE +0 -21
- package/generator/dead-code-review/node_modules/readdirp/README.md +0 -122
- package/generator/dead-code-review/node_modules/readdirp/index.d.ts +0 -43
- package/generator/dead-code-review/node_modules/readdirp/index.js +0 -287
- package/generator/dead-code-review/node_modules/readdirp/package.json +0 -122
- package/generator/dead-code-review/node_modules/shebang-command/index.js +0 -19
- package/generator/dead-code-review/node_modules/shebang-command/license +0 -9
- package/generator/dead-code-review/node_modules/shebang-command/package.json +0 -34
- package/generator/dead-code-review/node_modules/shebang-command/readme.md +0 -34
- package/generator/dead-code-review/node_modules/shebang-regex/index.d.ts +0 -22
- package/generator/dead-code-review/node_modules/shebang-regex/index.js +0 -2
- package/generator/dead-code-review/node_modules/shebang-regex/license +0 -9
- package/generator/dead-code-review/node_modules/shebang-regex/package.json +0 -35
- package/generator/dead-code-review/node_modules/shebang-regex/readme.md +0 -33
- package/generator/dead-code-review/node_modules/split/.travis.yml +0 -3
- package/generator/dead-code-review/node_modules/split/LICENCE +0 -22
- package/generator/dead-code-review/node_modules/split/examples/pretty.js +0 -26
- package/generator/dead-code-review/node_modules/split/index.js +0 -63
- package/generator/dead-code-review/node_modules/split/package.json +0 -30
- package/generator/dead-code-review/node_modules/split/readme.markdown +0 -72
- package/generator/dead-code-review/node_modules/split/test/options.asynct.js +0 -46
- package/generator/dead-code-review/node_modules/split/test/partitioned_unicode.js +0 -34
- package/generator/dead-code-review/node_modules/split/test/split.asynct.js +0 -137
- package/generator/dead-code-review/node_modules/split/test/try_catch.asynct.js +0 -51
- package/generator/dead-code-review/node_modules/supports-color/browser.js +0 -5
- package/generator/dead-code-review/node_modules/supports-color/index.js +0 -135
- package/generator/dead-code-review/node_modules/supports-color/license +0 -9
- package/generator/dead-code-review/node_modules/supports-color/package.json +0 -53
- package/generator/dead-code-review/node_modules/supports-color/readme.md +0 -76
- package/generator/dead-code-review/node_modules/through/.travis.yml +0 -5
- package/generator/dead-code-review/node_modules/through/LICENSE.APACHE2 +0 -15
- package/generator/dead-code-review/node_modules/through/LICENSE.MIT +0 -24
- package/generator/dead-code-review/node_modules/through/index.js +0 -108
- package/generator/dead-code-review/node_modules/through/package.json +0 -36
- package/generator/dead-code-review/node_modules/through/readme.markdown +0 -64
- package/generator/dead-code-review/node_modules/through/test/async.js +0 -28
- package/generator/dead-code-review/node_modules/through/test/auto-destroy.js +0 -30
- package/generator/dead-code-review/node_modules/through/test/buffering.js +0 -71
- package/generator/dead-code-review/node_modules/through/test/end.js +0 -45
- package/generator/dead-code-review/node_modules/through/test/index.js +0 -133
- package/generator/dead-code-review/node_modules/to-regex-range/LICENSE +0 -21
- package/generator/dead-code-review/node_modules/to-regex-range/README.md +0 -305
- package/generator/dead-code-review/node_modules/to-regex-range/index.js +0 -288
- package/generator/dead-code-review/node_modules/to-regex-range/package.json +0 -88
- package/generator/dead-code-review/node_modules/which/CHANGELOG.md +0 -166
- package/generator/dead-code-review/node_modules/which/LICENSE +0 -15
- package/generator/dead-code-review/node_modules/which/README.md +0 -54
- package/generator/dead-code-review/node_modules/which/bin/node-which +0 -52
- package/generator/dead-code-review/node_modules/which/package.json +0 -43
- package/generator/dead-code-review/node_modules/which/which.js +0 -125
- package/generator/dead-code-review/node_modules/wrappy/LICENSE +0 -15
- package/generator/dead-code-review/node_modules/wrappy/README.md +0 -36
- package/generator/dead-code-review/node_modules/wrappy/package.json +0 -29
- package/generator/dead-code-review/node_modules/wrappy/wrappy.js +0 -33
- package/generator/dead-code-review/node_modules/xmlbuilder/.nycrc +0 -6
- package/generator/dead-code-review/node_modules/xmlbuilder/.vscode/launch.json +0 -23
- package/generator/dead-code-review/node_modules/xmlbuilder/CHANGELOG.md +0 -593
- package/generator/dead-code-review/node_modules/xmlbuilder/LICENSE +0 -21
- package/generator/dead-code-review/node_modules/xmlbuilder/README.md +0 -103
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/Derivation.js +0 -10
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/DocumentPosition.js +0 -12
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/NodeType.js +0 -25
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/OperationType.js +0 -11
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/Utility.js +0 -88
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/WriterState.js +0 -10
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLAttribute.js +0 -130
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLCData.js +0 -41
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLCharacterData.js +0 -86
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLComment.js +0 -41
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js +0 -80
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js +0 -20
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMImplementation.js +0 -55
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMStringList.js +0 -44
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDAttList.js +0 -66
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDElement.js +0 -44
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDEntity.js +0 -115
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDNotation.js +0 -66
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDeclaration.js +0 -51
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocType.js +0 -235
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocument.js +0 -282
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocumentCB.js +0 -650
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocumentFragment.js +0 -21
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDummy.js +0 -39
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLElement.js +0 -334
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js +0 -77
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNode.js +0 -999
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNodeFilter.js +0 -51
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNodeList.js +0 -45
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js +0 -56
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLRaw.js +0 -40
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStreamWriter.js +0 -209
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStringWriter.js +0 -40
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStringifier.js +0 -291
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLText.js +0 -82
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLTypeInfo.js +0 -23
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLUserDataHandler.js +0 -27
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLWriterBase.js +0 -485
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/index.js +0 -120
- package/generator/dead-code-review/node_modules/xmlbuilder/package.json +0 -51
- package/generator/dead-code-review/node_modules/xmlbuilder/perf/basic/escaping.coffee +0 -244
- package/generator/dead-code-review/node_modules/xmlbuilder/perf/basic/object.coffee +0 -21
- package/generator/dead-code-review/node_modules/xmlbuilder/perf/index.coffee +0 -161
- package/generator/dead-code-review/node_modules/xmlbuilder/perf/perf.list +0 -11
- package/generator/dead-code-review/node_modules/xmlbuilder/typings/index.d.ts +0 -1771
- package/generator/review/elm-stuff/0.19.1/d.dat +0 -0
- package/generator/review/elm-stuff/0.19.1/i.dat +0 -0
- package/generator/review/elm-stuff/0.19.1/o.dat +0 -0
- 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
- 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
- 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
- package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm.json +0 -25
- 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
- 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
- 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
- package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm.json +0 -41
- package/src/DataSource/Env.elm +0 -62
- package/src/DataSource/Http.elm +0 -446
- package/src/DataSource/Internal/Request.elm +0 -20
- package/src/DataSource/Port.elm +0 -90
|
@@ -1,31 +1,32 @@
|
|
|
1
|
-
module
|
|
2
|
-
(
|
|
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 `
|
|
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 `
|
|
14
|
+
A `BackendTask` lets you pull in data from:
|
|
14
15
|
|
|
15
|
-
- Local files ([`
|
|
16
|
-
- HTTP requests ([`
|
|
17
|
-
- Globs, i.e. listing out local files based on a pattern like `content/*.txt` ([`
|
|
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 ([`
|
|
19
|
-
- Hardcoded data (`
|
|
20
|
-
- Or any combination of the above, using `
|
|
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
|
-
##
|
|
24
|
+
## BackendTask's vs. Effect's/Cmd's
|
|
24
25
|
|
|
25
|
-
|
|
26
|
-
in the Browser. Instead, the resolved data from the
|
|
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
|
|
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.
|
|
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 `
|
|
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 `
|
|
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
|
|
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
|
|
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
|
-
`
|
|
57
|
-
There are a few places where we can pass a `
|
|
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 `
|
|
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
|
|
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
|
|
84
|
-
import
|
|
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
|
|
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
|
|
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
|
|
106
|
+
import BackendTask
|
|
102
107
|
import Json.Decode as Decode exposing (Decoder)
|
|
103
108
|
|
|
104
109
|
view =
|
|
105
|
-
|
|
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
|
-
|>
|
|
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) ->
|
|
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 :
|
|
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
|
|
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 (
|
|
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) ->
|
|
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
|
-
(
|
|
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
|
-
(
|
|
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
|
-
(
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
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 `
|
|
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
|
|
250
|
+
import BackendTask
|
|
301
251
|
import Json.Decode as Decode exposing (Decoder)
|
|
302
252
|
|
|
303
|
-
licenseData :
|
|
253
|
+
licenseData : BackendTask String
|
|
304
254
|
licenseData =
|
|
305
|
-
|
|
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
|
-
|>
|
|
258
|
+
|> BackendTask.andThen
|
|
309
259
|
(\licenseUrl ->
|
|
310
|
-
|
|
260
|
+
BackendTask.Http.get (Secrets.succeed licenseUrl) (Decode.field "description" Decode.string)
|
|
311
261
|
)
|
|
312
262
|
|
|
313
263
|
-}
|
|
314
|
-
andThen : (a ->
|
|
264
|
+
andThen : (a -> BackendTask error b) -> BackendTask error a -> BackendTask error b
|
|
315
265
|
andThen fn requestInfo =
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
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 :
|
|
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
|
|
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 ->
|
|
345
|
+
succeed : a -> BackendTask error a
|
|
373
346
|
succeed value =
|
|
374
|
-
ApiRoute value
|
|
347
|
+
ApiRoute (Ok value)
|
|
375
348
|
|
|
376
349
|
|
|
377
|
-
{-|
|
|
378
|
-
|
|
379
|
-
|
|
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
|
|
356
|
+
{-| Turn an Err into a BackendTask failure.
|
|
387
357
|
-}
|
|
388
|
-
fromResult : Result
|
|
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
|
-
->
|
|
402
|
-
->
|
|
403
|
-
->
|
|
404
|
-
->
|
|
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
|
-
->
|
|
416
|
-
->
|
|
417
|
-
->
|
|
418
|
-
->
|
|
419
|
-
->
|
|
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
|
-
->
|
|
432
|
-
->
|
|
433
|
-
->
|
|
434
|
-
->
|
|
435
|
-
->
|
|
436
|
-
->
|
|
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
|
-
->
|
|
450
|
-
->
|
|
451
|
-
->
|
|
452
|
-
->
|
|
453
|
-
->
|
|
454
|
-
->
|
|
455
|
-
->
|
|
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
|
-
->
|
|
470
|
-
->
|
|
471
|
-
->
|
|
472
|
-
->
|
|
473
|
-
->
|
|
474
|
-
->
|
|
475
|
-
->
|
|
476
|
-
->
|
|
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
|
-
->
|
|
492
|
-
->
|
|
493
|
-
->
|
|
494
|
-
->
|
|
495
|
-
->
|
|
496
|
-
->
|
|
497
|
-
->
|
|
498
|
-
->
|
|
499
|
-
->
|
|
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
|
-
->
|
|
516
|
-
->
|
|
517
|
-
->
|
|
518
|
-
->
|
|
519
|
-
->
|
|
520
|
-
->
|
|
521
|
-
->
|
|
522
|
-
->
|
|
523
|
-
->
|
|
524
|
-
->
|
|
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)
|