elm-pages 3.0.0-beta.8 → 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.
Files changed (164) hide show
  1. package/README.md +11 -2
  2. package/adapter/netlify.js +207 -0
  3. package/codegen/{elm-pages-codegen.js → elm-pages-codegen.cjs} +2730 -2938
  4. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmi +0 -0
  5. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmo +0 -0
  6. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmo +0 -0
  7. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  8. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
  9. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  10. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm.json +1 -1
  11. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1527 -422
  12. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +16840 -13653
  13. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  14. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_supervisor.js +2 -2
  15. package/generator/dead-code-review/elm.json +9 -7
  16. package/generator/dead-code-review/src/Pages/Review/DeadCodeEliminateData.elm +59 -10
  17. package/generator/dead-code-review/tests/Pages/Review/DeadCodeEliminateDataTest.elm +52 -36
  18. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Internal-RoutePattern.elmi +0 -0
  19. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Internal-RoutePattern.elmo +0 -0
  20. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolations.elmi +0 -0
  21. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolations.elmo +0 -0
  22. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  23. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
  24. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  25. package/generator/review/elm-stuff/tests-0.19.1/elm.json +1 -1
  26. package/generator/review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1527 -422
  27. package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +25118 -21832
  28. package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  29. package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +2 -2
  30. package/generator/review/elm.json +10 -10
  31. package/generator/src/RouteBuilder.elm +93 -128
  32. package/generator/src/SharedTemplate.elm +8 -7
  33. package/generator/src/SiteConfig.elm +3 -2
  34. package/generator/src/basepath-middleware.js +3 -3
  35. package/generator/src/build.js +147 -63
  36. package/generator/src/cli.js +292 -88
  37. package/generator/src/codegen.js +29 -27
  38. package/generator/src/compatibility-key.js +3 -0
  39. package/generator/src/compile-elm.js +43 -26
  40. package/generator/src/config.js +2 -4
  41. package/generator/src/copy-dir.js +2 -2
  42. package/generator/src/dev-server.js +159 -92
  43. package/generator/src/dir-helpers.js +9 -26
  44. package/generator/src/elm-codegen.js +5 -4
  45. package/generator/src/elm-file-constants.js +2 -3
  46. package/generator/src/error-formatter.js +12 -11
  47. package/generator/src/file-helpers.js +3 -4
  48. package/generator/src/generate-template-module-connector.js +23 -23
  49. package/generator/src/init.js +9 -8
  50. package/generator/src/pre-render-html.js +10 -13
  51. package/generator/src/render-test.js +109 -0
  52. package/generator/src/render-worker.js +25 -28
  53. package/generator/src/render.js +321 -142
  54. package/generator/src/request-cache.js +265 -162
  55. package/generator/src/resolve-elm-module.js +64 -0
  56. package/generator/src/rewrite-client-elm-json.js +6 -5
  57. package/generator/src/rewrite-elm-json-help.js +56 -0
  58. package/generator/src/rewrite-elm-json.js +17 -7
  59. package/generator/src/route-codegen-helpers.js +16 -31
  60. package/generator/src/seo-renderer.js +12 -7
  61. package/generator/src/vite-utils.js +1 -2
  62. package/generator/static-code/elm-pages.js +10 -0
  63. package/generator/static-code/hmr.js +79 -13
  64. package/generator/template/app/Api.elm +3 -2
  65. package/generator/template/app/Effect.elm +155 -0
  66. package/generator/template/app/ErrorPage.elm +49 -6
  67. package/generator/template/app/Route/Blog/Slug_.elm +86 -0
  68. package/generator/template/app/Route/Greet.elm +107 -0
  69. package/generator/template/app/Route/Hello.elm +119 -0
  70. package/generator/template/app/Route/Index.elm +26 -25
  71. package/generator/template/app/Shared.elm +38 -39
  72. package/generator/template/app/Site.elm +4 -7
  73. package/generator/template/app/View.elm +9 -8
  74. package/generator/template/codegen/elm.codegen.json +18 -0
  75. package/generator/template/custom-backend-task.ts +3 -0
  76. package/generator/template/elm-pages.config.mjs +13 -0
  77. package/generator/template/elm-tooling.json +0 -3
  78. package/generator/template/elm.json +25 -20
  79. package/generator/template/index.ts +1 -2
  80. package/generator/template/netlify.toml +4 -1
  81. package/generator/template/package.json +10 -4
  82. package/generator/template/script/.elm-pages/compiled-ports/custom-backend-task.mjs +7 -0
  83. package/generator/template/script/custom-backend-task.ts +3 -0
  84. package/generator/template/script/elm.json +61 -0
  85. package/generator/template/script/src/AddRoute.elm +312 -0
  86. package/generator/template/script/src/Stars.elm +42 -0
  87. package/package.json +30 -27
  88. package/src/ApiRoute.elm +249 -85
  89. package/src/BackendTask/Custom.elm +325 -0
  90. package/src/BackendTask/Env.elm +90 -0
  91. package/src/{DataSource → BackendTask}/File.elm +171 -56
  92. package/src/{DataSource → BackendTask}/Glob.elm +136 -125
  93. package/src/BackendTask/Http.elm +679 -0
  94. package/src/{DataSource → BackendTask}/Internal/Glob.elm +1 -1
  95. package/src/BackendTask/Internal/Request.elm +69 -0
  96. package/src/BackendTask/Random.elm +79 -0
  97. package/src/BackendTask/Time.elm +47 -0
  98. package/src/BackendTask.elm +531 -0
  99. package/src/FatalError.elm +90 -0
  100. package/src/FormData.elm +21 -18
  101. package/src/Head/Seo.elm +4 -4
  102. package/src/Head.elm +237 -7
  103. package/src/Internal/ApiRoute.elm +7 -5
  104. package/src/Internal/Request.elm +84 -4
  105. package/src/PageServerResponse.elm +6 -1
  106. package/src/Pages/ConcurrentSubmission.elm +127 -0
  107. package/src/Pages/Form.elm +340 -0
  108. package/src/Pages/FormData.elm +19 -0
  109. package/src/Pages/GeneratorProgramConfig.elm +15 -0
  110. package/src/Pages/Internal/FatalError.elm +5 -0
  111. package/src/Pages/Internal/Msg.elm +93 -0
  112. package/src/Pages/Internal/NotFoundReason.elm +4 -4
  113. package/src/Pages/Internal/Platform/Cli.elm +629 -767
  114. package/src/Pages/Internal/Platform/CompatibilityKey.elm +6 -0
  115. package/src/Pages/Internal/Platform/Effect.elm +1 -2
  116. package/src/Pages/Internal/Platform/GeneratorApplication.elm +379 -0
  117. package/src/Pages/Internal/Platform/StaticResponses.elm +65 -276
  118. package/src/Pages/Internal/Platform/ToJsPayload.elm +6 -9
  119. package/src/Pages/Internal/Platform.elm +330 -203
  120. package/src/Pages/Internal/ResponseSketch.elm +2 -2
  121. package/src/Pages/Internal/Script.elm +17 -0
  122. package/src/Pages/Internal/StaticHttpBody.elm +35 -1
  123. package/src/Pages/Manifest.elm +52 -11
  124. package/src/Pages/Navigation.elm +85 -0
  125. package/src/Pages/PageUrl.elm +26 -12
  126. package/src/Pages/ProgramConfig.elm +32 -22
  127. package/src/Pages/Script.elm +166 -0
  128. package/src/Pages/SiteConfig.elm +3 -2
  129. package/src/Pages/StaticHttp/Request.elm +2 -2
  130. package/src/Pages/StaticHttpRequest.elm +23 -99
  131. package/src/Pages/Url.elm +3 -3
  132. package/src/PagesMsg.elm +88 -0
  133. package/src/QueryParams.elm +21 -172
  134. package/src/RenderRequest.elm +7 -7
  135. package/src/RequestsAndPending.elm +37 -20
  136. package/src/Result/Extra.elm +26 -0
  137. package/src/Scaffold/Form.elm +569 -0
  138. package/src/Scaffold/Route.elm +1431 -0
  139. package/src/Server/Request.elm +476 -1001
  140. package/src/Server/Response.elm +130 -36
  141. package/src/Server/Session.elm +181 -111
  142. package/src/Server/SetCookie.elm +80 -32
  143. package/src/Stub.elm +53 -0
  144. package/src/Test/Html/Internal/ElmHtml/ToString.elm +8 -9
  145. package/src/{Path.elm → UrlPath.elm} +33 -36
  146. package/generator/template/public/images/icon-png.png +0 -0
  147. package/src/DataSource/Env.elm +0 -38
  148. package/src/DataSource/Http.elm +0 -446
  149. package/src/DataSource/Internal/Request.elm +0 -20
  150. package/src/DataSource/Port.elm +0 -90
  151. package/src/DataSource.elm +0 -538
  152. package/src/Form/Field.elm +0 -717
  153. package/src/Form/FieldStatus.elm +0 -36
  154. package/src/Form/FieldView.elm +0 -417
  155. package/src/Form/FormData.elm +0 -22
  156. package/src/Form/Validation.elm +0 -391
  157. package/src/Form/Value.elm +0 -118
  158. package/src/Form.elm +0 -1683
  159. package/src/FormDecoder.elm +0 -102
  160. package/src/Pages/FormState.elm +0 -256
  161. package/src/Pages/Generate.elm +0 -1151
  162. package/src/Pages/Internal/Form.elm +0 -17
  163. package/src/Pages/Msg.elm +0 -79
  164. package/src/Pages/Transition.elm +0 -70
@@ -1,1151 +0,0 @@
1
- module Pages.Generate exposing
2
- ( buildWithLocalState, buildNoState, Builder
3
- , Type(..)
4
- , serverRender
5
- , preRender, single
6
- )
7
-
8
- {-|
9
-
10
-
11
- ## Initializing the Generator Builder
12
-
13
- @docs buildWithLocalState, buildNoState, Builder
14
-
15
- @docs Type
16
-
17
-
18
- ## Generating Server-Rendered Pages
19
-
20
- @docs serverRender
21
-
22
-
23
- ## Generating pre-rendered pages
24
-
25
- @docs preRender, single
26
-
27
- -}
28
-
29
- import Elm
30
- import Elm.Annotation
31
- import Elm.Declare
32
- import Pages.Internal.RoutePattern as RoutePattern
33
-
34
-
35
- {-| -}
36
- type Type
37
- = Alias Elm.Annotation.Annotation
38
- | Custom (List Elm.Variant)
39
-
40
-
41
- typeToDeclaration : String -> Type -> Elm.Declaration
42
- typeToDeclaration name type_ =
43
- case type_ of
44
- Alias annotation ->
45
- Elm.alias name annotation
46
-
47
- Custom variants ->
48
- Elm.customType name variants
49
-
50
-
51
- {-| -}
52
- type Builder
53
- = ServerRender
54
- { data : ( Type, Elm.Expression -> Elm.Expression )
55
- , action : ( Type, Elm.Expression -> Elm.Expression )
56
- , head : Elm.Expression -> Elm.Expression
57
- , moduleName : List String
58
- }
59
- | PreRender
60
- { data : ( Type, Elm.Expression -> Elm.Expression )
61
- , pages : Maybe Elm.Expression
62
- , head : Elm.Expression -> Elm.Expression
63
- , moduleName : List String
64
- }
65
-
66
-
67
- {-| -}
68
- serverRender :
69
- { data : ( Type, Elm.Expression -> Elm.Expression )
70
- , action : ( Type, Elm.Expression -> Elm.Expression )
71
- , head : Elm.Expression -> Elm.Expression
72
- , moduleName : List String
73
- }
74
- -> Builder
75
- serverRender =
76
- ServerRender
77
-
78
-
79
- {-| -}
80
- preRender :
81
- { data : ( Type, Elm.Expression -> Elm.Expression )
82
- , pages : Elm.Expression
83
- , head : Elm.Expression -> Elm.Expression
84
- , moduleName : List String
85
- }
86
- -> Builder
87
- preRender input =
88
- --let
89
- -- hasDynamicRouteSegments : Bool
90
- -- hasDynamicRouteSegments =
91
- -- RoutePattern.fromModuleName input.moduleName
92
- -- -- TODO give error if not parseable here
93
- -- |> Maybe.map RoutePattern.hasRouteParams
94
- -- |> Maybe.withDefault False
95
- --in
96
- PreRender
97
- { data = input.data
98
- , pages =
99
- input.pages
100
- |> Elm.withType
101
- (Elm.Annotation.namedWith [ "DataSource" ]
102
- "DataSource"
103
- [ Elm.Annotation.list <| Elm.Annotation.named [] "RouteParams"
104
- ]
105
- )
106
- |> Just
107
- , head = input.head
108
- , moduleName = input.moduleName
109
- }
110
-
111
-
112
- {-| -}
113
- single :
114
- { data : ( Type, Elm.Expression )
115
- , head : Elm.Expression -> Elm.Expression
116
- , moduleName : List String
117
- }
118
- -> Builder
119
- single input =
120
- PreRender
121
- { data = ( Tuple.first input.data, \_ -> Tuple.second input.data )
122
- , pages = Nothing
123
- , head = input.head
124
- , moduleName = input.moduleName
125
- }
126
-
127
-
128
- {-| -}
129
- buildNoState :
130
- { view : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
131
- }
132
- -> Builder
133
- -> Elm.File
134
- buildNoState definitions builder_ =
135
- case builder_ of
136
- ServerRender builder ->
137
- userFunction builder.moduleName
138
- { view = \_ -> definitions.view
139
- , localState = Nothing
140
- , data = builder.data |> Tuple.second
141
- , action = builder.action |> Tuple.second |> Action
142
- , head = builder.head
143
- , types =
144
- { model = Alias (Elm.Annotation.record [])
145
- , msg = Alias Elm.Annotation.unit
146
- , data = builder.data |> Tuple.first
147
- , actionData = builder.action |> Tuple.first
148
- }
149
- }
150
-
151
- PreRender builder ->
152
- userFunction builder.moduleName
153
- { view = \_ -> definitions.view
154
- , localState = Nothing
155
- , data = builder.data |> Tuple.second
156
- , action = builder.pages |> Pages
157
- , head = builder.head
158
- , types =
159
- { model = Alias (Elm.Annotation.record [])
160
- , msg = Alias Elm.Annotation.unit
161
- , data = builder.data |> Tuple.first
162
- , actionData =
163
- Elm.Annotation.namedWith [ "DataSource" ]
164
- "DataSource"
165
- [ Elm.Annotation.list (Elm.Annotation.named [] "RouteParams")
166
- ]
167
- |> Alias
168
- }
169
- }
170
-
171
-
172
- {-| -}
173
- buildWithLocalState :
174
- { view : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
175
- , update : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
176
- , init : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
177
- , subscriptions : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
178
- , msg : Type
179
- , model : Type
180
- }
181
- -> Builder
182
- -> Elm.File
183
- buildWithLocalState definitions builder_ =
184
- case builder_ of
185
- ServerRender builder ->
186
- userFunction builder.moduleName
187
- { view = definitions.view
188
- , localState =
189
- Just
190
- { update = definitions.update
191
- , init = definitions.init
192
- , subscriptions = definitions.subscriptions
193
- }
194
- , data = builder.data |> Tuple.second
195
- , action = builder.action |> Tuple.second |> Action
196
- , head = builder.head
197
- , types =
198
- { model = definitions.model
199
- , msg = definitions.msg
200
- , data = builder.data |> Tuple.first
201
- , actionData = builder.action |> Tuple.first
202
- }
203
- }
204
-
205
- PreRender builder ->
206
- userFunction builder.moduleName
207
- { view = definitions.view
208
- , localState =
209
- Just
210
- { update = definitions.update
211
- , init = definitions.init
212
- , subscriptions = definitions.subscriptions
213
- }
214
- , data = builder.data |> Tuple.second
215
- , action = builder.pages |> Pages
216
- , head = builder.head
217
- , types =
218
- { model = definitions.model
219
- , msg = definitions.msg
220
- , data = builder.data |> Tuple.first
221
- , actionData =
222
- Elm.Annotation.namedWith [ "DataSource" ]
223
- "DataSource"
224
- [ Elm.Annotation.list (Elm.Annotation.named [] "RouteParams")
225
- ]
226
- |> Alias
227
- }
228
- }
229
-
230
-
231
- type ActionOrPages
232
- = Action (Elm.Expression -> Elm.Expression)
233
- | Pages (Maybe Elm.Expression)
234
-
235
-
236
- {-| -}
237
- userFunction :
238
- List String
239
- ->
240
- { view : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
241
- , localState :
242
- Maybe
243
- { update : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
244
- , init : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
245
- , subscriptions : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
246
- }
247
- , data : Elm.Expression -> Elm.Expression
248
- , action : ActionOrPages
249
- , head : Elm.Expression -> Elm.Expression
250
- , types : { model : Type, msg : Type, data : Type, actionData : Type }
251
- }
252
- -> Elm.File
253
- userFunction moduleName definitions =
254
- let
255
- viewFn :
256
- { declaration : Elm.Declaration
257
- , call : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
258
- , callFrom : List String -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
259
- }
260
- viewFn =
261
- case definitions.localState of
262
- Just _ ->
263
- Elm.Declare.fn4 "view"
264
- ( "maybeUrl"
265
- , "PageUrl"
266
- |> Elm.Annotation.named [ "Pages", "PageUrl" ]
267
- |> Elm.Annotation.maybe
268
- |> Just
269
- )
270
- ( "sharedModel"
271
- , Nothing
272
- )
273
- ( "model", Just (Elm.Annotation.named [] "Model") )
274
- ( "app", Just appType )
275
- definitions.view
276
-
277
- Nothing ->
278
- let
279
- viewDeclaration :
280
- { declaration : Elm.Declaration
281
- , call : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
282
- , callFrom : List String -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
283
- }
284
- viewDeclaration =
285
- Elm.Declare.fn3 "view"
286
- ( "maybeUrl"
287
- , "PageUrl"
288
- |> Elm.Annotation.named [ "Pages", "PageUrl" ]
289
- |> Elm.Annotation.maybe
290
- |> Just
291
- )
292
- ( "sharedModel"
293
- , Nothing
294
- )
295
- ( "app", Just appType )
296
- (definitions.view Elm.unit)
297
- in
298
- { declaration = viewDeclaration.declaration
299
- , call = \_ -> viewDeclaration.call
300
- , callFrom = \a _ c d -> viewDeclaration.callFrom a c d
301
- }
302
-
303
- localDefinitions :
304
- Maybe
305
- { updateFn :
306
- { declaration : Elm.Declaration
307
- , call : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
308
- , callFrom : List String -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
309
- }
310
- , initFn : { declaration : Elm.Declaration, call : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression, callFrom : List String -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression }
311
- , subscriptionsFn : { declaration : Elm.Declaration, call : Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression, callFrom : List String -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression }
312
- }
313
- localDefinitions =
314
- definitions.localState
315
- |> Maybe.map
316
- (\localState ->
317
- { updateFn =
318
- Elm.Declare.fn5 "update"
319
- ( "pageUrl"
320
- , "PageUrl"
321
- |> Elm.Annotation.named [ "Pages", "PageUrl" ]
322
- |> Just
323
- )
324
- ( "sharedModel", Nothing )
325
- ( "app", Just appType )
326
- ( "msg", Just (Elm.Annotation.named [] "Msg") )
327
- ( "model", Just (Elm.Annotation.named [] "Model") )
328
- localState.update
329
- , initFn =
330
- Elm.Declare.fn3 "init"
331
- ( "pageUrl"
332
- , "PageUrl"
333
- |> Elm.Annotation.named [ "Pages", "PageUrl" ]
334
- |> Elm.Annotation.maybe
335
- |> Just
336
- )
337
- ( "sharedModel", Nothing )
338
- ( "app", Just appType )
339
- localState.init
340
- , subscriptionsFn =
341
- Elm.Declare.fn5
342
- "subscriptions"
343
- ( "maybePageUrl"
344
- , "PageUrl"
345
- |> Elm.Annotation.named [ "Pages", "PageUrl" ]
346
- |> Elm.Annotation.maybe
347
- |> Just
348
- )
349
- ( "routeParams", Nothing )
350
- ( "path", Nothing )
351
- ( "sharedModel", Nothing )
352
- ( "model", Nothing )
353
- localState.subscriptions
354
- }
355
- )
356
-
357
- dataFn : { declaration : Elm.Declaration, call : List Elm.Expression -> Elm.Expression, callFrom : List String -> List Elm.Expression -> Elm.Expression }
358
- dataFn =
359
- case definitions.action of
360
- Pages Nothing ->
361
- Elm.Declare.function "data"
362
- []
363
- (\_ ->
364
- definitions.data Elm.unit
365
- |> Elm.withType
366
- (case definitions.action of
367
- Pages _ ->
368
- Elm.Annotation.namedWith [ "DataSource" ]
369
- "DataSource"
370
- [ Elm.Annotation.named [] "Data"
371
- ]
372
-
373
- Action _ ->
374
- myType "Data"
375
- )
376
- )
377
-
378
- _ ->
379
- Elm.Declare.function "data"
380
- [ ( "routeParams"
381
- , "RouteParams"
382
- |> Elm.Annotation.named []
383
- |> Just
384
- )
385
- ]
386
- (\args ->
387
- case args of
388
- [ arg ] ->
389
- definitions.data arg
390
- |> Elm.withType
391
- (case definitions.action of
392
- Pages _ ->
393
- Elm.Annotation.namedWith [ "DataSource" ]
394
- "DataSource"
395
- [ Elm.Annotation.named [] "Data"
396
- ]
397
-
398
- Action _ ->
399
- myType "Data"
400
- )
401
-
402
- _ ->
403
- Elm.unit
404
- )
405
-
406
- actionFn : Maybe { declaration : Elm.Declaration, call : List Elm.Expression -> Elm.Expression, callFrom : List String -> List Elm.Expression -> Elm.Expression }
407
- actionFn =
408
- case definitions.action of
409
- Action action_ ->
410
- Elm.Declare.function "action"
411
- [ ( "routeParams"
412
- , "RouteParams"
413
- |> Elm.Annotation.named []
414
- |> Just
415
- )
416
- ]
417
- (\args ->
418
- case args of
419
- [ arg ] ->
420
- action_ arg |> Elm.withType (myType "ActionData")
421
-
422
- _ ->
423
- Elm.unit
424
- )
425
- |> Just
426
-
427
- Pages pages_ ->
428
- pages_
429
- |> Maybe.map
430
- (\justPagesExpression ->
431
- Elm.Declare.function "pages"
432
- []
433
- (\_ -> justPagesExpression)
434
- )
435
-
436
- headFn : { declaration : Elm.Declaration, call : Elm.Expression -> Elm.Expression, callFrom : List String -> Elm.Expression -> Elm.Expression }
437
- headFn =
438
- Elm.Declare.fn "head"
439
- ( "app", Just appType )
440
- (definitions.head
441
- >> Elm.withType
442
- (Elm.Annotation.list
443
- (Elm.Annotation.named [ "Head" ] "Tag")
444
- )
445
- )
446
- in
447
- Elm.file ("Route" :: moduleName)
448
- ([ definitions.types.model |> typeToDeclaration "Model"
449
- , definitions.types.msg |> typeToDeclaration "Msg"
450
- , Elm.alias "RouteParams"
451
- (Elm.Annotation.record
452
- (RoutePattern.fromModuleName moduleName
453
- -- TODO give error if not parseable here
454
- |> Maybe.map RoutePattern.toRouteParamsRecord
455
- |> Maybe.withDefault []
456
- )
457
- )
458
- , Elm.declaration "route"
459
- (case definitions.action of
460
- Action _ ->
461
- serverRender_
462
- { action =
463
- \routeParams ->
464
- actionFn
465
- |> Maybe.map
466
- (\justActionFn ->
467
- justActionFn.call [ routeParams ]
468
- |> Elm.withType (myType "ActionData")
469
- )
470
- |> Maybe.withDefault Elm.unit
471
- , data =
472
- \routeParams ->
473
- dataFn.call [ routeParams ]
474
- |> Elm.withType (myType "Data")
475
- , head = headFn.call
476
- }
477
-
478
- Pages _ ->
479
- (case actionFn of
480
- Nothing ->
481
- single_
482
- { data =
483
- dataFn.call []
484
- |> Elm.withType
485
- (Elm.Annotation.namedWith [ "DataSource" ]
486
- "DataSource"
487
- [ Elm.Annotation.named [] "Data"
488
- ]
489
- )
490
- , head = headFn.call
491
- }
492
-
493
- Just justActionFn ->
494
- preRender_
495
- { pages = justActionFn.call []
496
- , data =
497
- \routeParams ->
498
- dataFn.call [ routeParams ]
499
- |> Elm.withType
500
- (Elm.Annotation.namedWith [ "DataSource" ]
501
- "DataSource"
502
- [ Elm.Annotation.named [] "Data"
503
- ]
504
- )
505
- , head = headFn.call
506
- }
507
- )
508
- |> (case localDefinitions of
509
- Just local ->
510
- buildWithLocalState_
511
- { view = viewFn.call
512
- , update = local.updateFn.call
513
- , init = local.initFn.call
514
- , subscriptions = local.subscriptionsFn.call
515
- }
516
- >> Elm.withType
517
- (Elm.Annotation.namedWith [ "RouteBuilder" ]
518
- "StatefulRoute"
519
- [ localType "RouteParams"
520
- , localType "Data"
521
- , localType "ActionData"
522
- , localType "Model"
523
- , localType "Msg"
524
- ]
525
- )
526
-
527
- Nothing ->
528
- buildNoState_
529
- { view = viewFn.call Elm.unit
530
- }
531
- >> Elm.withType
532
- (Elm.Annotation.namedWith [ "RouteBuilder" ]
533
- "StatelessRoute"
534
- [ localType "RouteParams"
535
- , localType "Data"
536
- , localType "ActionData"
537
- ]
538
- )
539
- )
540
- )
541
- ]
542
- ++ (case localDefinitions of
543
- Just local ->
544
- [ local.initFn.declaration
545
- , local.updateFn.declaration
546
- , local.subscriptionsFn.declaration
547
- ]
548
-
549
- Nothing ->
550
- []
551
- )
552
- ++ [ definitions.types.data |> typeToDeclaration "Data"
553
- , definitions.types.actionData |> typeToDeclaration "ActionData"
554
- , dataFn.declaration
555
- , headFn.declaration
556
- , viewFn.declaration
557
- ]
558
- ++ ([ actionFn |> Maybe.map .declaration
559
- ]
560
- |> List.filterMap identity
561
- )
562
- )
563
-
564
-
565
- localType : String -> Elm.Annotation.Annotation
566
- localType =
567
- Elm.Annotation.named []
568
-
569
-
570
- myType : String -> Elm.Annotation.Annotation
571
- myType dataType =
572
- Elm.Annotation.namedWith [ "Server", "Request" ]
573
- "Parser"
574
- [ Elm.Annotation.namedWith [ "DataSource" ]
575
- "DataSource"
576
- [ Elm.Annotation.namedWith [ "Server", "Response" ]
577
- "Response"
578
- [ Elm.Annotation.named [] dataType
579
- , Elm.Annotation.named [ "ErrorPage" ] "ErrorPage"
580
- ]
581
- ]
582
- ]
583
-
584
-
585
- appType : Elm.Annotation.Annotation
586
- appType =
587
- Elm.Annotation.namedWith [ "RouteBuilder" ]
588
- "StaticPayload"
589
- [ Elm.Annotation.named [] "Data"
590
- , Elm.Annotation.named [] "ActionData"
591
- , Elm.Annotation.named [] "RouteParams"
592
- ]
593
-
594
-
595
- serverRender_ :
596
- { data : Elm.Expression -> Elm.Expression
597
- , action : Elm.Expression -> Elm.Expression
598
- , head : Elm.Expression -> Elm.Expression
599
- }
600
- -> Elm.Expression
601
- serverRender_ serverRenderArg =
602
- Elm.apply
603
- (Elm.value
604
- { importFrom = [ "RouteBuilder" ]
605
- , name = "serverRender"
606
- , annotation =
607
- Just
608
- (Elm.Annotation.function
609
- [ Elm.Annotation.record
610
- [ ( "data"
611
- , Elm.Annotation.function
612
- [ Elm.Annotation.var "routeParams" ]
613
- (Elm.Annotation.namedWith
614
- [ "Server", "Request" ]
615
- "Parser"
616
- [ Elm.Annotation.namedWith
617
- [ "DataSource" ]
618
- "DataSource"
619
- [ Elm.Annotation.namedWith
620
- [ "Server", "Response" ]
621
- "Response"
622
- [ Elm.Annotation.var "data"
623
- , Elm.Annotation.namedWith
624
- [ "ErrorPage" ]
625
- "ErrorPage"
626
- []
627
- ]
628
- ]
629
- ]
630
- )
631
- )
632
- , ( "action"
633
- , Elm.Annotation.function
634
- [ Elm.Annotation.var "routeParams" ]
635
- (Elm.Annotation.namedWith
636
- [ "Server", "Request" ]
637
- "Parser"
638
- [ Elm.Annotation.namedWith
639
- [ "DataSource" ]
640
- "DataSource"
641
- [ Elm.Annotation.namedWith
642
- [ "Server", "Response" ]
643
- "Response"
644
- [ Elm.Annotation.var "action"
645
- , Elm.Annotation.namedWith
646
- [ "ErrorPage" ]
647
- "ErrorPage"
648
- []
649
- ]
650
- ]
651
- ]
652
- )
653
- )
654
- , ( "head"
655
- , Elm.Annotation.function
656
- [ Elm.Annotation.namedWith
657
- [ "RouteBuilder" ]
658
- "StaticPayload"
659
- [ Elm.Annotation.var "data"
660
- , Elm.Annotation.var "action"
661
- , Elm.Annotation.var "routeParams"
662
- ]
663
- ]
664
- (Elm.Annotation.list
665
- (Elm.Annotation.namedWith [ "Head" ] "Tag" [])
666
- )
667
- )
668
- ]
669
- ]
670
- (Elm.Annotation.namedWith
671
- [ "RouteBuilder" ]
672
- "Builder"
673
- [ Elm.Annotation.var "routeParams"
674
- , Elm.Annotation.var "data"
675
- , Elm.Annotation.var "action"
676
- ]
677
- )
678
- )
679
- }
680
- )
681
- [ Elm.record
682
- [ Tuple.pair
683
- "data"
684
- (Elm.functionReduced "serverRenderUnpack" serverRenderArg.data)
685
- , Tuple.pair
686
- "action"
687
- (Elm.functionReduced "serverRenderUnpack" serverRenderArg.action)
688
- , Tuple.pair
689
- "head"
690
- (Elm.functionReduced "serverRenderUnpack" serverRenderArg.head)
691
- ]
692
- ]
693
-
694
-
695
- preRender_ :
696
- { data : Elm.Expression -> Elm.Expression
697
- , pages : Elm.Expression
698
- , head : Elm.Expression -> Elm.Expression
699
- }
700
- -> Elm.Expression
701
- preRender_ serverRenderArg =
702
- Elm.apply
703
- (Elm.value
704
- { importFrom = [ "RouteBuilder" ]
705
- , name = "preRender"
706
- , annotation =
707
- Just
708
- (Elm.Annotation.function
709
- [ Elm.Annotation.record
710
- [ ( "data"
711
- , Elm.Annotation.function
712
- [ Elm.Annotation.var "routeParams" ]
713
- (Elm.Annotation.namedWith
714
- [ "DataSource" ]
715
- "DataSource"
716
- [ Elm.Annotation.var "data"
717
- ]
718
- )
719
- )
720
- , ( "pages"
721
- , Elm.Annotation.namedWith
722
- [ "DataSource" ]
723
- "DataSource"
724
- [ Elm.Annotation.list (Elm.Annotation.named [] "RouteParams")
725
- ]
726
- )
727
- , ( "head"
728
- , Elm.Annotation.function
729
- [ Elm.Annotation.namedWith
730
- [ "RouteBuilder" ]
731
- "StaticPayload"
732
- [ Elm.Annotation.var "data"
733
- , Elm.Annotation.var "action"
734
- , Elm.Annotation.var "routeParams"
735
- ]
736
- ]
737
- (Elm.Annotation.list
738
- (Elm.Annotation.namedWith [ "Head" ] "Tag" [])
739
- )
740
- )
741
- ]
742
- ]
743
- (Elm.Annotation.namedWith
744
- [ "RouteBuilder" ]
745
- "Builder"
746
- [ Elm.Annotation.named [] "RouteParams"
747
- , Elm.Annotation.named [] "Data"
748
- , Elm.Annotation.named [] "Action"
749
- ]
750
- )
751
- )
752
- }
753
- )
754
- [ Elm.record
755
- [ Tuple.pair "data" (Elm.functionReduced "serverRenderUnpack" serverRenderArg.data)
756
- , Tuple.pair "pages" serverRenderArg.pages
757
- , Tuple.pair "head" (Elm.functionReduced "serverRenderUnpack" serverRenderArg.head)
758
- ]
759
- ]
760
-
761
-
762
- single_ :
763
- { data : Elm.Expression
764
- , head : Elm.Expression -> Elm.Expression
765
- }
766
- -> Elm.Expression
767
- single_ serverRenderArg =
768
- Elm.apply
769
- (Elm.value
770
- { importFrom = [ "RouteBuilder" ]
771
- , name = "single"
772
- , annotation =
773
- Just
774
- (Elm.Annotation.function
775
- [ Elm.Annotation.record
776
- [ ( "data"
777
- , Elm.Annotation.namedWith
778
- [ "DataSource" ]
779
- "DataSource"
780
- [ Elm.Annotation.var "data"
781
- ]
782
- )
783
- , ( "head"
784
- , Elm.Annotation.function
785
- [ Elm.Annotation.namedWith
786
- [ "RouteBuilder" ]
787
- "StaticPayload"
788
- [ Elm.Annotation.var "data"
789
- , Elm.Annotation.var "action"
790
- , Elm.Annotation.var "routeParams"
791
- ]
792
- ]
793
- (Elm.Annotation.list
794
- (Elm.Annotation.namedWith [ "Head" ] "Tag" [])
795
- )
796
- )
797
- ]
798
- ]
799
- (Elm.Annotation.namedWith
800
- [ "RouteBuilder" ]
801
- "Builder"
802
- [ Elm.Annotation.named [] "RouteParams"
803
- , Elm.Annotation.named [] "Data"
804
- , Elm.Annotation.named [] "Action"
805
- ]
806
- )
807
- )
808
- }
809
- )
810
- [ Elm.record
811
- [ Tuple.pair "data" serverRenderArg.data
812
- , Tuple.pair "head" (Elm.functionReduced "serverRenderUnpack" serverRenderArg.head)
813
- ]
814
- ]
815
-
816
-
817
- buildWithLocalState_ :
818
- { view :
819
- Elm.Expression
820
- -> Elm.Expression
821
- -> Elm.Expression
822
- -> Elm.Expression
823
- -> Elm.Expression
824
- , init :
825
- Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
826
- , update :
827
- Elm.Expression
828
- -> Elm.Expression
829
- -> Elm.Expression
830
- -> Elm.Expression
831
- -> Elm.Expression
832
- -> Elm.Expression
833
- , subscriptions :
834
- Elm.Expression
835
- -> Elm.Expression
836
- -> Elm.Expression
837
- -> Elm.Expression
838
- -> Elm.Expression
839
- -> Elm.Expression
840
- }
841
- -> Elm.Expression
842
- -> Elm.Expression
843
- buildWithLocalState_ buildWithLocalStateArg buildWithLocalStateArg0 =
844
- Elm.apply
845
- (Elm.value
846
- { importFrom = [ "RouteBuilder" ]
847
- , name = "buildWithLocalState"
848
- , annotation =
849
- Just
850
- (Elm.Annotation.function
851
- [ Elm.Annotation.record
852
- [ ( "view"
853
- , Elm.Annotation.function
854
- [ Elm.Annotation.maybe
855
- (Elm.Annotation.namedWith
856
- [ "Pages", "PageUrl" ]
857
- "PageUrl"
858
- []
859
- )
860
- , Elm.Annotation.namedWith [ "Shared" ] "Model" []
861
- , Elm.Annotation.var "model"
862
- , Elm.Annotation.namedWith
863
- [ "RouteBuilder" ]
864
- "StaticPayload"
865
- [ Elm.Annotation.var "data"
866
- , Elm.Annotation.var "action"
867
- , Elm.Annotation.var "routeParams"
868
- ]
869
- ]
870
- (Elm.Annotation.namedWith
871
- [ "View" ]
872
- "View"
873
- [ Elm.Annotation.namedWith
874
- [ "Pages", "Msg" ]
875
- "Msg"
876
- [ Elm.Annotation.var "msg" ]
877
- ]
878
- )
879
- )
880
- , ( "init"
881
- , Elm.Annotation.function
882
- [ Elm.Annotation.maybe
883
- (Elm.Annotation.namedWith
884
- [ "Pages", "PageUrl" ]
885
- "PageUrl"
886
- []
887
- )
888
- , Elm.Annotation.namedWith [ "Shared" ] "Model" []
889
- , Elm.Annotation.namedWith
890
- [ "RouteBuilder" ]
891
- "StaticPayload"
892
- [ Elm.Annotation.var "data"
893
- , Elm.Annotation.var "action"
894
- , Elm.Annotation.var "routeParams"
895
- ]
896
- ]
897
- (Elm.Annotation.tuple
898
- (Elm.Annotation.var "model")
899
- (Elm.Annotation.namedWith
900
- [ "Effect" ]
901
- "Effect"
902
- [ Elm.Annotation.var "msg" ]
903
- )
904
- )
905
- )
906
- , ( "update"
907
- , Elm.Annotation.function
908
- [ Elm.Annotation.namedWith
909
- [ "Pages", "PageUrl" ]
910
- "PageUrl"
911
- []
912
- , Elm.Annotation.namedWith [ "Shared" ] "Model" []
913
- , Elm.Annotation.namedWith
914
- [ "RouteBuilder" ]
915
- "StaticPayload"
916
- [ Elm.Annotation.var "data"
917
- , Elm.Annotation.var "action"
918
- , Elm.Annotation.var "routeParams"
919
- ]
920
- , Elm.Annotation.var "msg"
921
- , Elm.Annotation.var "model"
922
- ]
923
- (Elm.Annotation.tuple
924
- (Elm.Annotation.var "model")
925
- (Elm.Annotation.namedWith
926
- [ "Effect" ]
927
- "Effect"
928
- [ Elm.Annotation.var "msg" ]
929
- )
930
- )
931
- )
932
- , ( "subscriptions"
933
- , Elm.Annotation.function
934
- [ Elm.Annotation.maybe
935
- (Elm.Annotation.namedWith
936
- [ "Pages", "PageUrl" ]
937
- "PageUrl"
938
- []
939
- )
940
- , Elm.Annotation.var "routeParams"
941
- , Elm.Annotation.namedWith [ "Path" ] "Path" []
942
- , Elm.Annotation.namedWith [ "Shared" ] "Model" []
943
- , Elm.Annotation.var "model"
944
- ]
945
- (Elm.Annotation.namedWith [] "Sub" [ Elm.Annotation.var "msg" ])
946
- )
947
- ]
948
- , Elm.Annotation.namedWith
949
- [ "RouteBuilder" ]
950
- "Builder"
951
- [ Elm.Annotation.var "routeParams"
952
- , Elm.Annotation.var "data"
953
- , Elm.Annotation.var "action"
954
- ]
955
- ]
956
- (Elm.Annotation.namedWith
957
- [ "RouteBuilder" ]
958
- "StatefulRoute"
959
- [ Elm.Annotation.var "routeParams"
960
- , Elm.Annotation.var "data"
961
- , Elm.Annotation.var "action"
962
- , Elm.Annotation.var "model"
963
- , Elm.Annotation.var "msg"
964
- ]
965
- )
966
- )
967
- }
968
- )
969
- [ Elm.record
970
- [ Tuple.pair
971
- "view"
972
- (Elm.functionReduced
973
- "buildWithLocalStateUnpack"
974
- (\functionReducedUnpack ->
975
- Elm.functionReduced
976
- "unpack"
977
- (\functionReducedUnpack0 ->
978
- Elm.functionReduced
979
- "unpack"
980
- (\functionReducedUnpack_2_1_2_0_2_2_0_1_0_2_0_0 ->
981
- Elm.functionReduced
982
- "unpack"
983
- (buildWithLocalStateArg.view
984
- functionReducedUnpack
985
- functionReducedUnpack0
986
- functionReducedUnpack_2_1_2_0_2_2_0_1_0_2_0_0
987
- )
988
- )
989
- )
990
- )
991
- )
992
- , Tuple.pair
993
- "init"
994
- (Elm.functionReduced
995
- "buildWithLocalStateUnpack"
996
- (\functionReducedUnpack ->
997
- Elm.functionReduced
998
- "unpack"
999
- (\functionReducedUnpack0 ->
1000
- Elm.functionReduced
1001
- "unpack"
1002
- (buildWithLocalStateArg.init
1003
- functionReducedUnpack
1004
- functionReducedUnpack0
1005
- )
1006
- )
1007
- )
1008
- )
1009
- , Tuple.pair
1010
- "update"
1011
- (Elm.functionReduced
1012
- "buildWithLocalStateUnpack"
1013
- (\functionReducedUnpack ->
1014
- Elm.functionReduced
1015
- "unpack"
1016
- (\functionReducedUnpack0 ->
1017
- Elm.functionReduced
1018
- "unpack"
1019
- (\functionReducedUnpack_2_1_2_0_2_2_2_1_0_2_0_0 ->
1020
- Elm.functionReduced
1021
- "unpack"
1022
- (\functionReducedUnpack_2_1_2_1_2_0_2_2_2_1_0_2_0_0 ->
1023
- Elm.functionReduced
1024
- "unpack"
1025
- (buildWithLocalStateArg.update
1026
- functionReducedUnpack
1027
- functionReducedUnpack0
1028
- functionReducedUnpack_2_1_2_0_2_2_2_1_0_2_0_0
1029
- functionReducedUnpack_2_1_2_1_2_0_2_2_2_1_0_2_0_0
1030
- )
1031
- )
1032
- )
1033
- )
1034
- )
1035
- )
1036
- , Tuple.pair
1037
- "subscriptions"
1038
- (Elm.functionReduced
1039
- "buildWithLocalStateUnpack"
1040
- (\functionReducedUnpack ->
1041
- Elm.functionReduced
1042
- "unpack"
1043
- (\functionReducedUnpack0 ->
1044
- Elm.functionReduced
1045
- "unpack"
1046
- (\functionReducedUnpack_2_1_2_0_2_2_3_1_0_2_0_0 ->
1047
- Elm.functionReduced
1048
- "unpack"
1049
- (\functionReducedUnpack_2_1_2_1_2_0_2_2_3_1_0_2_0_0 ->
1050
- Elm.functionReduced
1051
- "unpack"
1052
- (buildWithLocalStateArg.subscriptions
1053
- functionReducedUnpack
1054
- functionReducedUnpack0
1055
- functionReducedUnpack_2_1_2_0_2_2_3_1_0_2_0_0
1056
- functionReducedUnpack_2_1_2_1_2_0_2_2_3_1_0_2_0_0
1057
- )
1058
- )
1059
- )
1060
- )
1061
- )
1062
- )
1063
- ]
1064
- , buildWithLocalStateArg0
1065
- ]
1066
-
1067
-
1068
- buildNoState_ :
1069
- { view :
1070
- Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression
1071
- }
1072
- -> Elm.Expression
1073
- -> Elm.Expression
1074
- buildNoState_ buildNoStateArg buildNoStateArg0 =
1075
- Elm.apply
1076
- (Elm.value
1077
- { importFrom = [ "RouteBuilder" ]
1078
- , name = "buildNoState"
1079
- , annotation =
1080
- Just
1081
- (Elm.Annotation.function
1082
- [ Elm.Annotation.record
1083
- [ ( "view"
1084
- , Elm.Annotation.function
1085
- [ Elm.Annotation.maybe
1086
- (Elm.Annotation.namedWith
1087
- [ "Pages", "PageUrl" ]
1088
- "PageUrl"
1089
- []
1090
- )
1091
- , Elm.Annotation.namedWith [ "Shared" ] "Model" []
1092
- , Elm.Annotation.namedWith
1093
- [ "RouteBuilder" ]
1094
- "StaticPayload"
1095
- [ Elm.Annotation.var "data"
1096
- , Elm.Annotation.var "action"
1097
- , Elm.Annotation.var "routeParams"
1098
- ]
1099
- ]
1100
- (Elm.Annotation.namedWith
1101
- [ "View" ]
1102
- "View"
1103
- [ Elm.Annotation.namedWith
1104
- [ "Pages", "Msg" ]
1105
- "Msg"
1106
- [ Elm.Annotation.unit ]
1107
- ]
1108
- )
1109
- )
1110
- ]
1111
- , Elm.Annotation.namedWith
1112
- [ "RouteBuilder" ]
1113
- "Builder"
1114
- [ Elm.Annotation.var "routeParams"
1115
- , Elm.Annotation.var "data"
1116
- , Elm.Annotation.var "action"
1117
- ]
1118
- ]
1119
- (Elm.Annotation.namedWith
1120
- [ "RouteBuilder" ]
1121
- "StatefulRoute"
1122
- [ Elm.Annotation.var "routeParams"
1123
- , Elm.Annotation.var "data"
1124
- , Elm.Annotation.var "action"
1125
- , Elm.Annotation.record []
1126
- , Elm.Annotation.unit
1127
- ]
1128
- )
1129
- )
1130
- }
1131
- )
1132
- [ Elm.record
1133
- [ Tuple.pair
1134
- "view"
1135
- (Elm.functionReduced
1136
- "buildNoStateUnpack"
1137
- (\functionReducedUnpack ->
1138
- Elm.functionReduced
1139
- "unpack"
1140
- (\functionReducedUnpack0 ->
1141
- Elm.functionReduced
1142
- "unpack"
1143
- (buildNoStateArg.view functionReducedUnpack
1144
- functionReducedUnpack0
1145
- )
1146
- )
1147
- )
1148
- )
1149
- ]
1150
- , buildNoStateArg0
1151
- ]