elm-pages 3.0.0-beta.4 → 3.0.0-beta.41
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 +10 -1
- package/adapter/netlify.js +207 -0
- package/codegen/{elm-pages-codegen.js → elm-pages-codegen.cjs} +2828 -2933
- 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/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 +1447 -342
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +17004 -13817
- 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 +9 -7
- package/generator/dead-code-review/src/Pages/Review/DeadCodeEliminateData.elm +59 -10
- package/generator/dead-code-review/tests/Pages/Review/DeadCodeEliminateDataTest.elm +52 -36
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Internal-RoutePattern.elmi +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Internal-RoutePattern.elmo +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolations.elmi +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolations.elmo +0 -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 +1447 -342
- package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +25025 -21739
- 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 +10 -10
- package/generator/src/RouteBuilder.elm +121 -114
- package/generator/src/SharedTemplate.elm +8 -7
- package/generator/src/SiteConfig.elm +3 -2
- package/generator/src/basepath-middleware.js +3 -3
- package/generator/src/build.js +209 -92
- package/generator/src/cli.js +292 -88
- package/generator/src/codegen.js +29 -27
- package/generator/src/compatibility-key.js +3 -0
- package/generator/src/compile-elm.js +43 -26
- package/generator/src/config.js +39 -0
- package/generator/src/copy-dir.js +2 -2
- package/generator/src/dev-server.js +176 -138
- package/generator/src/dir-helpers.js +9 -26
- package/generator/src/elm-codegen.js +5 -4
- package/generator/src/elm-file-constants.js +2 -3
- package/generator/src/error-formatter.js +12 -11
- package/generator/src/file-helpers.js +3 -4
- package/generator/src/generate-template-module-connector.js +23 -23
- package/generator/src/init.js +9 -8
- package/generator/src/pre-render-html.js +39 -28
- package/generator/src/render-test.js +109 -0
- package/generator/src/render-worker.js +25 -28
- package/generator/src/render.js +321 -142
- package/generator/src/request-cache.js +265 -162
- package/generator/src/resolve-elm-module.js +64 -0
- package/generator/src/rewrite-client-elm-json.js +6 -5
- package/generator/src/rewrite-elm-json-help.js +56 -0
- package/generator/src/rewrite-elm-json.js +17 -7
- package/generator/src/route-codegen-helpers.js +16 -31
- package/generator/src/seo-renderer.js +12 -7
- package/generator/src/vite-utils.js +77 -0
- package/generator/static-code/elm-pages.js +10 -0
- package/generator/static-code/hmr.js +79 -13
- package/generator/template/app/Api.elm +6 -5
- package/generator/template/app/Effect.elm +123 -0
- package/generator/template/app/ErrorPage.elm +37 -6
- package/generator/template/app/Route/Index.elm +17 -10
- package/generator/template/app/Shared.elm +24 -47
- package/generator/template/app/Site.elm +19 -6
- package/generator/template/app/View.elm +1 -8
- package/generator/template/elm-tooling.json +0 -3
- package/generator/template/elm.json +32 -24
- package/generator/template/package.json +10 -4
- package/package.json +30 -27
- package/src/ApiRoute.elm +199 -61
- package/src/BackendTask/Custom.elm +325 -0
- package/src/BackendTask/Env.elm +90 -0
- package/src/{DataSource → BackendTask}/File.elm +171 -56
- package/src/{DataSource → BackendTask}/Glob.elm +136 -125
- package/src/BackendTask/Http.elm +679 -0
- package/src/{DataSource → BackendTask}/Internal/Glob.elm +1 -1
- package/src/BackendTask/Internal/Request.elm +69 -0
- package/src/BackendTask/Random.elm +79 -0
- package/src/BackendTask/Time.elm +47 -0
- package/src/BackendTask.elm +531 -0
- package/src/FatalError.elm +90 -0
- package/src/Head/Seo.elm +4 -4
- package/src/Head.elm +237 -7
- package/src/HtmlPrinter.elm +7 -3
- package/src/Internal/ApiRoute.elm +7 -5
- package/src/PageServerResponse.elm +6 -1
- package/src/Pages/ConcurrentSubmission.elm +127 -0
- package/src/Pages/Form.elm +340 -0
- package/src/Pages/FormData.elm +18 -0
- package/src/Pages/GeneratorProgramConfig.elm +15 -0
- package/src/Pages/Internal/FatalError.elm +5 -0
- package/src/Pages/Internal/Msg.elm +93 -0
- package/src/Pages/Internal/NotFoundReason.elm +4 -4
- package/src/Pages/Internal/Platform/Cli.elm +617 -768
- package/src/Pages/Internal/Platform/CompatibilityKey.elm +6 -0
- package/src/Pages/Internal/Platform/Effect.elm +1 -2
- package/src/Pages/Internal/Platform/GeneratorApplication.elm +379 -0
- package/src/Pages/Internal/Platform/StaticResponses.elm +65 -276
- package/src/Pages/Internal/Platform/ToJsPayload.elm +6 -9
- package/src/Pages/Internal/Platform.elm +359 -225
- package/src/Pages/Internal/ResponseSketch.elm +2 -2
- package/src/Pages/Internal/Script.elm +17 -0
- package/src/Pages/Internal/StaticHttpBody.elm +35 -1
- package/src/Pages/Manifest.elm +52 -11
- package/src/Pages/Navigation.elm +87 -0
- package/src/Pages/PageUrl.elm +26 -12
- package/src/Pages/ProgramConfig.elm +35 -23
- package/src/Pages/Script.elm +166 -0
- package/src/Pages/SiteConfig.elm +3 -2
- package/src/Pages/StaticHttp/Request.elm +2 -2
- package/src/Pages/StaticHttpRequest.elm +23 -99
- package/src/Pages/Url.elm +3 -3
- package/src/PagesMsg.elm +88 -0
- package/src/QueryParams.elm +21 -172
- package/src/RenderRequest.elm +7 -7
- package/src/RequestsAndPending.elm +37 -20
- package/src/Result/Extra.elm +26 -0
- package/src/Scaffold/Form.elm +569 -0
- package/src/Scaffold/Route.elm +1411 -0
- package/src/Server/Request.elm +74 -72
- package/src/Server/Session.elm +62 -42
- package/src/Server/SetCookie.elm +80 -32
- package/src/Stub.elm +53 -0
- package/src/Test/Html/Internal/ElmHtml/ToString.elm +8 -9
- package/src/{Path.elm → UrlPath.elm} +33 -36
- package/src/DataSource/Env.elm +0 -38
- package/src/DataSource/Http.elm +0 -446
- package/src/DataSource/Internal/Request.elm +0 -20
- package/src/DataSource/Port.elm +0 -90
- package/src/DataSource.elm +0 -538
- package/src/Form/Field.elm +0 -717
- package/src/Form/FieldStatus.elm +0 -36
- package/src/Form/FieldView.elm +0 -417
- package/src/Form/FormData.elm +0 -22
- package/src/Form/Validation.elm +0 -391
- package/src/Form/Value.elm +0 -118
- package/src/Form.elm +0 -1683
- package/src/FormDecoder.elm +0 -102
- package/src/Pages/FormState.elm +0 -256
- package/src/Pages/Generate.elm +0 -800
- package/src/Pages/Internal/Form.elm +0 -17
- package/src/Pages/Msg.elm +0 -79
- package/src/Pages/Transition.elm +0 -70
package/src/RenderRequest.elm
CHANGED
|
@@ -13,15 +13,15 @@ import Internal.ApiRoute
|
|
|
13
13
|
import Json.Decode as Decode
|
|
14
14
|
import Json.Encode as Encode
|
|
15
15
|
import Pages.ProgramConfig exposing (ProgramConfig)
|
|
16
|
-
import Path exposing (Path)
|
|
17
16
|
import Regex
|
|
18
17
|
import Url exposing (Url)
|
|
18
|
+
import UrlPath exposing (UrlPath)
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
type RequestPayload route
|
|
22
|
-
= Page { path :
|
|
22
|
+
= Page { path : UrlPath, frontmatter : route }
|
|
23
23
|
| Api ( String, ApiRoute.ApiRoute ApiRoute.Response )
|
|
24
|
-
| NotFound
|
|
24
|
+
| NotFound UrlPath
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
type RenderRequest route
|
|
@@ -32,7 +32,7 @@ default : RenderRequest route
|
|
|
32
32
|
default =
|
|
33
33
|
SinglePage
|
|
34
34
|
HtmlAndJson
|
|
35
|
-
(NotFound (
|
|
35
|
+
(NotFound (UrlPath.fromString "/error"))
|
|
36
36
|
Encode.null
|
|
37
37
|
|
|
38
38
|
|
|
@@ -119,12 +119,12 @@ requestPayloadDecoder config =
|
|
|
119
119
|
( path, justApi ) |> Api
|
|
120
120
|
|
|
121
121
|
Nothing ->
|
|
122
|
-
NotFound (
|
|
122
|
+
NotFound (UrlPath.fromString path)
|
|
123
123
|
|
|
124
124
|
else
|
|
125
125
|
Page
|
|
126
126
|
{ frontmatter = route
|
|
127
|
-
, path = config.routeToPath route |>
|
|
127
|
+
, path = config.routeToPath route |> UrlPath.join
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
Nothing ->
|
|
@@ -133,7 +133,7 @@ requestPayloadDecoder config =
|
|
|
133
133
|
( path, justApi ) |> Api
|
|
134
134
|
|
|
135
135
|
Nothing ->
|
|
136
|
-
NotFound (
|
|
136
|
+
NotFound (UrlPath.fromString path)
|
|
137
137
|
)
|
|
138
138
|
)
|
|
139
139
|
|> Decode.field "path"
|
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
module RequestsAndPending exposing (RequestsAndPending, Response(..), ResponseBody(..),
|
|
1
|
+
module RequestsAndPending exposing (HttpError(..), 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
|
|
@@ -115,8 +101,39 @@ responseDecoder =
|
|
|
115
101
|
(Decode.field "url" Decode.string)
|
|
116
102
|
|
|
117
103
|
|
|
118
|
-
get : String -> RequestsAndPending -> Maybe Response
|
|
104
|
+
get : String -> RequestsAndPending -> Maybe (Result HttpError Response)
|
|
119
105
|
get key requestsAndPending =
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
106
|
+
Decode.decodeValue
|
|
107
|
+
(Decode.field key
|
|
108
|
+
(Decode.field "response"
|
|
109
|
+
(Decode.oneOf
|
|
110
|
+
[ Decode.field "elm-pages-internal-error" errorDecoder |> Decode.map Err
|
|
111
|
+
, decoder |> Decode.map Ok
|
|
112
|
+
]
|
|
113
|
+
)
|
|
114
|
+
)
|
|
115
|
+
)
|
|
116
|
+
requestsAndPending
|
|
117
|
+
|> Result.toMaybe
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
type HttpError
|
|
121
|
+
= NetworkError
|
|
122
|
+
| Timeout
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
errorDecoder : Decoder HttpError
|
|
126
|
+
errorDecoder =
|
|
127
|
+
Decode.string
|
|
128
|
+
|> Decode.andThen
|
|
129
|
+
(\errorCode ->
|
|
130
|
+
case errorCode of
|
|
131
|
+
"NetworkError" ->
|
|
132
|
+
Decode.succeed NetworkError
|
|
133
|
+
|
|
134
|
+
"Timeout" ->
|
|
135
|
+
Decode.succeed Timeout
|
|
136
|
+
|
|
137
|
+
_ ->
|
|
138
|
+
Decode.fail "Unhandled error code."
|
|
139
|
+
)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Result.Extra exposing (combine, isOk, merge)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
isOk : Result x a -> Bool
|
|
5
|
+
isOk result =
|
|
6
|
+
case result of
|
|
7
|
+
Ok _ ->
|
|
8
|
+
True
|
|
9
|
+
|
|
10
|
+
Err _ ->
|
|
11
|
+
False
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
merge : Result a a -> a
|
|
15
|
+
merge r =
|
|
16
|
+
case r of
|
|
17
|
+
Ok rr ->
|
|
18
|
+
rr
|
|
19
|
+
|
|
20
|
+
Err rr ->
|
|
21
|
+
rr
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
combine : List (Result x a) -> Result x (List a)
|
|
25
|
+
combine =
|
|
26
|
+
List.foldr (Result.map2 (::)) (Ok [])
|