elm-pages 3.0.0-beta.10 → 3.0.0-beta.13
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 +1 -1
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/dependencies.75364bef27ac5a049b87c3325f846fc6dbda23b8ed7187ed06748b96bb6a50a7.json +1 -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.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 +38 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elmTestOutput.js +29603 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/package.json +1 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/src/Test/Generated/Main.elm +27 -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/d.dat +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.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 +1327 -122
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +15157 -13245
- 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/elm.json +8 -6
- package/generator/dead-code-review/node_modules/.package-lock.json +484 -0
- package/generator/dead-code-review/node_modules/ansi-styles/index.d.ts +345 -0
- package/generator/dead-code-review/node_modules/ansi-styles/index.js +163 -0
- package/generator/dead-code-review/node_modules/ansi-styles/license +9 -0
- package/generator/dead-code-review/node_modules/ansi-styles/package.json +56 -0
- package/generator/dead-code-review/node_modules/ansi-styles/readme.md +152 -0
- package/generator/dead-code-review/node_modules/anymatch/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/anymatch/README.md +87 -0
- package/generator/dead-code-review/node_modules/anymatch/index.d.ts +20 -0
- package/generator/dead-code-review/node_modules/anymatch/index.js +104 -0
- package/generator/dead-code-review/node_modules/anymatch/package.json +48 -0
- package/generator/dead-code-review/node_modules/balanced-match/.github/FUNDING.yml +2 -0
- package/generator/dead-code-review/node_modules/balanced-match/LICENSE.md +21 -0
- package/generator/dead-code-review/node_modules/balanced-match/README.md +97 -0
- package/generator/dead-code-review/node_modules/balanced-match/index.js +62 -0
- package/generator/dead-code-review/node_modules/balanced-match/package.json +48 -0
- package/generator/dead-code-review/node_modules/binary-extensions/binary-extensions.json +260 -0
- package/generator/dead-code-review/node_modules/binary-extensions/binary-extensions.json.d.ts +3 -0
- package/generator/dead-code-review/node_modules/binary-extensions/index.d.ts +14 -0
- package/generator/dead-code-review/node_modules/binary-extensions/index.js +1 -0
- package/generator/dead-code-review/node_modules/binary-extensions/license +9 -0
- package/generator/dead-code-review/node_modules/binary-extensions/package.json +38 -0
- package/generator/dead-code-review/node_modules/binary-extensions/readme.md +41 -0
- package/generator/dead-code-review/node_modules/brace-expansion/.github/FUNDING.yml +2 -0
- package/generator/dead-code-review/node_modules/brace-expansion/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/brace-expansion/README.md +135 -0
- package/generator/dead-code-review/node_modules/brace-expansion/index.js +203 -0
- package/generator/dead-code-review/node_modules/brace-expansion/package.json +46 -0
- package/generator/dead-code-review/node_modules/braces/CHANGELOG.md +184 -0
- package/generator/dead-code-review/node_modules/braces/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/braces/README.md +593 -0
- package/generator/dead-code-review/node_modules/braces/index.js +170 -0
- package/generator/dead-code-review/node_modules/braces/lib/compile.js +57 -0
- package/generator/dead-code-review/node_modules/braces/lib/constants.js +57 -0
- package/generator/dead-code-review/node_modules/braces/lib/expand.js +113 -0
- package/generator/dead-code-review/node_modules/braces/lib/parse.js +333 -0
- package/generator/dead-code-review/node_modules/braces/lib/stringify.js +32 -0
- package/generator/dead-code-review/node_modules/braces/lib/utils.js +112 -0
- package/generator/dead-code-review/node_modules/braces/package.json +77 -0
- package/generator/dead-code-review/node_modules/chalk/index.d.ts +415 -0
- package/generator/dead-code-review/node_modules/chalk/license +9 -0
- package/generator/dead-code-review/node_modules/chalk/package.json +68 -0
- package/generator/dead-code-review/node_modules/chalk/readme.md +341 -0
- package/generator/dead-code-review/node_modules/chalk/source/index.js +229 -0
- package/generator/dead-code-review/node_modules/chalk/source/templates.js +134 -0
- package/generator/dead-code-review/node_modules/chalk/source/util.js +39 -0
- package/generator/dead-code-review/node_modules/chokidar/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/chokidar/README.md +308 -0
- package/generator/dead-code-review/node_modules/chokidar/index.js +973 -0
- package/generator/dead-code-review/node_modules/chokidar/lib/constants.js +65 -0
- package/generator/dead-code-review/node_modules/chokidar/lib/fsevents-handler.js +524 -0
- package/generator/dead-code-review/node_modules/chokidar/lib/nodefs-handler.js +654 -0
- package/generator/dead-code-review/node_modules/chokidar/package.json +85 -0
- package/generator/dead-code-review/node_modules/chokidar/types/index.d.ts +188 -0
- package/generator/dead-code-review/node_modules/color-convert/CHANGELOG.md +54 -0
- package/generator/dead-code-review/node_modules/color-convert/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/color-convert/README.md +68 -0
- package/generator/dead-code-review/node_modules/color-convert/conversions.js +839 -0
- package/generator/dead-code-review/node_modules/color-convert/index.js +81 -0
- package/generator/dead-code-review/node_modules/color-convert/package.json +48 -0
- package/generator/dead-code-review/node_modules/color-convert/route.js +97 -0
- package/generator/dead-code-review/node_modules/color-name/LICENSE +8 -0
- package/generator/dead-code-review/node_modules/color-name/README.md +11 -0
- package/generator/dead-code-review/node_modules/color-name/index.js +152 -0
- package/generator/dead-code-review/node_modules/color-name/package.json +28 -0
- package/generator/dead-code-review/node_modules/commander/LICENSE +22 -0
- package/generator/dead-code-review/node_modules/commander/Readme.md +1118 -0
- package/generator/dead-code-review/node_modules/commander/esm.mjs +16 -0
- package/generator/dead-code-review/node_modules/commander/index.js +27 -0
- package/generator/dead-code-review/node_modules/commander/lib/argument.js +147 -0
- package/generator/dead-code-review/node_modules/commander/lib/command.js +2160 -0
- package/generator/dead-code-review/node_modules/commander/lib/error.js +45 -0
- package/generator/dead-code-review/node_modules/commander/lib/help.js +406 -0
- package/generator/dead-code-review/node_modules/commander/lib/option.js +326 -0
- package/generator/dead-code-review/node_modules/commander/lib/suggestSimilar.js +100 -0
- package/generator/dead-code-review/node_modules/commander/package-support.json +16 -0
- package/generator/dead-code-review/node_modules/commander/package.json +80 -0
- package/generator/dead-code-review/node_modules/commander/typings/index.d.ts +881 -0
- package/generator/dead-code-review/node_modules/cross-spawn/CHANGELOG.md +130 -0
- package/generator/dead-code-review/node_modules/cross-spawn/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/cross-spawn/README.md +96 -0
- package/generator/dead-code-review/node_modules/cross-spawn/index.js +39 -0
- package/generator/dead-code-review/node_modules/cross-spawn/lib/enoent.js +59 -0
- package/generator/dead-code-review/node_modules/cross-spawn/lib/parse.js +91 -0
- package/generator/dead-code-review/node_modules/cross-spawn/lib/util/escape.js +45 -0
- package/generator/dead-code-review/node_modules/cross-spawn/lib/util/readShebang.js +23 -0
- package/generator/dead-code-review/node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0
- package/generator/dead-code-review/node_modules/cross-spawn/package.json +73 -0
- package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/LICENSE +373 -0
- package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/README.md +64 -0
- package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm.d.ts +22 -0
- package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm.js +419 -0
- 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 +27 -0
- package/generator/dead-code-review/node_modules/elm-test/LICENSE +27 -0
- package/generator/dead-code-review/node_modules/elm-test/README.md +192 -0
- package/generator/dead-code-review/node_modules/elm-test/bin/elm-test +3 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/elm.json +25 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Console/Text.elm +217 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format/Color.elm +30 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format/Monochrome.elm +39 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format.elm +212 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console.elm +207 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Highlightable.elm +48 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/JUnit.elm +161 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Json.elm +158 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Reporter.elm +53 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/TestResults.elm +113 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/JsMessage.elm +38 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node/Vendor/Console.elm +230 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node/Vendor/Diff.elm +326 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node.elm +440 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/Compile.js +110 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/DependencyProvider.js +343 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/ElmCompiler.js +109 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/ElmHome.js +47 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/ElmJson.js +194 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/FindTests.js +276 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/Generate.js +294 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/Install.js +290 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/Parser.js +941 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/Project.js +117 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/Report.js +23 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/RunTests.js +322 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/Solve.js +76 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/Supervisor.js +294 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/SyncGet.js +45 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/SyncGetWorker.js +36 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/elm-test.js +318 -0
- package/generator/dead-code-review/node_modules/elm-test/package.json +69 -0
- package/generator/dead-code-review/node_modules/elm-test/templates/after.js +29 -0
- package/generator/dead-code-review/node_modules/elm-test/templates/before.js +58 -0
- package/generator/dead-code-review/node_modules/elm-test/templates/tests/Example.elm +10 -0
- package/generator/dead-code-review/node_modules/fill-range/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/fill-range/README.md +237 -0
- package/generator/dead-code-review/node_modules/fill-range/index.js +249 -0
- package/generator/dead-code-review/node_modules/fill-range/package.json +69 -0
- package/generator/dead-code-review/node_modules/fs.realpath/LICENSE +43 -0
- package/generator/dead-code-review/node_modules/fs.realpath/README.md +33 -0
- package/generator/dead-code-review/node_modules/fs.realpath/index.js +66 -0
- package/generator/dead-code-review/node_modules/fs.realpath/old.js +303 -0
- package/generator/dead-code-review/node_modules/fs.realpath/package.json +26 -0
- package/generator/dead-code-review/node_modules/fsevents/LICENSE +22 -0
- package/generator/dead-code-review/node_modules/fsevents/README.md +83 -0
- package/generator/dead-code-review/node_modules/fsevents/fsevents.d.ts +46 -0
- package/generator/dead-code-review/node_modules/fsevents/fsevents.js +82 -0
- package/generator/dead-code-review/node_modules/fsevents/fsevents.node +0 -0
- package/generator/dead-code-review/node_modules/fsevents/package.json +62 -0
- package/generator/dead-code-review/node_modules/glob/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/glob/README.md +378 -0
- package/generator/dead-code-review/node_modules/glob/common.js +240 -0
- package/generator/dead-code-review/node_modules/glob/glob.js +790 -0
- package/generator/dead-code-review/node_modules/glob/package.json +55 -0
- package/generator/dead-code-review/node_modules/glob/sync.js +486 -0
- package/generator/dead-code-review/node_modules/glob-parent/CHANGELOG.md +110 -0
- package/generator/dead-code-review/node_modules/glob-parent/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/glob-parent/README.md +137 -0
- package/generator/dead-code-review/node_modules/glob-parent/index.js +42 -0
- package/generator/dead-code-review/node_modules/glob-parent/package.json +48 -0
- package/generator/dead-code-review/node_modules/graceful-fs/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/graceful-fs/README.md +143 -0
- package/generator/dead-code-review/node_modules/graceful-fs/clone.js +23 -0
- package/generator/dead-code-review/node_modules/graceful-fs/graceful-fs.js +448 -0
- package/generator/dead-code-review/node_modules/graceful-fs/legacy-streams.js +118 -0
- package/generator/dead-code-review/node_modules/graceful-fs/package.json +50 -0
- package/generator/dead-code-review/node_modules/graceful-fs/polyfills.js +355 -0
- package/generator/dead-code-review/node_modules/has-flag/index.d.ts +39 -0
- package/generator/dead-code-review/node_modules/has-flag/index.js +8 -0
- package/generator/dead-code-review/node_modules/has-flag/license +9 -0
- package/generator/dead-code-review/node_modules/has-flag/package.json +46 -0
- package/generator/dead-code-review/node_modules/has-flag/readme.md +89 -0
- package/generator/dead-code-review/node_modules/inflight/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/inflight/README.md +37 -0
- package/generator/dead-code-review/node_modules/inflight/inflight.js +54 -0
- package/generator/dead-code-review/node_modules/inflight/package.json +29 -0
- package/generator/dead-code-review/node_modules/inherits/LICENSE +16 -0
- package/generator/dead-code-review/node_modules/inherits/README.md +42 -0
- package/generator/dead-code-review/node_modules/inherits/inherits.js +9 -0
- package/generator/dead-code-review/node_modules/inherits/inherits_browser.js +27 -0
- package/generator/dead-code-review/node_modules/inherits/package.json +29 -0
- package/generator/dead-code-review/node_modules/is-binary-path/index.d.ts +17 -0
- package/generator/dead-code-review/node_modules/is-binary-path/index.js +7 -0
- package/generator/dead-code-review/node_modules/is-binary-path/license +9 -0
- package/generator/dead-code-review/node_modules/is-binary-path/package.json +40 -0
- package/generator/dead-code-review/node_modules/is-binary-path/readme.md +34 -0
- package/generator/dead-code-review/node_modules/is-extglob/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/is-extglob/README.md +107 -0
- package/generator/dead-code-review/node_modules/is-extglob/index.js +20 -0
- package/generator/dead-code-review/node_modules/is-extglob/package.json +69 -0
- package/generator/dead-code-review/node_modules/is-glob/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/is-glob/README.md +206 -0
- package/generator/dead-code-review/node_modules/is-glob/index.js +150 -0
- package/generator/dead-code-review/node_modules/is-glob/package.json +81 -0
- package/generator/dead-code-review/node_modules/is-number/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/is-number/README.md +187 -0
- package/generator/dead-code-review/node_modules/is-number/index.js +18 -0
- package/generator/dead-code-review/node_modules/is-number/package.json +82 -0
- package/generator/dead-code-review/node_modules/isexe/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/isexe/README.md +51 -0
- package/generator/dead-code-review/node_modules/isexe/index.js +57 -0
- package/generator/dead-code-review/node_modules/isexe/mode.js +41 -0
- package/generator/dead-code-review/node_modules/isexe/package.json +31 -0
- package/generator/dead-code-review/node_modules/isexe/test/basic.js +221 -0
- package/generator/dead-code-review/node_modules/isexe/windows.js +42 -0
- package/generator/dead-code-review/node_modules/minimatch/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/minimatch/README.md +259 -0
- package/generator/dead-code-review/node_modules/minimatch/lib/path.js +4 -0
- package/generator/dead-code-review/node_modules/minimatch/minimatch.js +906 -0
- package/generator/dead-code-review/node_modules/minimatch/package.json +32 -0
- package/generator/dead-code-review/node_modules/normalize-path/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/normalize-path/README.md +127 -0
- package/generator/dead-code-review/node_modules/normalize-path/index.js +35 -0
- package/generator/dead-code-review/node_modules/normalize-path/package.json +77 -0
- package/generator/dead-code-review/node_modules/once/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/once/README.md +79 -0
- package/generator/dead-code-review/node_modules/once/once.js +42 -0
- package/generator/dead-code-review/node_modules/once/package.json +33 -0
- package/generator/dead-code-review/node_modules/path-key/index.d.ts +40 -0
- package/generator/dead-code-review/node_modules/path-key/index.js +16 -0
- package/generator/dead-code-review/node_modules/path-key/license +9 -0
- package/generator/dead-code-review/node_modules/path-key/package.json +39 -0
- package/generator/dead-code-review/node_modules/path-key/readme.md +61 -0
- package/generator/dead-code-review/node_modules/picomatch/CHANGELOG.md +136 -0
- package/generator/dead-code-review/node_modules/picomatch/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/picomatch/README.md +708 -0
- package/generator/dead-code-review/node_modules/picomatch/index.js +3 -0
- package/generator/dead-code-review/node_modules/picomatch/lib/constants.js +179 -0
- package/generator/dead-code-review/node_modules/picomatch/lib/parse.js +1091 -0
- package/generator/dead-code-review/node_modules/picomatch/lib/picomatch.js +342 -0
- package/generator/dead-code-review/node_modules/picomatch/lib/scan.js +391 -0
- package/generator/dead-code-review/node_modules/picomatch/lib/utils.js +64 -0
- package/generator/dead-code-review/node_modules/picomatch/package.json +81 -0
- package/generator/dead-code-review/node_modules/readdirp/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/readdirp/README.md +122 -0
- package/generator/dead-code-review/node_modules/readdirp/index.d.ts +43 -0
- package/generator/dead-code-review/node_modules/readdirp/index.js +287 -0
- package/generator/dead-code-review/node_modules/readdirp/package.json +122 -0
- package/generator/dead-code-review/node_modules/shebang-command/index.js +19 -0
- package/generator/dead-code-review/node_modules/shebang-command/license +9 -0
- package/generator/dead-code-review/node_modules/shebang-command/package.json +34 -0
- package/generator/dead-code-review/node_modules/shebang-command/readme.md +34 -0
- package/generator/dead-code-review/node_modules/shebang-regex/index.d.ts +22 -0
- package/generator/dead-code-review/node_modules/shebang-regex/index.js +2 -0
- package/generator/dead-code-review/node_modules/shebang-regex/license +9 -0
- package/generator/dead-code-review/node_modules/shebang-regex/package.json +35 -0
- package/generator/dead-code-review/node_modules/shebang-regex/readme.md +33 -0
- package/generator/dead-code-review/node_modules/split/.travis.yml +3 -0
- package/generator/dead-code-review/node_modules/split/LICENCE +22 -0
- package/generator/dead-code-review/node_modules/split/examples/pretty.js +26 -0
- package/generator/dead-code-review/node_modules/split/index.js +63 -0
- package/generator/dead-code-review/node_modules/split/package.json +30 -0
- package/generator/dead-code-review/node_modules/split/readme.markdown +72 -0
- package/generator/dead-code-review/node_modules/split/test/options.asynct.js +46 -0
- package/generator/dead-code-review/node_modules/split/test/partitioned_unicode.js +34 -0
- package/generator/dead-code-review/node_modules/split/test/split.asynct.js +137 -0
- package/generator/dead-code-review/node_modules/split/test/try_catch.asynct.js +51 -0
- package/generator/dead-code-review/node_modules/supports-color/browser.js +5 -0
- package/generator/dead-code-review/node_modules/supports-color/index.js +135 -0
- package/generator/dead-code-review/node_modules/supports-color/license +9 -0
- package/generator/dead-code-review/node_modules/supports-color/package.json +53 -0
- package/generator/dead-code-review/node_modules/supports-color/readme.md +76 -0
- package/generator/dead-code-review/node_modules/through/.travis.yml +5 -0
- package/generator/dead-code-review/node_modules/through/LICENSE.APACHE2 +15 -0
- package/generator/dead-code-review/node_modules/through/LICENSE.MIT +24 -0
- package/generator/dead-code-review/node_modules/through/index.js +108 -0
- package/generator/dead-code-review/node_modules/through/package.json +36 -0
- package/generator/dead-code-review/node_modules/through/readme.markdown +64 -0
- package/generator/dead-code-review/node_modules/through/test/async.js +28 -0
- package/generator/dead-code-review/node_modules/through/test/auto-destroy.js +30 -0
- package/generator/dead-code-review/node_modules/through/test/buffering.js +71 -0
- package/generator/dead-code-review/node_modules/through/test/end.js +45 -0
- package/generator/dead-code-review/node_modules/through/test/index.js +133 -0
- package/generator/dead-code-review/node_modules/to-regex-range/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/to-regex-range/README.md +305 -0
- package/generator/dead-code-review/node_modules/to-regex-range/index.js +288 -0
- package/generator/dead-code-review/node_modules/to-regex-range/package.json +88 -0
- package/generator/dead-code-review/node_modules/which/CHANGELOG.md +166 -0
- package/generator/dead-code-review/node_modules/which/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/which/README.md +54 -0
- package/generator/dead-code-review/node_modules/which/bin/node-which +52 -0
- package/generator/dead-code-review/node_modules/which/package.json +43 -0
- package/generator/dead-code-review/node_modules/which/which.js +125 -0
- package/generator/dead-code-review/node_modules/wrappy/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/wrappy/README.md +36 -0
- package/generator/dead-code-review/node_modules/wrappy/package.json +29 -0
- package/generator/dead-code-review/node_modules/wrappy/wrappy.js +33 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/.nycrc +6 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/.vscode/launch.json +23 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/CHANGELOG.md +593 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/README.md +103 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/Derivation.js +10 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/DocumentPosition.js +12 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/NodeType.js +25 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/OperationType.js +11 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/Utility.js +88 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/WriterState.js +10 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLAttribute.js +130 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLCData.js +41 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLCharacterData.js +86 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLComment.js +41 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js +80 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js +20 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMImplementation.js +55 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMStringList.js +44 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDAttList.js +66 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDElement.js +44 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDEntity.js +115 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDNotation.js +66 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDeclaration.js +51 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocType.js +235 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocument.js +282 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocumentCB.js +650 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocumentFragment.js +21 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDummy.js +39 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLElement.js +334 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js +77 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNode.js +999 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNodeFilter.js +51 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNodeList.js +45 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js +56 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLRaw.js +40 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStreamWriter.js +209 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStringWriter.js +40 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStringifier.js +291 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLText.js +82 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLTypeInfo.js +23 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLUserDataHandler.js +27 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLWriterBase.js +485 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/index.js +120 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/package.json +51 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/perf/basic/escaping.coffee +244 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/perf/basic/object.coffee +21 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/perf/index.coffee +161 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/perf/perf.list +11 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/typings/index.d.ts +1771 -0
- package/generator/dead-code-review/src/Pages/Review/DeadCodeEliminateData.elm +1 -0
- 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 +25 -0
- 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 +41 -0
- 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/i.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 +1327 -122
- package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +14575 -12632
- 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/review/elm.json +8 -8
- package/generator/src/build.js +7 -10
- package/generator/src/cli.js +124 -42
- package/generator/src/codegen.js +11 -10
- package/generator/src/compatibility-key.js +1 -1
- package/generator/src/elm-codegen.js +3 -0
- package/generator/src/render-worker.js +1 -1
- package/generator/src/render.js +222 -37
- package/generator/src/request-cache.js +1 -0
- package/generator/src/rewrite-elm-json.js +3 -3
- package/package.json +12 -12
- package/src/ApiRoute.elm +147 -9
- package/src/DataSource/Env.elm +27 -3
- package/src/DataSource.elm +11 -22
- package/src/Form.elm +32 -32
- package/src/Head.elm +112 -8
- package/src/MultiDict.elm +49 -0
- package/src/Pages/Generate.elm +4 -1
- package/src/Pages/GeneratorProgramConfig.elm +15 -0
- package/src/Pages/Internal/Platform/CompatibilityKey.elm +1 -1
- package/src/Pages/Internal/Platform/GeneratorApplication.elm +455 -0
- package/src/Pages/Internal/Platform/StaticResponses.elm +35 -5
- package/src/Pages/Internal/Script.elm +16 -0
- package/src/Pages/Manifest.elm +24 -0
- package/src/Pages/Script.elm +94 -0
- package/src/Pages/StaticHttpRequest.elm +9 -7
- package/src/PairingHeap.elm +137 -0
- package/src/Parser/Extra/String.elm +33 -0
- package/src/Parser/Extra.elm +69 -0
- package/src/ProgramTest/ComplexQuery.elm +360 -0
- package/src/ProgramTest/EffectSimulation.elm +122 -0
- package/src/ProgramTest/Failure.elm +367 -0
- package/src/ProgramTest/HtmlHighlighter.elm +116 -0
- package/src/ProgramTest/HtmlParserHacks.elm +58 -0
- package/src/ProgramTest/HtmlRenderer.elm +73 -0
- package/src/ProgramTest/Program.elm +30 -0
- package/src/ProgramTest/StringLines.elm +26 -0
- package/src/ProgramTest/TestHtmlHacks.elm +132 -0
- package/src/ProgramTest/TestHtmlParser.elm +201 -0
- package/src/ProgramTest.elm +2339 -0
- package/src/Query/Extra.elm +55 -0
- package/src/Result/Extra.elm +21 -0
- package/src/Server/Request.elm +2 -2
- package/src/SimulatedEffect/Cmd.elm +69 -0
- package/src/SimulatedEffect/Http.elm +330 -0
- package/src/SimulatedEffect/Navigation.elm +69 -0
- package/src/SimulatedEffect/Ports.elm +62 -0
- package/src/SimulatedEffect/Process.elm +24 -0
- package/src/SimulatedEffect/Sub.elm +48 -0
- package/src/SimulatedEffect/Task.elm +252 -0
- package/src/SimulatedEffect/Time.elm +25 -0
- package/src/SimulatedEffect.elm +42 -0
- package/src/String/Extra.elm +6 -0
- package/src/Test/Http.elm +145 -0
- package/src/TestResult.elm +35 -0
- package/src/TestState.elm +305 -0
- package/src/Url/Extra.elm +100 -0
- package/src/Vendored/Diff.elm +321 -0
- package/src/Vendored/Failure.elm +217 -0
- package/src/Vendored/FormatMonochrome.elm +44 -0
- package/src/Vendored/Highlightable.elm +53 -0
package/generator/src/render.js
CHANGED
|
@@ -19,18 +19,37 @@ let foundErrors;
|
|
|
19
19
|
let pendingDataSourceResponses;
|
|
20
20
|
let pendingDataSourceCount;
|
|
21
21
|
|
|
22
|
-
module.exports =
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
22
|
+
module.exports = { render, runGenerator };
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* @param {string} basePath
|
|
27
|
+
* @param {Object} elmModule
|
|
28
|
+
* @param {string} path
|
|
29
|
+
* @param {{ method: string; hostname: string; query: Record<string, string | undefined>; headers: Record<string, string>; host: string; pathname: string; port: number | null; protocol: string; rawUrl: string; }} request
|
|
30
|
+
* @param {(pattern: string) => void} addDataSourceWatcher
|
|
31
|
+
* @param {boolean} hasFsAccess
|
|
32
|
+
* @returns
|
|
33
|
+
*/
|
|
34
|
+
async function render(
|
|
35
|
+
portsFile,
|
|
36
|
+
basePath,
|
|
37
|
+
elmModule,
|
|
38
|
+
mode,
|
|
39
|
+
path,
|
|
40
|
+
request,
|
|
41
|
+
addDataSourceWatcher,
|
|
42
|
+
hasFsAccess
|
|
43
|
+
) {
|
|
44
|
+
const { fs, resetInMemoryFs } = require("./request-cache-fs.js")(hasFsAccess);
|
|
45
|
+
resetInMemoryFs();
|
|
46
|
+
foundErrors = false;
|
|
47
|
+
pendingDataSourceResponses = [];
|
|
48
|
+
pendingDataSourceCount = 0;
|
|
49
|
+
// since init/update are never called in pre-renders, and DataSource.Http is called using pure NodeJS HTTP fetching
|
|
50
|
+
// we can provide a fake HTTP instead of xhr2 (which is otherwise needed for Elm HTTP requests from Node)
|
|
51
|
+
XMLHttpRequest = {};
|
|
52
|
+
const result = await runElmApp(
|
|
34
53
|
portsFile,
|
|
35
54
|
basePath,
|
|
36
55
|
elmModule,
|
|
@@ -38,31 +57,167 @@ module.exports =
|
|
|
38
57
|
path,
|
|
39
58
|
request,
|
|
40
59
|
addDataSourceWatcher,
|
|
60
|
+
fs,
|
|
41
61
|
hasFsAccess
|
|
42
|
-
)
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
);
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @param {Object} elmModule
|
|
68
|
+
* @returns
|
|
69
|
+
* @param {string[]} cliOptions
|
|
70
|
+
* @param {any} portsFile
|
|
71
|
+
*/
|
|
72
|
+
async function runGenerator(cliOptions, portsFile, elmModule) {
|
|
73
|
+
global.isRunningGenerator = true;
|
|
74
|
+
const { fs, resetInMemoryFs } = require("./request-cache-fs.js")(true);
|
|
75
|
+
resetInMemoryFs();
|
|
76
|
+
foundErrors = false;
|
|
77
|
+
pendingDataSourceResponses = [];
|
|
78
|
+
pendingDataSourceCount = 0;
|
|
79
|
+
// since init/update are never called in pre-renders, and DataSource.Http is called using pure NodeJS HTTP fetching
|
|
80
|
+
// we can provide a fake HTTP instead of xhr2 (which is otherwise needed for Elm HTTP requests from Node)
|
|
81
|
+
XMLHttpRequest = {};
|
|
82
|
+
const result = await runGeneratorAppHelp(
|
|
83
|
+
cliOptions,
|
|
84
|
+
portsFile,
|
|
85
|
+
"",
|
|
86
|
+
elmModule,
|
|
87
|
+
"production",
|
|
88
|
+
"",
|
|
89
|
+
fs,
|
|
90
|
+
true
|
|
91
|
+
);
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* @param {string} basePath
|
|
96
|
+
* @param {Object} elmModule
|
|
97
|
+
* @param {string} pagePath
|
|
98
|
+
* @param {string} mode
|
|
99
|
+
* @returns {Promise<({is404: boolean;} & ({kind: 'json';contentJson: string;} | {kind: 'html';htmlString: string;} | {kind: 'api-response';body: string;}))>}
|
|
100
|
+
* @param {string[]} cliOptions
|
|
101
|
+
* @param {any} portsFile
|
|
102
|
+
* @param {typeof import("fs") | import("memfs").IFs} fs
|
|
103
|
+
* @param {boolean} hasFsAccess
|
|
104
|
+
*/
|
|
105
|
+
function runGeneratorAppHelp(
|
|
106
|
+
cliOptions,
|
|
107
|
+
portsFile,
|
|
108
|
+
basePath,
|
|
109
|
+
elmModule,
|
|
110
|
+
mode,
|
|
111
|
+
pagePath,
|
|
112
|
+
fs,
|
|
113
|
+
hasFsAccess
|
|
114
|
+
) {
|
|
115
|
+
const isDevServer = mode !== "build";
|
|
116
|
+
let patternsToWatch = new Set();
|
|
117
|
+
let app = null;
|
|
118
|
+
let killApp;
|
|
119
|
+
return new Promise((resolve, reject) => {
|
|
120
|
+
const isBytes = pagePath.match(/content\.dat\/?$/);
|
|
121
|
+
|
|
122
|
+
app = elmModule.Elm.Main.init({
|
|
123
|
+
flags: {
|
|
124
|
+
compatibilityKey,
|
|
125
|
+
argv: ["", "", ...cliOptions],
|
|
126
|
+
versionMessage: "1.2.3",
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
killApp = () => {
|
|
131
|
+
app.ports.toJsPort.unsubscribe(portHandler);
|
|
132
|
+
app.ports.sendPageData.unsubscribe(portHandler);
|
|
133
|
+
app.die();
|
|
134
|
+
app = null;
|
|
135
|
+
// delete require.cache[require.resolve(compiledElmPath)];
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
async function portHandler(/** @type { FromElm } */ newThing) {
|
|
139
|
+
let fromElm;
|
|
140
|
+
let contentDatPayload;
|
|
141
|
+
|
|
142
|
+
fromElm = newThing;
|
|
143
|
+
if (fromElm.command === "log") {
|
|
144
|
+
console.log(fromElm.value);
|
|
145
|
+
} else if (fromElm.tag === "ApiResponse") {
|
|
146
|
+
const args = fromElm.args[0];
|
|
147
|
+
if (mode === "build") {
|
|
148
|
+
global.staticHttpCache = args.staticHttpCache;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
resolve({
|
|
152
|
+
kind: "api-response",
|
|
153
|
+
is404: args.is404,
|
|
154
|
+
statusCode: args.statusCode,
|
|
155
|
+
body: args.body,
|
|
156
|
+
});
|
|
157
|
+
} else if (fromElm.tag === "PageProgress") {
|
|
158
|
+
const args = fromElm.args[0];
|
|
159
|
+
if (mode === "build") {
|
|
160
|
+
global.staticHttpCache = args.staticHttpCache;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
if (isBytes) {
|
|
164
|
+
resolve({
|
|
165
|
+
kind: "bytes",
|
|
166
|
+
is404: false,
|
|
167
|
+
contentJson: JSON.stringify({
|
|
168
|
+
staticData: args.contentJson,
|
|
169
|
+
is404: false,
|
|
170
|
+
}),
|
|
171
|
+
statusCode: args.statusCode,
|
|
172
|
+
headers: args.headers,
|
|
173
|
+
contentDatPayload,
|
|
174
|
+
});
|
|
175
|
+
} else {
|
|
176
|
+
resolve(
|
|
177
|
+
outputString(basePath, fromElm, isDevServer, contentDatPayload)
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
} else if (fromElm.tag === "DoHttp") {
|
|
181
|
+
const requestToPerform = fromElm.args[0];
|
|
182
|
+
if (
|
|
183
|
+
requestToPerform.url !== "elm-pages-internal://port" &&
|
|
184
|
+
requestToPerform.url.startsWith("elm-pages-internal://")
|
|
185
|
+
) {
|
|
186
|
+
runInternalJob(
|
|
187
|
+
app,
|
|
188
|
+
mode,
|
|
189
|
+
requestToPerform,
|
|
190
|
+
fs,
|
|
191
|
+
hasFsAccess,
|
|
192
|
+
patternsToWatch
|
|
193
|
+
);
|
|
194
|
+
} else {
|
|
195
|
+
runHttpJob(
|
|
196
|
+
portsFile,
|
|
197
|
+
app,
|
|
198
|
+
mode,
|
|
199
|
+
requestToPerform,
|
|
200
|
+
fs,
|
|
201
|
+
hasFsAccess,
|
|
202
|
+
fromElm.args[1]
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
} else if (fromElm.tag === "Errors") {
|
|
206
|
+
foundErrors = true;
|
|
207
|
+
reject(fromElm.args[0].errorsJson);
|
|
208
|
+
} else {
|
|
209
|
+
console.log(fromElm);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
app.ports.toJsPort.subscribe(portHandler);
|
|
213
|
+
app.ports.sendPageData.subscribe(portHandler);
|
|
214
|
+
}).finally(() => {
|
|
215
|
+
try {
|
|
216
|
+
killApp();
|
|
217
|
+
killApp = null;
|
|
218
|
+
} catch (error) {}
|
|
219
|
+
});
|
|
220
|
+
}
|
|
66
221
|
|
|
67
222
|
/**
|
|
68
223
|
* @param {string} basePath
|
|
@@ -302,7 +457,9 @@ async function runInternalJob(
|
|
|
302
457
|
try {
|
|
303
458
|
pendingDataSourceCount += 1;
|
|
304
459
|
|
|
305
|
-
if (requestToPerform.url === "elm-pages-internal://
|
|
460
|
+
if (requestToPerform.url === "elm-pages-internal://log") {
|
|
461
|
+
pendingDataSourceResponses.push(await runLogJob(requestToPerform));
|
|
462
|
+
} else if (requestToPerform.url === "elm-pages-internal://read-file") {
|
|
306
463
|
pendingDataSourceResponses.push(
|
|
307
464
|
await readFileJobNew(requestToPerform, patternsToWatch)
|
|
308
465
|
);
|
|
@@ -322,6 +479,8 @@ async function runInternalJob(
|
|
|
322
479
|
pendingDataSourceResponses.push(
|
|
323
480
|
await runDecryptJob(requestToPerform, patternsToWatch)
|
|
324
481
|
);
|
|
482
|
+
} else if (requestToPerform.url === "elm-pages-internal://write-file") {
|
|
483
|
+
pendingDataSourceResponses.push(await runWriteFileJob(requestToPerform));
|
|
325
484
|
} else {
|
|
326
485
|
throw `Unexpected internal DataSource request format: ${kleur.yellow(
|
|
327
486
|
JSON.stringify(2, null, requestToPerform)
|
|
@@ -362,6 +521,23 @@ async function readFileJobNew(req, patternsToWatch) {
|
|
|
362
521
|
};
|
|
363
522
|
}
|
|
364
523
|
}
|
|
524
|
+
async function runWriteFileJob(req) {
|
|
525
|
+
const data = req.body.args[0];
|
|
526
|
+
try {
|
|
527
|
+
const fullPathToWrite = path.join(process.cwd(), data.path);
|
|
528
|
+
await fsPromises.mkdir(path.dirname(fullPathToWrite), { recursive: true });
|
|
529
|
+
await fsPromises.writeFile(fullPathToWrite, data.body);
|
|
530
|
+
return jsonResponse(req, null);
|
|
531
|
+
} catch (error) {
|
|
532
|
+
console.trace(error);
|
|
533
|
+
throw {
|
|
534
|
+
title: "DataSource Error",
|
|
535
|
+
message: `DataSource.Generator.writeFile failed for file path: ${kleur.yellow(
|
|
536
|
+
data.path
|
|
537
|
+
)}\n${kleur.red(error.toString())}`,
|
|
538
|
+
};
|
|
539
|
+
}
|
|
540
|
+
}
|
|
365
541
|
|
|
366
542
|
async function runGlobNew(req, patternsToWatch) {
|
|
367
543
|
try {
|
|
@@ -384,6 +560,15 @@ async function runGlobNew(req, patternsToWatch) {
|
|
|
384
560
|
}
|
|
385
561
|
}
|
|
386
562
|
|
|
563
|
+
async function runLogJob(req) {
|
|
564
|
+
try {
|
|
565
|
+
console.log(req.body.args[0].message);
|
|
566
|
+
return jsonResponse(req, null);
|
|
567
|
+
} catch (e) {
|
|
568
|
+
console.log(`Error performing env '${JSON.stringify(req.body)}'`);
|
|
569
|
+
throw e;
|
|
570
|
+
}
|
|
571
|
+
}
|
|
387
572
|
async function runEnvJob(req, patternsToWatch) {
|
|
388
573
|
try {
|
|
389
574
|
const expectedEnv = req.body.args[0];
|
|
@@ -24,6 +24,7 @@ function fullPath(portsHash, request, hasFsAccess) {
|
|
|
24
24
|
if (hasFsAccess) {
|
|
25
25
|
return path.join(
|
|
26
26
|
process.cwd(),
|
|
27
|
+
// TODO use parameter or something other than global for this `global.isRunningGenerator` condition
|
|
27
28
|
".elm-pages",
|
|
28
29
|
"http-response-cache",
|
|
29
30
|
requestToString(requestWithPortHash)
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
const fs = require("fs");
|
|
2
2
|
|
|
3
|
-
module.exports = async function () {
|
|
3
|
+
module.exports = async function (sourceElmJsonPath, targetElmJsonPath) {
|
|
4
4
|
var elmJson = JSON.parse(
|
|
5
|
-
(await fs.promises.readFile(
|
|
5
|
+
(await fs.promises.readFile(sourceElmJsonPath)).toString()
|
|
6
6
|
);
|
|
7
7
|
|
|
8
8
|
// write new elm.json
|
|
9
9
|
|
|
10
10
|
await writeFileIfChanged(
|
|
11
|
-
|
|
11
|
+
targetElmJsonPath,
|
|
12
12
|
JSON.stringify(rewriteElmJson(elmJson))
|
|
13
13
|
);
|
|
14
14
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "elm-pages",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.13",
|
|
4
4
|
"homepage": "https://elm-pages.com",
|
|
5
5
|
"moduleResolution": "node",
|
|
6
6
|
"description": "Type-safe static sites, written in pure elm with your own custom elm-markup syntax.",
|
|
@@ -26,14 +26,14 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"busboy": "^1.0.0",
|
|
28
28
|
"chokidar": "^3.5.3",
|
|
29
|
-
"commander": "
|
|
29
|
+
"commander": "9.4.1",
|
|
30
30
|
"connect": "^3.7.0",
|
|
31
31
|
"cookie-signature": "^1.1.0",
|
|
32
32
|
"cross-spawn": "7.0.3",
|
|
33
33
|
"devcert": "^1.2.2",
|
|
34
34
|
"elm-doc-preview": "^5.0.5",
|
|
35
35
|
"elm-hot": "^1.1.6",
|
|
36
|
-
"esbuild": "^0.
|
|
36
|
+
"esbuild": "^0.16.1",
|
|
37
37
|
"fs-extra": "^10.1.0",
|
|
38
38
|
"globby": "11.0.4",
|
|
39
39
|
"gray-matter": "^4.0.3",
|
|
@@ -44,26 +44,26 @@
|
|
|
44
44
|
"node-fetch": "^2.6.7",
|
|
45
45
|
"object-hash": "^2.2.0",
|
|
46
46
|
"serve-static": "^1.15.0",
|
|
47
|
-
"terser": "^5.
|
|
48
|
-
"vite": "^3.
|
|
47
|
+
"terser": "^5.16.1",
|
|
48
|
+
"vite": "^3.2.5",
|
|
49
49
|
"which": "^2.0.2"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@types/cross-spawn": "^6.0.2",
|
|
53
53
|
"@types/fs-extra": "^9.0.13",
|
|
54
54
|
"@types/micromatch": "^4.0.2",
|
|
55
|
-
"@types/node": "
|
|
55
|
+
"@types/node": "^18.11.9",
|
|
56
56
|
"@types/serve-static": "^1.15.0",
|
|
57
|
-
"cypress": "^
|
|
57
|
+
"cypress": "^11.1.0",
|
|
58
58
|
"elm-codegen": "^0.2.0",
|
|
59
|
-
"elm-optimize-level-2": "^0.
|
|
60
|
-
"elm-review": "^2.
|
|
61
|
-
"elm-test": "^0.19.1-
|
|
62
|
-
"elm-tooling": "^1.
|
|
59
|
+
"elm-optimize-level-2": "^0.3.5",
|
|
60
|
+
"elm-review": "^2.8.2",
|
|
61
|
+
"elm-test": "^0.19.1-revision10",
|
|
62
|
+
"elm-tooling": "^1.10.0",
|
|
63
63
|
"elm-verify-examples": "^5.2.0",
|
|
64
64
|
"elmi-to-json": "^1.2.0",
|
|
65
65
|
"mocha": "^10.0.0",
|
|
66
|
-
"typescript": "^4.
|
|
66
|
+
"typescript": "^4.9.3"
|
|
67
67
|
},
|
|
68
68
|
"files": [
|
|
69
69
|
"generator/src/",
|
package/src/ApiRoute.elm
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
module ApiRoute exposing
|
|
2
|
-
(
|
|
2
|
+
( single, preRender
|
|
3
|
+
, serverRender
|
|
4
|
+
, preRenderWithFallback
|
|
5
|
+
, ApiRoute, ApiRouteBuilder, Response
|
|
3
6
|
, capture, literal, slash, succeed
|
|
4
|
-
, single, preRender
|
|
5
|
-
, preRenderWithFallback, serverRender
|
|
6
7
|
, withGlobalHeadTags
|
|
7
8
|
, toJson, getBuildTimeRoutes, getGlobalHeadTagsDataSource
|
|
8
9
|
)
|
|
@@ -11,19 +12,153 @@ module ApiRoute exposing
|
|
|
11
12
|
to a DataSource so you can pull in HTTP data, etc. Because ApiRoutes don't hydrate into Elm apps (like pages in elm-pages do), you can pull in as much data as you want in
|
|
12
13
|
the DataSource for your ApiRoutes, and it won't effect the payload size. Instead, the size of an ApiRoute is just the content you output for that route.
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
@docs capture, literal, slash, succeed
|
|
15
|
+
Similar to your elm-pages Route Modules, ApiRoute's can be either server-rendered or pre-rendered. Let's compare the differences between pre-rendered and server-rendered ApiRoutes, and the different
|
|
16
|
+
use cases they support.
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
## Pre-Rendering
|
|
20
20
|
|
|
21
|
+
A pre-rendered ApiRoute is just a generated file. For example:
|
|
22
|
+
|
|
23
|
+
- [An RSS feed](https://github.com/dillonkearns/elm-pages/blob/131f7b750cdefb2ba7a34a06be06dfbfafc79a86/examples/docs/app/Api.elm#L77-L84) ([Output file](https://elm-pages.com/blog/feed.xml))
|
|
24
|
+
- [A calendar feed in the ical format](https://github.com/dillonkearns/incrementalelm.com/blob/d4934d899d06232dc66dcf9f4b5eccc74bbc60d3/src/Api.elm#L51-L60) ([Output file](https://incrementalelm.com/live.ics))
|
|
25
|
+
- A redirect file for a hosting provider like Netlify
|
|
26
|
+
|
|
27
|
+
You could even generate a JavaScript file, an Elm file, or any file with a String body! It's really just a way to generate files, which are typically used to serve files to a user or Browser, but you execute them, copy them, etc. The only limit is your imagination!
|
|
28
|
+
The beauty is that you have a way to 1) pull in type-safe data using DataSource's, and 2) write those files, and all in pure Elm!
|
|
29
|
+
|
|
21
30
|
@docs single, preRender
|
|
22
31
|
|
|
23
32
|
|
|
24
33
|
## Server Rendering
|
|
25
34
|
|
|
26
|
-
|
|
35
|
+
You could use server-rendered ApiRoutes to do a lot of similar things, the main difference being that it will be served up through a URL and generated on-demand when that URL is requested.
|
|
36
|
+
So for example, for an RSS feed or ical calendar feed like in the pre-rendered examples, you could build the same routes, but you would be pulling in the list of posts or calendar events on-demand rather
|
|
37
|
+
than upfront at build-time. That means you can hit your database and serve up always-up-to-date data.
|
|
38
|
+
|
|
39
|
+
Not only that, but your server-rendered ApiRoutes have access to the incoming HTTP request payload just like your server-rendered Route Modules do. Just as with server-rendered Route Modules,
|
|
40
|
+
a server-rendered ApiRoute accesses the incoming HTTP request through a [Server.Request.Parser](Server-Request). Consider the use cases that this opens up:
|
|
41
|
+
|
|
42
|
+
- Serve up protected assets. For example, gated content, like a paid subscriber feed for a podcast that checks authentication information in a query parameter to authenticate that a user has an active paid subscription before serving up the Pro RSS feed.
|
|
43
|
+
- Serve up user-specific content, either through a cookie or other means of authentication
|
|
44
|
+
- Look at the [accepted content-type in the request headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept) and use that to choose a response format, like XML or JSON ([full example](https://github.com/dillonkearns/elm-pages/blob/131f7b750cdefb2ba7a34a06be06dfbfafc79a86/examples/end-to-end/app/Api.elm#L76-L107)).
|
|
45
|
+
- Look at the [accepted language in the request headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language) and use that to choose a language for the response data.
|
|
46
|
+
|
|
47
|
+
@docs serverRender
|
|
48
|
+
|
|
49
|
+
You can also do a hybrid approach using `preRenderWithFallback`. This allows you to pre-render a set of routes at build-time, but build additional routes that weren't rendered at build-time on the fly on the server.
|
|
50
|
+
Conceptually, this is just a delayed version of a pre-rendered route. Because of that, you _do not_ have access to the incoming HTTP request (no `Server.Request.Parser` like in server-rendered ApiRoute's).
|
|
51
|
+
The strategy used to build these routes will differ depending on your hosting provider and the elm-pages adapter you have setup, but generally ApiRoute's that use `preRenderWithFallback` will be cached on the server
|
|
52
|
+
so within a certain time interval (or in the case of [Netlify's DPR](https://www.netlify.com/blog/2021/04/14/distributed-persistent-rendering-a-new-jamstack-approach-for-faster-builds/), until a new build is done)
|
|
53
|
+
that asset will be served up if that URL was already served up by the server.
|
|
54
|
+
|
|
55
|
+
@docs preRenderWithFallback
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## Defining ApiRoute's
|
|
59
|
+
|
|
60
|
+
You define your ApiRoute's in `app/Api.elm`. Here's a simple example:
|
|
61
|
+
|
|
62
|
+
module Api exposing (routes)
|
|
63
|
+
|
|
64
|
+
import ApiRoute
|
|
65
|
+
import DataSource exposing (DataSource)
|
|
66
|
+
import Server.Request
|
|
67
|
+
|
|
68
|
+
routes :
|
|
69
|
+
DataSource (List Route)
|
|
70
|
+
-> (Maybe { indent : Int, newLines : Bool } -> Html Never -> String)
|
|
71
|
+
-> List (ApiRoute.ApiRoute ApiRoute.Response)
|
|
72
|
+
routes getStaticRoutes htmlToString =
|
|
73
|
+
[ preRenderedExample
|
|
74
|
+
, requestPrinterExample
|
|
75
|
+
]
|
|
76
|
+
|
|
77
|
+
{-| Generates the following files when you
|
|
78
|
+
run `elm-pages build`:
|
|
79
|
+
|
|
80
|
+
- `dist/users/1.json`
|
|
81
|
+
- `dist/users/2.json`
|
|
82
|
+
- `dist/users/3.json`
|
|
83
|
+
|
|
84
|
+
When you host it, these static assets will
|
|
85
|
+
be served at `/users/1.json`, etc.
|
|
86
|
+
|
|
87
|
+
-}
|
|
88
|
+
preRenderedExample : ApiRoute.ApiRoute ApiRoute.Response
|
|
89
|
+
preRenderedExample =
|
|
90
|
+
ApiRoute.succeed
|
|
91
|
+
(\userId ->
|
|
92
|
+
DataSource.succeed
|
|
93
|
+
(Json.Encode.object
|
|
94
|
+
[ ( "id", Json.Encode.string userId )
|
|
95
|
+
, ( "name", "Data for user " ++ userId |> Json.Encode.string )
|
|
96
|
+
]
|
|
97
|
+
|> Json.Encode.encode 2
|
|
98
|
+
)
|
|
99
|
+
)
|
|
100
|
+
|> ApiRoute.literal "users"
|
|
101
|
+
|> ApiRoute.slash
|
|
102
|
+
|> ApiRoute.capture
|
|
103
|
+
|> ApiRoute.literal ".json"
|
|
104
|
+
|> ApiRoute.preRender
|
|
105
|
+
(\route ->
|
|
106
|
+
DataSource.succeed
|
|
107
|
+
[ route "1"
|
|
108
|
+
, route "2"
|
|
109
|
+
, route "3"
|
|
110
|
+
]
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
{-| This returns a JSON response that prints information about the incoming
|
|
114
|
+
HTTP request. In practice you'd want to do something useful with that data,
|
|
115
|
+
and use more of the high-level helpers from the Server.Request API.
|
|
116
|
+
-}
|
|
117
|
+
requestPrinterExample : ApiRoute ApiRoute.Response
|
|
118
|
+
requestPrinterExample =
|
|
119
|
+
ApiRoute.succeed
|
|
120
|
+
(Server.Request.map4
|
|
121
|
+
(\rawBody method cookies queryParams ->
|
|
122
|
+
Encode.object
|
|
123
|
+
[ ( "rawBody"
|
|
124
|
+
, rawBody
|
|
125
|
+
|> Maybe.map Encode.string
|
|
126
|
+
|> Maybe.withDefault Encode.null
|
|
127
|
+
)
|
|
128
|
+
, ( "method"
|
|
129
|
+
, method
|
|
130
|
+
|> Server.Request.methodToString
|
|
131
|
+
|> Encode.string
|
|
132
|
+
)
|
|
133
|
+
, ( "cookies"
|
|
134
|
+
, cookies
|
|
135
|
+
|> Encode.dict
|
|
136
|
+
identity
|
|
137
|
+
Encode.string
|
|
138
|
+
)
|
|
139
|
+
, ( "queryParams"
|
|
140
|
+
, queryParams
|
|
141
|
+
|> Encode.dict
|
|
142
|
+
identity
|
|
143
|
+
(Encode.list Encode.string)
|
|
144
|
+
)
|
|
145
|
+
]
|
|
146
|
+
|> Response.json
|
|
147
|
+
|> DataSource.succeed
|
|
148
|
+
)
|
|
149
|
+
Server.Request.rawBody
|
|
150
|
+
Server.Request.method
|
|
151
|
+
Server.Request.allCookies
|
|
152
|
+
Server.Request.queryParams
|
|
153
|
+
)
|
|
154
|
+
|> ApiRoute.literal "api"
|
|
155
|
+
|> ApiRoute.slash
|
|
156
|
+
|> ApiRoute.literal "request-test"
|
|
157
|
+
|> ApiRoute.serverRender
|
|
158
|
+
|
|
159
|
+
@docs ApiRoute, ApiRouteBuilder, Response
|
|
160
|
+
|
|
161
|
+
@docs capture, literal, slash, succeed
|
|
27
162
|
|
|
28
163
|
|
|
29
164
|
## Including Head Tags
|
|
@@ -54,7 +189,9 @@ type alias ApiRoute response =
|
|
|
54
189
|
Internal.ApiRoute.ApiRoute response
|
|
55
190
|
|
|
56
191
|
|
|
57
|
-
{-|
|
|
192
|
+
{-| Same as [`preRender`](#preRender), but for an ApiRoute that has no dynamic segments. This is just a bit simpler because
|
|
193
|
+
since there are no dynamic segments, you don't need to provide a DataSource with the list of dynamic segments to pre-render because there is only a single possible route.
|
|
194
|
+
-}
|
|
58
195
|
single : ApiRouteBuilder (DataSource String) (List String) -> ApiRoute Response
|
|
59
196
|
single handler =
|
|
60
197
|
handler
|
|
@@ -235,7 +372,8 @@ toJson ((ApiRoute { kind }) as apiRoute) =
|
|
|
235
372
|
]
|
|
236
373
|
|
|
237
374
|
|
|
238
|
-
{-|
|
|
375
|
+
{-| A literal String segment of a route.
|
|
376
|
+
-}
|
|
239
377
|
literal : String -> ApiRouteBuilder a constructor -> ApiRouteBuilder a constructor
|
|
240
378
|
literal segment (ApiRouteBuilder patterns pattern handler toString constructor) =
|
|
241
379
|
ApiRouteBuilder
|
package/src/DataSource/Env.elm
CHANGED
|
@@ -1,6 +1,28 @@
|
|
|
1
1
|
module DataSource.Env exposing (get, expect)
|
|
2
2
|
|
|
3
|
-
{-|
|
|
3
|
+
{-| Because DataSource's in `elm-pages` never run in the browser (see [the DataSource docs](DataSource)), you can access environment variables securely. As long as the environment variable isn't sent
|
|
4
|
+
down into the final `Data` value, it won't end up in the client!
|
|
5
|
+
|
|
6
|
+
import DataSource exposing (DataSource)
|
|
7
|
+
import DataSource.Env
|
|
8
|
+
|
|
9
|
+
type alias EnvVariables =
|
|
10
|
+
{ sendGridKey : String
|
|
11
|
+
, siteUrl : String
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
sendEmail : Email -> DataSource ()
|
|
15
|
+
sendEmail email =
|
|
16
|
+
DataSource.map2 EnvVariables
|
|
17
|
+
(DataSource.Env.expect "SEND_GRID_KEY")
|
|
18
|
+
(DataSource.Env.get "BASE_URL"
|
|
19
|
+
|> DataSource.map (Maybe.withDefault "http://localhost:1234")
|
|
20
|
+
)
|
|
21
|
+
|> DataSource.andThen (sendEmailDataSource email)
|
|
22
|
+
|
|
23
|
+
sendEmailDataSource : Email -> EnvVariables -> DataSource ()
|
|
24
|
+
sendEmailDataSource email envVariables =
|
|
25
|
+
Debug.todo "Not defined here"
|
|
4
26
|
|
|
5
27
|
@docs get, expect
|
|
6
28
|
|
|
@@ -13,7 +35,8 @@ import Json.Decode as Decode
|
|
|
13
35
|
import Json.Encode as Encode
|
|
14
36
|
|
|
15
37
|
|
|
16
|
-
{-|
|
|
38
|
+
{-| Get an environment variable, or Nothing if there is no environment variable matching that name.
|
|
39
|
+
-}
|
|
17
40
|
get : String -> DataSource (Maybe String)
|
|
18
41
|
get envVariableName =
|
|
19
42
|
DataSource.Internal.Request.request
|
|
@@ -25,7 +48,8 @@ get envVariableName =
|
|
|
25
48
|
}
|
|
26
49
|
|
|
27
50
|
|
|
28
|
-
{-|
|
|
51
|
+
{-| Get an environment variable, or a DataSource failure if there is no environment variable matching that name.
|
|
52
|
+
-}
|
|
29
53
|
expect : String -> DataSource String
|
|
30
54
|
expect envVariableName =
|
|
31
55
|
envVariableName
|