elm-pages 3.0.0-beta.9 → 3.0.0
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 +2 -2
- package/adapter/netlify.js +207 -0
- package/codegen/{elm-pages-codegen.js → elm-pages-codegen.cjs} +2731 -2939
- 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 +1527 -422
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +16840 -13653
- 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 +1527 -422
- package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +25118 -21832
- 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 +93 -128
- 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 +143 -59
- 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 +2 -4
- package/generator/src/copy-dir.js +2 -2
- package/generator/src/dev-server.js +160 -102
- 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 +10 -13
- package/generator/src/render-test.js +109 -0
- package/generator/src/render-worker.js +25 -28
- package/generator/src/render.js +320 -143
- 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 +1 -3
- package/generator/src/vite-utils.js +1 -2
- package/generator/static-code/elm-pages.js +10 -0
- package/generator/static-code/hmr.js +79 -13
- package/generator/template/app/Api.elm +3 -2
- package/generator/template/app/Effect.elm +155 -0
- package/generator/template/app/ErrorPage.elm +49 -6
- package/generator/template/app/Route/Blog/Slug_.elm +86 -0
- package/generator/template/app/Route/Greet.elm +107 -0
- package/generator/template/app/Route/Hello.elm +119 -0
- package/generator/template/app/Route/Index.elm +26 -25
- package/generator/template/app/Shared.elm +38 -39
- package/generator/template/app/Site.elm +4 -7
- package/generator/template/app/View.elm +9 -8
- package/generator/template/codegen/elm.codegen.json +18 -0
- package/generator/template/custom-backend-task.ts +3 -0
- package/generator/template/elm-pages.config.mjs +13 -0
- package/generator/template/elm-tooling.json +0 -3
- package/generator/template/elm.json +25 -20
- package/generator/template/index.ts +1 -2
- package/generator/template/netlify.toml +4 -1
- package/generator/template/package.json +10 -4
- package/generator/template/script/.elm-pages/compiled-ports/custom-backend-task.mjs +7 -0
- package/generator/template/script/custom-backend-task.ts +3 -0
- package/generator/template/script/elm.json +61 -0
- package/generator/template/script/src/AddRoute.elm +312 -0
- package/generator/template/script/src/Stars.elm +42 -0
- package/package.json +30 -27
- package/src/ApiRoute.elm +249 -82
- 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/FormData.elm +21 -18
- package/src/Head/Seo.elm +4 -4
- package/src/Head.elm +112 -8
- package/src/Internal/ApiRoute.elm +7 -5
- package/src/Internal/Request.elm +84 -4
- 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 +19 -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 +586 -768
- package/src/Pages/Internal/Platform/CompatibilityKey.elm +1 -1
- 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 +330 -203
- 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 +85 -0
- package/src/Pages/PageUrl.elm +26 -12
- package/src/Pages/ProgramConfig.elm +32 -22
- 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 +1431 -0
- package/src/Server/Request.elm +476 -1001
- package/src/Server/Response.elm +130 -36
- package/src/Server/Session.elm +181 -111
- 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/generator/template/public/images/icon-png.png +0 -0
- 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 -546
- 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 -1242
- package/src/Pages/Internal/Form.elm +0 -17
- package/src/Pages/Internal/Platform/Cli.elm.bak +0 -1276
- package/src/Pages/Msg.elm +0 -79
- package/src/Pages/Transition.elm +0 -70
|
@@ -1,221 +1,66 @@
|
|
|
1
|
-
module Pages.Internal.Platform.StaticResponses exposing (
|
|
1
|
+
module Pages.Internal.Platform.StaticResponses exposing (NextStep(..), empty, nextStep)
|
|
2
2
|
|
|
3
|
+
import BackendTask exposing (BackendTask)
|
|
3
4
|
import BuildError exposing (BuildError)
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import Dict.Extra
|
|
7
|
-
import Pages.Internal.NotFoundReason exposing (NotFoundReason)
|
|
5
|
+
import FatalError exposing (FatalError)
|
|
6
|
+
import Pages.Internal.FatalError
|
|
8
7
|
import Pages.StaticHttp.Request as HashRequest
|
|
9
8
|
import Pages.StaticHttpRequest as StaticHttpRequest
|
|
10
9
|
import RequestsAndPending exposing (RequestsAndPending)
|
|
11
|
-
import
|
|
10
|
+
import TerminalText
|
|
12
11
|
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
| CheckIfHandled (DataSource (Maybe NotFoundReason)) StaticHttpResult StaticHttpResult
|
|
13
|
+
empty : a -> BackendTask FatalError a
|
|
14
|
+
empty a =
|
|
15
|
+
BackendTask.succeed a
|
|
18
16
|
|
|
19
17
|
|
|
20
|
-
type
|
|
21
|
-
=
|
|
18
|
+
type NextStep route value
|
|
19
|
+
= Continue (List HashRequest.Request) (StaticHttpRequest.RawRequest FatalError value)
|
|
20
|
+
| Finish value
|
|
21
|
+
| FinishedWithErrors (List BuildError)
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
(NotFetched (DataSource.succeed ()) Dict.empty)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
renderSingleRoute :
|
|
31
|
-
DataSource a
|
|
32
|
-
-> DataSource (Maybe NotFoundReason)
|
|
33
|
-
-> StaticResponses
|
|
34
|
-
renderSingleRoute request cliData =
|
|
35
|
-
CheckIfHandled cliData
|
|
36
|
-
(NotFetched
|
|
37
|
-
(cliData
|
|
38
|
-
|> DataSource.map (\_ -> ())
|
|
39
|
-
)
|
|
40
|
-
Dict.empty
|
|
41
|
-
)
|
|
42
|
-
(NotFetched (DataSource.map (\_ -> ()) request) Dict.empty)
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
renderApiRequest :
|
|
46
|
-
DataSource response
|
|
47
|
-
-> StaticResponses
|
|
48
|
-
renderApiRequest request =
|
|
49
|
-
ApiRequest
|
|
50
|
-
(NotFetched
|
|
51
|
-
(request |> DataSource.map (\_ -> ()))
|
|
52
|
-
Dict.empty
|
|
53
|
-
)
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
batchUpdate :
|
|
57
|
-
List
|
|
58
|
-
{ request : HashRequest.Request
|
|
59
|
-
, response : RequestsAndPending.Response
|
|
60
|
-
}
|
|
61
|
-
->
|
|
62
|
-
{ model
|
|
63
|
-
| staticResponses : StaticResponses
|
|
64
|
-
, allRawResponses : RequestsAndPending
|
|
65
|
-
}
|
|
24
|
+
nextStep :
|
|
25
|
+
RequestsAndPending
|
|
26
|
+
-> BackendTask FatalError a
|
|
66
27
|
->
|
|
67
28
|
{ model
|
|
68
|
-
|
|
|
69
|
-
, allRawResponses : RequestsAndPending
|
|
70
|
-
}
|
|
71
|
-
batchUpdate newEntries model =
|
|
72
|
-
{ model
|
|
73
|
-
| allRawResponses = insertAll newEntries model.allRawResponses
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
insertAll :
|
|
78
|
-
List
|
|
79
|
-
{ request : HashRequest.Request
|
|
80
|
-
, response : RequestsAndPending.Response
|
|
29
|
+
| errors : List BuildError
|
|
81
30
|
}
|
|
82
|
-
->
|
|
83
|
-
|
|
84
|
-
insertAll newEntries dict =
|
|
85
|
-
case newEntries of
|
|
86
|
-
[] ->
|
|
87
|
-
dict
|
|
88
|
-
|
|
89
|
-
info :: rest ->
|
|
90
|
-
insertAll
|
|
91
|
-
rest
|
|
92
|
-
(Dict.update (HashRequest.hash info.request) (\_ -> Just (Just info.response)) dict)
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
type NextStep route
|
|
96
|
-
= Continue RequestsAndPending (List HashRequest.Request) (Maybe (List route))
|
|
97
|
-
| Finish (FinishKind route)
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
type FinishKind route
|
|
101
|
-
= ApiResponse
|
|
102
|
-
| Errors (List BuildError)
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
nextStep :
|
|
106
|
-
{ model
|
|
107
|
-
| staticResponses : StaticResponses
|
|
108
|
-
, errors : List BuildError
|
|
109
|
-
, allRawResponses : RequestsAndPending
|
|
110
|
-
}
|
|
111
|
-
-> Maybe (List route)
|
|
112
|
-
-> ( StaticResponses, NextStep route )
|
|
113
|
-
nextStep ({ allRawResponses, errors } as model) maybeRoutes =
|
|
31
|
+
-> NextStep route a
|
|
32
|
+
nextStep allRawResponses staticResponses { errors } =
|
|
114
33
|
let
|
|
115
|
-
staticRequestsStatus : StaticHttpRequest.Status
|
|
34
|
+
staticRequestsStatus : StaticHttpRequest.Status FatalError a
|
|
116
35
|
staticRequestsStatus =
|
|
117
36
|
allRawResponses
|
|
118
|
-
|> StaticHttpRequest.cacheRequestResolution
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
let
|
|
143
|
-
hasPermanentError : Bool
|
|
144
|
-
hasPermanentError =
|
|
145
|
-
case staticRequestsStatus of
|
|
146
|
-
StaticHttpRequest.HasPermanentError _ ->
|
|
147
|
-
True
|
|
148
|
-
|
|
149
|
-
_ ->
|
|
150
|
-
False
|
|
151
|
-
|
|
152
|
-
hasPermanentHttpError : Bool
|
|
153
|
-
hasPermanentHttpError =
|
|
154
|
-
not (List.isEmpty errors)
|
|
155
|
-
|
|
156
|
-
( allUrlsKnown, knownUrlsToFetch ) =
|
|
157
|
-
case staticRequestsStatus of
|
|
158
|
-
StaticHttpRequest.Incomplete newUrlsToFetch ->
|
|
159
|
-
( False, newUrlsToFetch )
|
|
160
|
-
|
|
161
|
-
_ ->
|
|
162
|
-
( True, [] )
|
|
163
|
-
|
|
164
|
-
fetchedAllKnownUrls : Bool
|
|
165
|
-
fetchedAllKnownUrls =
|
|
166
|
-
(rawResponses
|
|
167
|
-
|> Dict.keys
|
|
168
|
-
|> Set.fromList
|
|
169
|
-
|> Set.union (allRawResponses |> Dict.keys |> Set.fromList)
|
|
170
|
-
)
|
|
171
|
-
|> Set.diff
|
|
172
|
-
(knownUrlsToFetch
|
|
173
|
-
|> List.map HashRequest.hash
|
|
174
|
-
|> Set.fromList
|
|
175
|
-
)
|
|
176
|
-
|> Set.isEmpty
|
|
177
|
-
in
|
|
178
|
-
not (hasPermanentHttpError || hasPermanentError || (allUrlsKnown && fetchedAllKnownUrls))
|
|
37
|
+
|> StaticHttpRequest.cacheRequestResolution staticResponses
|
|
38
|
+
|
|
39
|
+
( ( pendingRequests, completedValue ), urlsToPerform, progressedBackendTask ) =
|
|
40
|
+
case staticRequestsStatus of
|
|
41
|
+
StaticHttpRequest.Incomplete newUrlsToFetch nextReq ->
|
|
42
|
+
( ( True, Nothing ), newUrlsToFetch, nextReq )
|
|
43
|
+
|
|
44
|
+
StaticHttpRequest.Complete (Err error) ->
|
|
45
|
+
( ( False, Just (Err error) )
|
|
46
|
+
, []
|
|
47
|
+
, BackendTask.fail error
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
StaticHttpRequest.Complete (Ok value) ->
|
|
51
|
+
( ( False, Just (Ok value) )
|
|
52
|
+
, []
|
|
53
|
+
, BackendTask.succeed value
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
StaticHttpRequest.HasPermanentError _ ->
|
|
57
|
+
( ( False, Nothing )
|
|
58
|
+
, []
|
|
59
|
+
, BackendTask.fail (FatalError.fromString "TODO this shouldn't happen")
|
|
60
|
+
)
|
|
179
61
|
in
|
|
180
62
|
if pendingRequests then
|
|
181
|
-
|
|
182
|
-
urlsToPerform : List HashRequest.Request
|
|
183
|
-
urlsToPerform =
|
|
184
|
-
-- TODO is this redundant with cacheRequestResolution?
|
|
185
|
-
StaticHttpRequest.resolveUrls request allRawResponses
|
|
186
|
-
|
|
187
|
-
newAllRawResponses : RequestsAndPending
|
|
188
|
-
newAllRawResponses =
|
|
189
|
-
Dict.union allRawResponses dictOfNewUrlsToPerform
|
|
190
|
-
|
|
191
|
-
dictOfNewUrlsToPerform : RequestsAndPending
|
|
192
|
-
dictOfNewUrlsToPerform =
|
|
193
|
-
urlsToPerform
|
|
194
|
-
|> List.map (\url -> ( HashRequest.hash url, Nothing ))
|
|
195
|
-
|> Dict.fromList
|
|
196
|
-
|
|
197
|
-
maskedToUnmasked : Dict String HashRequest.Request
|
|
198
|
-
maskedToUnmasked =
|
|
199
|
-
urlsToPerform
|
|
200
|
-
|> List.map
|
|
201
|
-
(\secureUrl ->
|
|
202
|
-
( HashRequest.hash secureUrl, secureUrl )
|
|
203
|
-
)
|
|
204
|
-
|> Dict.fromList
|
|
205
|
-
|
|
206
|
-
alreadyPerformed : Set String
|
|
207
|
-
alreadyPerformed =
|
|
208
|
-
allRawResponses
|
|
209
|
-
|> Dict.keys
|
|
210
|
-
|> Set.fromList
|
|
211
|
-
|
|
212
|
-
newThing : List HashRequest.Request
|
|
213
|
-
newThing =
|
|
214
|
-
maskedToUnmasked
|
|
215
|
-
|> Dict.Extra.removeMany alreadyPerformed
|
|
216
|
-
|> Dict.values
|
|
217
|
-
in
|
|
218
|
-
( model.staticResponses, Continue newAllRawResponses newThing maybeRoutes )
|
|
63
|
+
Continue urlsToPerform progressedBackendTask
|
|
219
64
|
|
|
220
65
|
else
|
|
221
66
|
let
|
|
@@ -245,80 +90,24 @@ nextStep ({ allRawResponses, errors } as model) maybeRoutes =
|
|
|
245
90
|
in
|
|
246
91
|
errors ++ failedRequests
|
|
247
92
|
in
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|> Finish
|
|
270
|
-
)
|
|
271
|
-
|
|
272
|
-
CheckIfHandled pageFoundDataSource (NotFetched _ _) andThenRequest ->
|
|
273
|
-
let
|
|
274
|
-
pageFoundResult : Result StaticHttpRequest.Error (Maybe NotFoundReason)
|
|
275
|
-
pageFoundResult =
|
|
276
|
-
StaticHttpRequest.resolve
|
|
277
|
-
pageFoundDataSource
|
|
278
|
-
allRawResponses
|
|
279
|
-
in
|
|
280
|
-
case pageFoundResult of
|
|
281
|
-
Ok Nothing ->
|
|
282
|
-
nextStep { model | staticResponses = StaticResponses andThenRequest } maybeRoutes
|
|
283
|
-
|
|
284
|
-
Ok (Just _) ->
|
|
285
|
-
( empty
|
|
286
|
-
, Finish ApiResponse
|
|
287
|
-
-- TODO change data type here so you can avoid running `resolve` again from `Cli.elm` since it can be expensive
|
|
288
|
-
)
|
|
289
|
-
|
|
290
|
-
Err error_ ->
|
|
291
|
-
let
|
|
292
|
-
failedRequests : List BuildError
|
|
293
|
-
failedRequests =
|
|
294
|
-
let
|
|
295
|
-
maybePermanentError : Maybe StaticHttpRequest.Error
|
|
296
|
-
maybePermanentError =
|
|
297
|
-
case staticRequestsStatus of
|
|
298
|
-
StaticHttpRequest.HasPermanentError theError ->
|
|
299
|
-
Just theError
|
|
300
|
-
|
|
301
|
-
_ ->
|
|
302
|
-
Nothing
|
|
303
|
-
|
|
304
|
-
decoderErrors : List BuildError
|
|
305
|
-
decoderErrors =
|
|
306
|
-
maybePermanentError
|
|
307
|
-
|> Maybe.map (StaticHttpRequest.toBuildError "TODO PATH")
|
|
308
|
-
|> Maybe.map List.singleton
|
|
309
|
-
|> Maybe.withDefault []
|
|
310
|
-
in
|
|
311
|
-
decoderErrors
|
|
312
|
-
in
|
|
313
|
-
( model.staticResponses
|
|
314
|
-
, Finish
|
|
315
|
-
(Errors <|
|
|
316
|
-
(StaticHttpRequest.toBuildError
|
|
317
|
-
-- TODO give more fine-grained error reference
|
|
318
|
-
"get static routes"
|
|
319
|
-
error_
|
|
320
|
-
:: failedRequests
|
|
321
|
-
++ errors
|
|
322
|
-
)
|
|
323
|
-
)
|
|
324
|
-
)
|
|
93
|
+
if List.length allErrors > 0 then
|
|
94
|
+
FinishedWithErrors allErrors
|
|
95
|
+
|
|
96
|
+
else
|
|
97
|
+
case completedValue of
|
|
98
|
+
Just (Ok completed) ->
|
|
99
|
+
Finish completed
|
|
100
|
+
|
|
101
|
+
Just (Err (Pages.Internal.FatalError.FatalError buildError)) ->
|
|
102
|
+
FinishedWithErrors
|
|
103
|
+
[ { title = buildError.title |> String.toUpper
|
|
104
|
+
, path = "" -- TODO include path here
|
|
105
|
+
, message = buildError.body |> TerminalText.fromAnsiString
|
|
106
|
+
, fatal = True
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
|
|
110
|
+
Nothing ->
|
|
111
|
+
FinishedWithErrors
|
|
112
|
+
[ BuildError.internal "TODO error message"
|
|
113
|
+
]
|
|
@@ -25,7 +25,7 @@ type alias ToJsSuccessPayloadNew =
|
|
|
25
25
|
, staticHttpCache : Dict String String
|
|
26
26
|
, is404 : Bool
|
|
27
27
|
, statusCode : Int
|
|
28
|
-
, headers :
|
|
28
|
+
, headers : Dict String (List String)
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
|
|
@@ -76,7 +76,7 @@ successCodecNew canonicalSiteUrl currentPagePath =
|
|
|
76
76
|
|> Codec.field "statusCode" .statusCode Codec.int
|
|
77
77
|
|> Codec.field "headers"
|
|
78
78
|
.headers
|
|
79
|
-
(Codec.dict Codec.
|
|
79
|
+
(Codec.dict (Codec.list Codec.string))
|
|
80
80
|
|> Codec.buildObject
|
|
81
81
|
|
|
82
82
|
|
|
@@ -89,7 +89,7 @@ headCodec canonicalSiteUrl currentPagePath =
|
|
|
89
89
|
type ToJsSuccessPayloadNewCombined
|
|
90
90
|
= PageProgress ToJsSuccessPayloadNew
|
|
91
91
|
| SendApiResponse { body : Json.Encode.Value, staticHttpCache : Dict String String, statusCode : Int }
|
|
92
|
-
| DoHttp Pages.StaticHttp.Request.Request
|
|
92
|
+
| DoHttp (List ( String, Pages.StaticHttp.Request.Request ))
|
|
93
93
|
| Port String
|
|
94
94
|
| Errors (List BuildError)
|
|
95
95
|
| ApiResponse
|
|
@@ -109,8 +109,8 @@ successCodecNew2 canonicalSiteUrl currentPagePath =
|
|
|
109
109
|
PageProgress payload ->
|
|
110
110
|
success payload
|
|
111
111
|
|
|
112
|
-
DoHttp
|
|
113
|
-
vDoHttp
|
|
112
|
+
DoHttp hashRequestPairs ->
|
|
113
|
+
vDoHttp hashRequestPairs
|
|
114
114
|
|
|
115
115
|
SendApiResponse record ->
|
|
116
116
|
vSendApiResponse record
|
|
@@ -121,10 +121,7 @@ successCodecNew2 canonicalSiteUrl currentPagePath =
|
|
|
121
121
|
|> Codec.variant1 "Errors" Errors errorCodec
|
|
122
122
|
|> Codec.variant0 "ApiResponse" ApiResponse
|
|
123
123
|
|> Codec.variant1 "PageProgress" PageProgress (successCodecNew canonicalSiteUrl currentPagePath)
|
|
124
|
-
|> Codec.
|
|
125
|
-
DoHttp
|
|
126
|
-
Pages.StaticHttp.Request.codec
|
|
127
|
-
Codec.bool
|
|
124
|
+
|> Codec.variant1 "DoHttp" DoHttp (Codec.list (Codec.tuple Codec.string Pages.StaticHttp.Request.codec))
|
|
128
125
|
|> Codec.variant1 "ApiResponse"
|
|
129
126
|
SendApiResponse
|
|
130
127
|
(Codec.object (\body staticHttpCache statusCode -> { body = body, staticHttpCache = staticHttpCache, statusCode = statusCode })
|