elm-pages 3.0.0-beta.13 → 3.0.0-beta.15
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 -1130
- 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/error-formatter.js +7 -3
- package/generator/src/render-test.js +109 -0
- package/generator/src/render.js +83 -66
- package/generator/src/request-cache.js +181 -160
- package/generator/static-code/hmr.js +16 -2
- 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 +60 -57
- package/src/BackendTask/Env.elm +89 -0
- package/src/{DataSource → BackendTask}/File.elm +89 -43
- package/src/{DataSource → BackendTask}/Glob.elm +134 -125
- package/src/BackendTask/Http.elm +673 -0
- package/src/{DataSource → BackendTask}/Internal/Glob.elm +1 -1
- package/src/BackendTask/Internal/Request.elm +28 -0
- package/src/BackendTask/Port.elm +206 -0
- package/src/{DataSource.elm → BackendTask.elm} +223 -207
- package/src/Exception.elm +95 -0
- package/src/Form.elm +21 -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 +334 -165
- package/src/Pages/Internal/Platform/Cli.elm +432 -761
- 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 +63 -147
- package/src/Pages/Internal/Platform/StaticResponses.elm +73 -301
- 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 +23 -100
- package/src/RequestsAndPending.elm +8 -19
- package/src/Server/Request.elm +15 -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
- package/src/MultiDict.elm +0 -49
- package/src/PairingHeap.elm +0 -137
- package/src/Parser/Extra/String.elm +0 -33
- package/src/Parser/Extra.elm +0 -69
- package/src/ProgramTest/ComplexQuery.elm +0 -360
- package/src/ProgramTest/EffectSimulation.elm +0 -122
- package/src/ProgramTest/Failure.elm +0 -367
- package/src/ProgramTest/HtmlHighlighter.elm +0 -116
- package/src/ProgramTest/HtmlParserHacks.elm +0 -58
- package/src/ProgramTest/HtmlRenderer.elm +0 -73
- package/src/ProgramTest/Program.elm +0 -30
- package/src/ProgramTest/StringLines.elm +0 -26
- package/src/ProgramTest/TestHtmlHacks.elm +0 -132
- package/src/ProgramTest/TestHtmlParser.elm +0 -201
- package/src/ProgramTest.elm +0 -2339
- package/src/Query/Extra.elm +0 -55
- package/src/SimulatedEffect/Cmd.elm +0 -69
- package/src/SimulatedEffect/Http.elm +0 -330
- package/src/SimulatedEffect/Navigation.elm +0 -69
- package/src/SimulatedEffect/Ports.elm +0 -62
- package/src/SimulatedEffect/Process.elm +0 -24
- package/src/SimulatedEffect/Sub.elm +0 -48
- package/src/SimulatedEffect/Task.elm +0 -252
- package/src/SimulatedEffect/Time.elm +0 -25
- package/src/SimulatedEffect.elm +0 -42
- package/src/String/Extra.elm +0 -6
- package/src/Test/Http.elm +0 -145
- package/src/TestResult.elm +0 -35
- package/src/TestState.elm +0 -305
- package/src/Url/Extra.elm +0 -100
- package/src/Vendored/Diff.elm +0 -321
- package/src/Vendored/Failure.elm +0 -217
- package/src/Vendored/FormatMonochrome.elm +0 -44
- package/src/Vendored/Highlightable.elm +0 -53
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
module Pages.Internal.StaticHttpBody exposing (Body(..), codec, encode)
|
|
2
2
|
|
|
3
|
+
import Base64
|
|
4
|
+
import Bytes exposing (Bytes)
|
|
3
5
|
import Codec exposing (Codec)
|
|
6
|
+
import Json.Decode
|
|
4
7
|
import Json.Encode as Encode
|
|
5
8
|
|
|
6
9
|
|
|
@@ -8,6 +11,7 @@ type Body
|
|
|
8
11
|
= EmptyBody
|
|
9
12
|
| StringBody String String
|
|
10
13
|
| JsonBody Encode.Value
|
|
14
|
+
| BytesBody String Bytes
|
|
11
15
|
|
|
12
16
|
|
|
13
17
|
encode : Body -> Encode.Value
|
|
@@ -26,6 +30,15 @@ encode body =
|
|
|
26
30
|
[ ( "content", content )
|
|
27
31
|
]
|
|
28
32
|
|
|
33
|
+
BytesBody _ content ->
|
|
34
|
+
encodeWithType "bytes"
|
|
35
|
+
[ ( "content"
|
|
36
|
+
, Base64.fromBytes content
|
|
37
|
+
|> Maybe.withDefault ""
|
|
38
|
+
|> Encode.string
|
|
39
|
+
)
|
|
40
|
+
]
|
|
41
|
+
|
|
29
42
|
|
|
30
43
|
encodeWithType : String -> List ( String, Encode.Value ) -> Encode.Value
|
|
31
44
|
encodeWithType typeName otherFields =
|
|
@@ -37,7 +50,7 @@ encodeWithType typeName otherFields =
|
|
|
37
50
|
codec : Codec Body
|
|
38
51
|
codec =
|
|
39
52
|
Codec.custom
|
|
40
|
-
(\vEmpty vString vJson value ->
|
|
53
|
+
(\vEmpty vString vJson vBytes value ->
|
|
41
54
|
case value of
|
|
42
55
|
EmptyBody ->
|
|
43
56
|
vEmpty
|
|
@@ -47,8 +60,29 @@ codec =
|
|
|
47
60
|
|
|
48
61
|
JsonBody body ->
|
|
49
62
|
vJson body
|
|
63
|
+
|
|
64
|
+
BytesBody contentType body ->
|
|
65
|
+
vBytes contentType body
|
|
50
66
|
)
|
|
51
67
|
|> Codec.variant0 "EmptyBody" EmptyBody
|
|
52
68
|
|> Codec.variant2 "StringBody" StringBody Codec.string Codec.string
|
|
53
69
|
|> Codec.variant1 "JsonBody" JsonBody Codec.value
|
|
70
|
+
|> Codec.variant2 "BytesBody" BytesBody Codec.string bytesCodec
|
|
54
71
|
|> Codec.buildCustom
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
bytesCodec : Codec Bytes
|
|
75
|
+
bytesCodec =
|
|
76
|
+
Codec.build (Base64.fromBytes >> Maybe.withDefault "" >> Encode.string)
|
|
77
|
+
(Json.Decode.string
|
|
78
|
+
|> Json.Decode.map Base64.toBytes
|
|
79
|
+
|> Json.Decode.andThen
|
|
80
|
+
(\decodedBytes ->
|
|
81
|
+
case decodedBytes of
|
|
82
|
+
Just bytes ->
|
|
83
|
+
Json.Decode.succeed bytes
|
|
84
|
+
|
|
85
|
+
Nothing ->
|
|
86
|
+
Json.Decode.fail "Couldn't parse bytes."
|
|
87
|
+
)
|
|
88
|
+
)
|
package/src/Pages/Manifest.elm
CHANGED
|
@@ -64,10 +64,11 @@ You pass your `Pages.Manifest.Config` record into the `Pages.application` functi
|
|
|
64
64
|
-}
|
|
65
65
|
|
|
66
66
|
import ApiRoute
|
|
67
|
+
import BackendTask exposing (BackendTask)
|
|
67
68
|
import Color exposing (Color)
|
|
68
69
|
import Color.Convert
|
|
69
|
-
import DataSource exposing (DataSource)
|
|
70
70
|
import Dict exposing (Dict)
|
|
71
|
+
import Exception exposing (Throwable)
|
|
71
72
|
import Head
|
|
72
73
|
import Json.Encode as Encode
|
|
73
74
|
import LanguageTag exposing (LanguageTag, emptySubtags)
|
|
@@ -344,16 +345,16 @@ nonEmptyList list =
|
|
|
344
345
|
|
|
345
346
|
{-| A generator for Api.elm to include a manifest.json.
|
|
346
347
|
-}
|
|
347
|
-
generator : String ->
|
|
348
|
+
generator : String -> BackendTask Throwable Config -> ApiRoute.ApiRoute ApiRoute.Response
|
|
348
349
|
generator canonicalSiteUrl config =
|
|
349
350
|
ApiRoute.succeed
|
|
350
351
|
(config
|
|
351
|
-
|>
|
|
352
|
+
|> BackendTask.map (toJson canonicalSiteUrl >> Encode.encode 0)
|
|
352
353
|
)
|
|
353
354
|
|> ApiRoute.literal "manifest.json"
|
|
354
355
|
|> ApiRoute.single
|
|
355
356
|
|> ApiRoute.withGlobalHeadTags
|
|
356
|
-
(
|
|
357
|
+
(BackendTask.succeed
|
|
357
358
|
[ Head.manifestLink "/manifest.json"
|
|
358
359
|
]
|
|
359
360
|
)
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
module Pages.ProgramConfig exposing (ProgramConfig)
|
|
2
2
|
|
|
3
3
|
import ApiRoute
|
|
4
|
+
import BackendTask exposing (BackendTask)
|
|
4
5
|
import Browser.Navigation
|
|
5
6
|
import Bytes exposing (Bytes)
|
|
6
7
|
import Bytes.Decode
|
|
7
8
|
import Bytes.Encode
|
|
8
|
-
import DataSource exposing (DataSource)
|
|
9
9
|
import Dict exposing (Dict)
|
|
10
|
+
import Exception exposing (Throwable)
|
|
10
11
|
import Form.FormData exposing (FormData)
|
|
11
12
|
import Head
|
|
12
13
|
import Html exposing (Html)
|
|
@@ -48,9 +49,9 @@ type alias ProgramConfig userMsg userModel route pageData actionData sharedData
|
|
|
48
49
|
-> ( userModel, effect )
|
|
49
50
|
, update : Pages.FormState.PageFormState -> Dict String (Pages.Transition.FetcherState actionData) -> Maybe Pages.Transition.Transition -> sharedData -> pageData -> Maybe Browser.Navigation.Key -> userMsg -> userModel -> ( userModel, effect )
|
|
50
51
|
, subscriptions : route -> Path -> userModel -> Sub userMsg
|
|
51
|
-
, sharedData :
|
|
52
|
-
, data : route ->
|
|
53
|
-
, action : route ->
|
|
52
|
+
, sharedData : BackendTask Throwable sharedData
|
|
53
|
+
, data : Decode.Value -> route -> BackendTask Throwable (PageServerResponse pageData errorPage)
|
|
54
|
+
, action : Decode.Value -> route -> BackendTask Throwable (PageServerResponse actionData errorPage)
|
|
54
55
|
, onActionData : actionData -> Maybe userMsg
|
|
55
56
|
, view :
|
|
56
57
|
Pages.FormState.PageFormState
|
|
@@ -68,8 +69,8 @@ type alias ProgramConfig userMsg userModel route pageData actionData sharedData
|
|
|
68
69
|
{ view : userModel -> { title : String, body : List (Html (Pages.Msg.Msg userMsg)) }
|
|
69
70
|
, head : List Head.Tag
|
|
70
71
|
}
|
|
71
|
-
, handleRoute : route ->
|
|
72
|
-
, getStaticRoutes :
|
|
72
|
+
, handleRoute : route -> BackendTask Throwable (Maybe NotFoundReason)
|
|
73
|
+
, getStaticRoutes : BackendTask Throwable (List route)
|
|
73
74
|
, urlToRoute : Url -> route
|
|
74
75
|
, routeToPath : route -> List String
|
|
75
76
|
, site : Maybe SiteConfig
|
|
@@ -101,7 +102,7 @@ type alias ProgramConfig userMsg userModel route pageData actionData sharedData
|
|
|
101
102
|
, encodeResponse : ResponseSketch pageData actionData sharedData -> Bytes.Encode.Encoder
|
|
102
103
|
, encodeAction : actionData -> Bytes.Encode.Encoder
|
|
103
104
|
, decodeResponse : Bytes.Decode.Decoder (ResponseSketch pageData actionData sharedData)
|
|
104
|
-
, globalHeadTags : Maybe ((Maybe { indent : Int, newLines : Bool } -> Html Never -> String) ->
|
|
105
|
+
, globalHeadTags : Maybe ((Maybe { indent : Int, newLines : Bool } -> Html Never -> String) -> BackendTask Throwable (List Head.Tag))
|
|
105
106
|
, cmdToEffect : Cmd userMsg -> effect
|
|
106
107
|
, perform :
|
|
107
108
|
{ fetchRouteData :
|
package/src/Pages/Script.elm
CHANGED
|
@@ -3,6 +3,7 @@ module Pages.Script exposing
|
|
|
3
3
|
, withCliOptions, withoutCliOptions
|
|
4
4
|
, writeFile
|
|
5
5
|
, log
|
|
6
|
+
, Error(..)
|
|
6
7
|
)
|
|
7
8
|
|
|
8
9
|
{-|
|
|
@@ -21,13 +22,19 @@ module Pages.Script exposing
|
|
|
21
22
|
|
|
22
23
|
@docs log
|
|
23
24
|
|
|
25
|
+
|
|
26
|
+
## Errors
|
|
27
|
+
|
|
28
|
+
@docs Error
|
|
29
|
+
|
|
24
30
|
-}
|
|
25
31
|
|
|
32
|
+
import BackendTask exposing (BackendTask)
|
|
33
|
+
import BackendTask.Http
|
|
34
|
+
import BackendTask.Internal.Request
|
|
26
35
|
import Cli.OptionsParser as OptionsParser
|
|
27
36
|
import Cli.Program as Program
|
|
28
|
-
import
|
|
29
|
-
import DataSource.Http
|
|
30
|
-
import DataSource.Internal.Request
|
|
37
|
+
import Exception exposing (Exception, Throwable)
|
|
31
38
|
import Json.Decode as Decode
|
|
32
39
|
import Json.Encode as Encode
|
|
33
40
|
import Pages.Internal.Script
|
|
@@ -39,38 +46,46 @@ type alias Script =
|
|
|
39
46
|
|
|
40
47
|
|
|
41
48
|
{-| -}
|
|
42
|
-
|
|
49
|
+
type Error
|
|
50
|
+
= --TODO make more descriptive
|
|
51
|
+
FileWriteError
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
{-| -}
|
|
55
|
+
writeFile : { path : String, body : String } -> BackendTask (Exception Error) ()
|
|
43
56
|
writeFile { path, body } =
|
|
44
|
-
|
|
57
|
+
BackendTask.Internal.Request.request
|
|
45
58
|
{ name = "write-file"
|
|
46
59
|
, body =
|
|
47
|
-
|
|
60
|
+
BackendTask.Http.jsonBody
|
|
48
61
|
(Encode.object
|
|
49
62
|
[ ( "path", Encode.string path )
|
|
50
63
|
, ( "body", Encode.string body )
|
|
51
64
|
]
|
|
52
65
|
)
|
|
53
|
-
, expect =
|
|
66
|
+
, expect =
|
|
67
|
+
-- TODO decode possible error details here
|
|
68
|
+
BackendTask.Http.expectJson (Decode.succeed ())
|
|
54
69
|
}
|
|
55
70
|
|
|
56
71
|
|
|
57
72
|
{-| -}
|
|
58
|
-
log : String ->
|
|
73
|
+
log : String -> BackendTask error ()
|
|
59
74
|
log message =
|
|
60
|
-
|
|
75
|
+
BackendTask.Internal.Request.request
|
|
61
76
|
{ name = "log"
|
|
62
77
|
, body =
|
|
63
|
-
|
|
78
|
+
BackendTask.Http.jsonBody
|
|
64
79
|
(Encode.object
|
|
65
80
|
[ ( "message", Encode.string message )
|
|
66
81
|
]
|
|
67
82
|
)
|
|
68
|
-
, expect =
|
|
83
|
+
, expect = BackendTask.Http.expectJson (Decode.succeed ())
|
|
69
84
|
}
|
|
70
85
|
|
|
71
86
|
|
|
72
87
|
{-| -}
|
|
73
|
-
withoutCliOptions :
|
|
88
|
+
withoutCliOptions : BackendTask Throwable () -> Script
|
|
74
89
|
withoutCliOptions execute =
|
|
75
90
|
Pages.Internal.Script.Script
|
|
76
91
|
(\_ ->
|
|
@@ -85,7 +100,7 @@ withoutCliOptions execute =
|
|
|
85
100
|
|
|
86
101
|
|
|
87
102
|
{-| -}
|
|
88
|
-
withCliOptions : Program.Config cliOptions -> (cliOptions ->
|
|
103
|
+
withCliOptions : Program.Config cliOptions -> (cliOptions -> BackendTask Throwable ()) -> Script
|
|
89
104
|
withCliOptions config execute =
|
|
90
105
|
Pages.Internal.Script.Script
|
|
91
106
|
(\_ ->
|
package/src/Pages/SiteConfig.elm
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
module Pages.SiteConfig exposing (SiteConfig)
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import BackendTask exposing (BackendTask)
|
|
4
|
+
import Exception exposing (Throwable)
|
|
4
5
|
import Head
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
type alias SiteConfig =
|
|
8
9
|
{ canonicalUrl : String
|
|
9
|
-
, head :
|
|
10
|
+
, head : BackendTask Throwable (List Head.Tag)
|
|
10
11
|
}
|
|
@@ -11,7 +11,7 @@ type alias Request =
|
|
|
11
11
|
, method : String
|
|
12
12
|
, headers : List ( String, String )
|
|
13
13
|
, body : Body
|
|
14
|
-
,
|
|
14
|
+
, cacheOptions : Maybe Encode.Value
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
|
|
@@ -40,5 +40,5 @@ codec =
|
|
|
40
40
|
|> Codec.field "method" .method Codec.string
|
|
41
41
|
|> Codec.field "headers" .headers (Codec.list (Codec.tuple Codec.string Codec.string))
|
|
42
42
|
|> Codec.field "body" .body StaticHttpBody.codec
|
|
43
|
-
|> Codec.
|
|
43
|
+
|> Codec.nullableField "cacheOptions" .cacheOptions Codec.value
|
|
44
44
|
|> Codec.buildObject
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
module Pages.StaticHttpRequest exposing (Error(..), MockResolver, RawRequest(..), Status(..), cacheRequestResolution, mockResolve,
|
|
1
|
+
module Pages.StaticHttpRequest exposing (Error(..), MockResolver, RawRequest(..), Status(..), cacheRequestResolution, mockResolve, toBuildError)
|
|
2
2
|
|
|
3
3
|
import BuildError exposing (BuildError)
|
|
4
4
|
import Dict
|
|
5
|
-
import
|
|
5
|
+
import Json.Encode
|
|
6
6
|
import Pages.StaticHttp.Request
|
|
7
7
|
import RequestsAndPending exposing (RequestsAndPending)
|
|
8
8
|
import TerminalText as Terminal
|
|
@@ -13,30 +13,19 @@ type alias MockResolver =
|
|
|
13
13
|
-> Maybe RequestsAndPending.Response
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
type RawRequest value
|
|
17
|
-
= Request (List Pages.StaticHttp.Request.Request) (Maybe MockResolver -> RequestsAndPending -> RawRequest value)
|
|
18
|
-
|
|
|
19
|
-
| ApiRoute value
|
|
16
|
+
type RawRequest error value
|
|
17
|
+
= Request (List Pages.StaticHttp.Request.Request) (Maybe MockResolver -> RequestsAndPending -> RawRequest error value)
|
|
18
|
+
| ApiRoute (Result error value)
|
|
20
19
|
|
|
21
20
|
|
|
22
21
|
type Error
|
|
23
|
-
=
|
|
24
|
-
| DecoderError String
|
|
22
|
+
= DecoderError String
|
|
25
23
|
| UserCalledStaticHttpFail String
|
|
26
24
|
|
|
27
25
|
|
|
28
26
|
toBuildError : String -> Error -> BuildError
|
|
29
27
|
toBuildError path error =
|
|
30
28
|
case error of
|
|
31
|
-
MissingHttpResponse missingKey _ ->
|
|
32
|
-
{ title = "Missing Http Response"
|
|
33
|
-
, message =
|
|
34
|
-
[ Terminal.text missingKey
|
|
35
|
-
]
|
|
36
|
-
, path = path
|
|
37
|
-
, fatal = True
|
|
38
|
-
}
|
|
39
|
-
|
|
40
29
|
DecoderError decodeErrorMessage ->
|
|
41
30
|
{ title = "Static Http Decoding Error"
|
|
42
31
|
, message =
|
|
@@ -49,109 +38,43 @@ toBuildError path error =
|
|
|
49
38
|
UserCalledStaticHttpFail decodeErrorMessage ->
|
|
50
39
|
{ title = "Called Static Http Fail"
|
|
51
40
|
, message =
|
|
52
|
-
[ Terminal.text <| "I ran into a call to `
|
|
41
|
+
[ Terminal.text <| "I ran into a call to `BackendTask.fail` with message: " ++ decodeErrorMessage
|
|
53
42
|
]
|
|
54
43
|
, path = path
|
|
55
44
|
, fatal = True
|
|
56
45
|
}
|
|
57
46
|
|
|
58
47
|
|
|
59
|
-
|
|
60
|
-
resolve request rawResponses =
|
|
61
|
-
case request of
|
|
62
|
-
RequestError error ->
|
|
63
|
-
Err error
|
|
64
|
-
|
|
65
|
-
Request _ lookupFn ->
|
|
66
|
-
case lookupFn Nothing rawResponses of
|
|
67
|
-
nextRequest ->
|
|
68
|
-
resolve nextRequest rawResponses
|
|
69
|
-
|
|
70
|
-
ApiRoute value ->
|
|
71
|
-
Ok value
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
mockResolve : RawRequest value -> MockResolver -> Result Error value
|
|
48
|
+
mockResolve : RawRequest error value -> MockResolver -> Result error value
|
|
75
49
|
mockResolve request mockResolver =
|
|
76
50
|
case request of
|
|
77
|
-
RequestError error ->
|
|
78
|
-
Err error
|
|
79
|
-
|
|
80
51
|
Request _ lookupFn ->
|
|
81
|
-
case lookupFn (Just mockResolver)
|
|
52
|
+
case lookupFn (Just mockResolver) (Json.Encode.object []) of
|
|
82
53
|
nextRequest ->
|
|
83
54
|
mockResolve nextRequest mockResolver
|
|
84
55
|
|
|
85
56
|
ApiRoute value ->
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
resolveUrls : RawRequest value -> RequestsAndPending -> List Pages.StaticHttp.Request.Request
|
|
90
|
-
resolveUrls request rawResponses =
|
|
91
|
-
resolveUrlsHelp rawResponses [] request
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
resolveUrlsHelp : RequestsAndPending -> List Pages.StaticHttp.Request.Request -> RawRequest value -> List Pages.StaticHttp.Request.Request
|
|
95
|
-
resolveUrlsHelp rawResponses soFar request =
|
|
96
|
-
case request of
|
|
97
|
-
RequestError error ->
|
|
98
|
-
case error of
|
|
99
|
-
MissingHttpResponse _ next ->
|
|
100
|
-
(soFar ++ next)
|
|
101
|
-
|> List.Extra.uniqueBy Pages.StaticHttp.Request.hash
|
|
102
|
-
|
|
103
|
-
_ ->
|
|
104
|
-
soFar
|
|
105
|
-
|
|
106
|
-
Request urlList lookupFn ->
|
|
107
|
-
resolveUrlsHelp
|
|
108
|
-
rawResponses
|
|
109
|
-
(soFar ++ urlList)
|
|
110
|
-
(lookupFn Nothing rawResponses)
|
|
111
|
-
|
|
112
|
-
ApiRoute _ ->
|
|
113
|
-
soFar
|
|
57
|
+
value
|
|
114
58
|
|
|
115
59
|
|
|
116
60
|
cacheRequestResolution :
|
|
117
|
-
RawRequest value
|
|
61
|
+
RawRequest error value
|
|
118
62
|
-> RequestsAndPending
|
|
119
|
-
-> Status value
|
|
63
|
+
-> Status error value
|
|
120
64
|
cacheRequestResolution request rawResponses =
|
|
121
|
-
cacheRequestResolutionHelp [] rawResponses request request
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
type Status value
|
|
125
|
-
= Incomplete (List Pages.StaticHttp.Request.Request) (RawRequest value)
|
|
126
|
-
| HasPermanentError Error (RawRequest value)
|
|
127
|
-
| Complete
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
cacheRequestResolutionHelp :
|
|
131
|
-
List Pages.StaticHttp.Request.Request
|
|
132
|
-
-> RequestsAndPending
|
|
133
|
-
-> RawRequest value
|
|
134
|
-
-> RawRequest value
|
|
135
|
-
-> Status value
|
|
136
|
-
cacheRequestResolutionHelp foundUrls rawResponses parentRequest request =
|
|
137
65
|
case request of
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
-- TODO do I need to pass through continuation URLs here? -- Incomplete (urlList ++ foundUrls)
|
|
142
|
-
Incomplete foundUrls parentRequest
|
|
66
|
+
Request urlList lookupFn ->
|
|
67
|
+
if List.isEmpty urlList then
|
|
68
|
+
cacheRequestResolution (lookupFn Nothing rawResponses) rawResponses
|
|
143
69
|
|
|
144
|
-
|
|
145
|
-
|
|
70
|
+
else
|
|
71
|
+
Incomplete urlList (Request [] lookupFn)
|
|
146
72
|
|
|
147
|
-
|
|
148
|
-
|
|
73
|
+
ApiRoute value ->
|
|
74
|
+
Complete value
|
|
149
75
|
|
|
150
|
-
Request urlList lookupFn ->
|
|
151
|
-
cacheRequestResolutionHelp urlList
|
|
152
|
-
rawResponses
|
|
153
|
-
request
|
|
154
|
-
(lookupFn Nothing rawResponses)
|
|
155
76
|
|
|
156
|
-
|
|
157
|
-
|
|
77
|
+
type Status error value
|
|
78
|
+
= Incomplete (List Pages.StaticHttp.Request.Request) (RawRequest error value)
|
|
79
|
+
| HasPermanentError Error
|
|
80
|
+
| Complete (Result error value)
|
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
module RequestsAndPending exposing (RequestsAndPending, Response(..), ResponseBody(..),
|
|
1
|
+
module RequestsAndPending exposing (RawResponse, RequestsAndPending, Response(..), ResponseBody(..), bodyEncoder, get)
|
|
2
2
|
|
|
3
3
|
import Base64
|
|
4
4
|
import Bytes exposing (Bytes)
|
|
5
|
-
import Codec
|
|
6
5
|
import Dict exposing (Dict)
|
|
7
6
|
import Json.Decode as Decode exposing (Decoder)
|
|
8
7
|
import Json.Encode as Encode
|
|
9
|
-
import Pages.StaticHttp.Request
|
|
10
8
|
|
|
11
9
|
|
|
12
10
|
type alias RequestsAndPending =
|
|
13
|
-
|
|
11
|
+
Decode.Value
|
|
14
12
|
|
|
15
13
|
|
|
16
14
|
type ResponseBody
|
|
@@ -20,18 +18,6 @@ type ResponseBody
|
|
|
20
18
|
| WhateverBody
|
|
21
19
|
|
|
22
20
|
|
|
23
|
-
batchDecoder : Decoder (List { request : Pages.StaticHttp.Request.Request, response : Response })
|
|
24
|
-
batchDecoder =
|
|
25
|
-
Decode.map2 (\request response -> { request = request, response = response })
|
|
26
|
-
(Decode.field "request"
|
|
27
|
-
(Pages.StaticHttp.Request.codec
|
|
28
|
-
|> Codec.decoder
|
|
29
|
-
)
|
|
30
|
-
)
|
|
31
|
-
(Decode.field "response" decoder)
|
|
32
|
-
|> Decode.list
|
|
33
|
-
|
|
34
|
-
|
|
35
21
|
decoder : Decoder Response
|
|
36
22
|
decoder =
|
|
37
23
|
Decode.map2 Response
|
|
@@ -117,6 +103,9 @@ responseDecoder =
|
|
|
117
103
|
|
|
118
104
|
get : String -> RequestsAndPending -> Maybe Response
|
|
119
105
|
get key requestsAndPending =
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
106
|
+
Decode.decodeValue
|
|
107
|
+
(Decode.field key
|
|
108
|
+
(Decode.field "response" decoder)
|
|
109
|
+
)
|
|
110
|
+
requestsAndPending
|
|
111
|
+
|> Result.toMaybe
|
package/src/Server/Request.elm
CHANGED
|
@@ -86,9 +86,10 @@ module Server.Request exposing
|
|
|
86
86
|
|
|
87
87
|
-}
|
|
88
88
|
|
|
89
|
+
import BackendTask exposing (BackendTask)
|
|
89
90
|
import CookieParser
|
|
90
|
-
import DataSource exposing (DataSource)
|
|
91
91
|
import Dict exposing (Dict)
|
|
92
|
+
import Exception exposing (Throwable)
|
|
92
93
|
import Form
|
|
93
94
|
import Form.Validation as Validation
|
|
94
95
|
import FormData
|
|
@@ -118,17 +119,17 @@ Note that this data is not available for pre-rendered pages or pre-rendered API
|
|
|
118
119
|
This is because when a page is pre-rendered, there _is_ no incoming HTTP request to respond to, it is rendered before a user
|
|
119
120
|
requests the page and then the pre-rendered page is served as a plain file (without running your Route Module).
|
|
120
121
|
|
|
121
|
-
That's why `RouteBuilder.preRender` has `data : RouteParams ->
|
|
122
|
+
That's why `RouteBuilder.preRender` has `data : RouteParams -> BackendTask Data`:
|
|
122
123
|
|
|
123
|
-
import
|
|
124
|
+
import BackendTask exposing (BackendTask)
|
|
124
125
|
import RouteBuilder exposing (StatelessRoute)
|
|
125
126
|
|
|
126
127
|
type alias Data =
|
|
127
128
|
{}
|
|
128
129
|
|
|
129
|
-
data : RouteParams ->
|
|
130
|
+
data : RouteParams -> BackendTask Data
|
|
130
131
|
data routeParams =
|
|
131
|
-
|
|
132
|
+
BackendTask.succeed Data
|
|
132
133
|
|
|
133
134
|
route : StatelessRoute RouteParams Data ActionData
|
|
134
135
|
route =
|
|
@@ -141,7 +142,7 @@ That's why `RouteBuilder.preRender` has `data : RouteParams -> DataSource Data`:
|
|
|
141
142
|
|
|
142
143
|
A server-rendered Route Module _does_ have access to a user's incoming HTTP request because it runs every time the page
|
|
143
144
|
is loaded. That's why `data` is a `Request.Parser` in server-rendered Route Modules. Since you have an incoming HTTP request for server-rendered routes,
|
|
144
|
-
`RouteBuilder.serverRender` has `data : RouteParams -> Request.Parser (
|
|
145
|
+
`RouteBuilder.serverRender` has `data : RouteParams -> Request.Parser (BackendTask (Response Data))`. That means that you
|
|
145
146
|
can use the incoming HTTP request data to choose how to respond. For example, you could check for a dark-mode preference
|
|
146
147
|
cookie and render a light- or dark-themed page and render a different page.
|
|
147
148
|
|
|
@@ -151,7 +152,7 @@ That's a mouthful, so let's unpack what it means.
|
|
|
151
152
|
|
|
152
153
|
data from the request payload using a Server Request Parser.
|
|
153
154
|
|
|
154
|
-
import
|
|
155
|
+
import BackendTask exposing (BackendTask)
|
|
155
156
|
import RouteBuilder exposing (StatelessRoute)
|
|
156
157
|
import Server.Request as Request exposing (Request)
|
|
157
158
|
import Server.Response as Response exposing (Response)
|
|
@@ -161,11 +162,11 @@ data from the request payload using a Server Request Parser.
|
|
|
161
162
|
|
|
162
163
|
data :
|
|
163
164
|
RouteParams
|
|
164
|
-
-> Request.Parser (
|
|
165
|
+
-> Request.Parser (BackendTask (Response Data))
|
|
165
166
|
data routeParams =
|
|
166
167
|
{}
|
|
167
168
|
|> Server.Response.render
|
|
168
|
-
|>
|
|
169
|
+
|> BackendTask.succeed
|
|
169
170
|
|> Request.succeed
|
|
170
171
|
|
|
171
172
|
route : StatelessRoute RouteParams Data ActionData
|
|
@@ -225,7 +226,7 @@ succeed value =
|
|
|
225
226
|
|
|
226
227
|
{-| TODO internal only
|
|
227
228
|
-}
|
|
228
|
-
getDecoder : Parser (
|
|
229
|
+
getDecoder : Parser (BackendTask error response) -> Json.Decode.Decoder (Result ( ValidationError, List ValidationError ) (BackendTask error response))
|
|
229
230
|
getDecoder (Internal.Request.Parser decoder) =
|
|
230
231
|
decoder
|
|
231
232
|
|> Json.Decode.map
|
|
@@ -881,8 +882,8 @@ fileField_ name =
|
|
|
881
882
|
|
|
882
883
|
{-| -}
|
|
883
884
|
formDataWithServerValidation :
|
|
884
|
-
Form.ServerForms error (
|
|
885
|
-
-> Parser (
|
|
885
|
+
Form.ServerForms error (BackendTask Throwable (Validation.Validation error combined kind constraints))
|
|
886
|
+
-> Parser (BackendTask Throwable (Result (Form.Response error) ( Form.Response error, combined )))
|
|
886
887
|
formDataWithServerValidation formParsers =
|
|
887
888
|
rawFormData
|
|
888
889
|
|> andThen
|
|
@@ -897,7 +898,7 @@ formDataWithServerValidation formParsers =
|
|
|
897
898
|
( Just decoded, Nothing ) ->
|
|
898
899
|
succeed
|
|
899
900
|
(decoded
|
|
900
|
-
|>
|
|
901
|
+
|> BackendTask.map
|
|
901
902
|
(\(Validation _ _ ( maybeParsed, errors2 )) ->
|
|
902
903
|
case ( maybeParsed, errors2 |> Dict.toList |> List.filter (\( _, value ) -> value |> List.isEmpty |> not) |> List.NonEmpty.fromList ) of
|
|
903
904
|
( Just decodedFinal, Nothing ) ->
|
|
@@ -934,7 +935,7 @@ formDataWithServerValidation formParsers =
|
|
|
934
935
|
|> Dict.fromList
|
|
935
936
|
}
|
|
936
937
|
)
|
|
937
|
-
|>
|
|
938
|
+
|> BackendTask.succeed
|
|
938
939
|
|> succeed
|
|
939
940
|
)
|
|
940
941
|
|