elm-pages 3.0.9 → 3.0.10

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 (47) hide show
  1. package/README.md +1 -1
  2. package/codegen/elm-pages-codegen.cjs +732 -350
  3. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmo +0 -0
  4. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmo +0 -0
  5. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  6. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
  7. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  8. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm.json +1 -1
  9. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +2 -2
  10. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +7328 -7699
  11. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  12. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_supervisor.js +2 -2
  13. package/generator/dead-code-review/elm.json +2 -2
  14. package/generator/dead-code-review/src/Pages/Review/DeadCodeEliminateData.elm +1 -1
  15. package/generator/dead-code-review/src/ReviewConfig.elm +3 -1
  16. package/generator/dead-code-review/tests/Pages/Review/DeadCodeEliminateDataTest.elm +63 -0
  17. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  18. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
  19. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  20. package/generator/review/elm-stuff/tests-0.19.1/elm.json +1 -1
  21. package/generator/review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +2 -2
  22. package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +2768 -3160
  23. package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  24. package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +2 -2
  25. package/generator/review/elm.json +7 -8
  26. package/generator/src/build.js +3 -3
  27. package/generator/src/cli.js +1 -1
  28. package/generator/src/codegen.js +1 -1
  29. package/generator/src/compatibility-key.js +2 -2
  30. package/generator/src/render.js +1 -6
  31. package/generator/template/app/ErrorPage.elm +15 -12
  32. package/generator/template/codegen/elm.codegen.json +2 -2
  33. package/generator/template/elm-tooling.json +1 -1
  34. package/generator/template/gitignore +2 -1
  35. package/generator/template/netlify.toml +1 -1
  36. package/generator/template/package.json +6 -5
  37. package/generator/template/script/elm.json +3 -3
  38. package/generator/template/script/src/AddStaticRoute.elm +87 -0
  39. package/package.json +25 -24
  40. package/src/ApiRoute.elm +45 -34
  41. package/src/BackendTask/File.elm +2 -1
  42. package/src/BackendTask.elm +28 -40
  43. package/src/FatalError.elm +2 -2
  44. package/src/Head/Seo.elm +3 -3
  45. package/src/Pages/Internal/Platform/CompatibilityKey.elm +1 -1
  46. package/src/Pages/Manifest.elm +2 -2
  47. package/src/Scaffold/Route.elm +95 -49
package/src/Head/Seo.elm CHANGED
@@ -52,8 +52,8 @@ includes common meta tags used for rich link previews, namely [OpenGraph tags](h
52
52
  import DateOrDateTime exposing (DateOrDateTime)
53
53
  import Head
54
54
  import Head.Twitter as Twitter
55
- import LanguageTag.Country
56
55
  import LanguageTag.Language
56
+ import LanguageTag.Region
57
57
  import MimeType exposing (MimeType)
58
58
  import Pages.Url
59
59
 
@@ -315,7 +315,7 @@ localeToString : Locale -> String
315
315
  localeToString ( language, territory ) =
316
316
  LanguageTag.Language.toCodeString language
317
317
  ++ "_"
318
- ++ LanguageTag.Country.toCodeString territory
318
+ ++ LanguageTag.Region.toCodeString territory
319
319
 
320
320
 
321
321
  tagsForCommon : Common -> List ( String, Maybe Head.AttributeValue )
@@ -361,7 +361,7 @@ tagsForAudio audio =
361
361
 
362
362
 
363
363
  type alias Locale =
364
- ( LanguageTag.Language.Language, LanguageTag.Country.Country )
364
+ ( LanguageTag.Language.Language, LanguageTag.Region.Region )
365
365
 
366
366
 
367
367
  type Content
@@ -3,4 +3,4 @@ module Pages.Internal.Platform.CompatibilityKey exposing (currentCompatibilityKe
3
3
 
4
4
  currentCompatibilityKey : Int
5
5
  currentCompatibilityKey =
6
- 20
6
+ 21
@@ -72,8 +72,8 @@ import FatalError exposing (FatalError)
72
72
  import Head
73
73
  import Json.Encode as Encode
74
74
  import LanguageTag exposing (LanguageTag, emptySubtags)
75
- import LanguageTag.Country as Country
76
75
  import LanguageTag.Language
76
+ import LanguageTag.Region as Region
77
77
  import MimeType
78
78
  import Pages.Manifest.Category as Category exposing (Category)
79
79
  import Pages.Url
@@ -140,7 +140,7 @@ usEnglish =
140
140
  LanguageTag.Language.en
141
141
  |> LanguageTag.build
142
142
  { emptySubtags
143
- | region = Just Country.us
143
+ | region = Just Region.us
144
144
  }
145
145
 
146
146
 
@@ -118,7 +118,15 @@ serverRender =
118
118
  ServerRender []
119
119
 
120
120
 
121
- {-| -}
121
+ {-| Will scaffold using `RouteBuilder.preRender` if there are any dynamic segments (as in `Company.Team.Name_`),
122
+ or using `RouteBuilder.single` if there are no dynamic segments (as in `Company.AboutUs`).
123
+
124
+ When there are no dynamic segments, the `pages` field will be ignored as it is only relevant for Routes with dynamic segments.
125
+
126
+ For dynamic segments, the `routeParams` parameter in the `data` function will be an `Elm.Expression` with the `RouteParams` parameter in the `data` function.
127
+ For static segments, it will be a hardcoded empty record (`{}`).
128
+
129
+ -}
122
130
  preRender :
123
131
  { data : ( Type, Elm.Expression -> Elm.Expression )
124
132
  , pages : Elm.Expression
@@ -127,29 +135,41 @@ preRender :
127
135
  }
128
136
  -> Builder
129
137
  preRender input =
130
- --let
131
- -- hasDynamicRouteSegments : Bool
132
- -- hasDynamicRouteSegments =
133
- -- RoutePattern.fromModuleName input.moduleName
134
- -- -- TODO give error if not parseable here
135
- -- |> Maybe.map RoutePattern.hasRouteParams
136
- -- |> Maybe.withDefault False
137
- --in
138
- PreRender []
139
- { data = input.data
140
- , pages =
141
- input.pages
142
- |> Elm.withType
143
- (throwableTask
144
- (Elm.Annotation.list <| Elm.Annotation.named [] "RouteParams")
145
- )
146
- |> Just
147
- , head = input.head
148
- , moduleName = input.moduleName
149
- }
138
+ let
139
+ hasDynamicRouteSegments : Bool
140
+ hasDynamicRouteSegments =
141
+ RoutePattern.fromModuleName input.moduleName
142
+ |> Maybe.map RoutePattern.hasRouteParams
143
+ |> Maybe.withDefault False
144
+ in
145
+ if hasDynamicRouteSegments then
146
+ PreRender []
147
+ { data = input.data
148
+ , pages =
149
+ input.pages
150
+ |> Elm.withType
151
+ (throwableTask
152
+ (Elm.Annotation.list <| Elm.Annotation.named [] "RouteParams")
153
+ )
154
+ |> Just
155
+ , head = input.head
156
+ , moduleName = input.moduleName
157
+ }
150
158
 
159
+ else
160
+ PreRender []
161
+ { data = input.data
162
+ , pages = Nothing
163
+ , head = input.head
164
+ , moduleName = input.moduleName
165
+ }
151
166
 
152
- {-| -}
167
+
168
+ {-| @depreacted. This is obsolete and will be removed in a future release. Use [`preRender`](#preRender) instead.
169
+
170
+ If you pass in only static route segments as the `moduleName` to `preRender` it will yield the same result as `single`.
171
+
172
+ -}
153
173
  single :
154
174
  { data : ( Type, Elm.Expression )
155
175
  , head : Elm.Expression -> Elm.Expression
@@ -656,7 +676,7 @@ userFunction moduleName definitions =
656
676
  Elm.Declare.function "data"
657
677
  []
658
678
  (\_ ->
659
- definitions.data Elm.unit Elm.unit
679
+ definitions.data Elm.unit (Elm.record [])
660
680
  |> Elm.withType
661
681
  (case definitions.action of
662
682
  Pages _ ->
@@ -668,34 +688,60 @@ userFunction moduleName definitions =
668
688
  )
669
689
 
670
690
  _ ->
671
- Elm.Declare.function "data"
672
- [ ( "routeParams"
673
- , "RouteParams"
674
- |> Elm.Annotation.named []
675
- |> Just
676
- )
677
- , ( "request"
678
- , "Request"
679
- |> Elm.Annotation.named [ "Server", "Request" ]
680
- |> Just
681
- )
682
- ]
683
- (\args ->
684
- case args of
685
- [ arg, arg2 ] ->
686
- definitions.data arg arg2
687
- |> Elm.withType
688
- (case definitions.action of
689
- Pages _ ->
690
- throwableTask (Elm.Annotation.named [] "Data")
691
+ case definitions.action of
692
+ Pages _ ->
693
+ Elm.Declare.function "data"
694
+ [ ( "routeParams"
695
+ , "RouteParams"
696
+ |> Elm.Annotation.named []
697
+ |> Just
698
+ )
699
+ ]
700
+ (\args ->
701
+ case args of
702
+ [ arg ] ->
703
+ definitions.data
704
+ (arg
705
+ |> Elm.withType
706
+ (throwableTask
707
+ (Elm.Annotation.named [] "Data")
708
+ )
709
+ )
710
+ Elm.unit
691
711
 
692
- Action _ ->
693
- myType "Data"
694
- )
712
+ _ ->
713
+ Elm.unit
714
+ )
695
715
 
696
- _ ->
697
- Elm.unit
698
- )
716
+ Action _ ->
717
+ Elm.Declare.function "data"
718
+ [ ( "routeParams"
719
+ , "RouteParams"
720
+ |> Elm.Annotation.named []
721
+ |> Just
722
+ )
723
+ , ( "request"
724
+ , "Request"
725
+ |> Elm.Annotation.named [ "Server", "Request" ]
726
+ |> Just
727
+ )
728
+ ]
729
+ (\args ->
730
+ case args of
731
+ [ arg, arg2 ] ->
732
+ definitions.data arg arg2
733
+ |> Elm.withType
734
+ (case definitions.action of
735
+ Pages _ ->
736
+ throwableTask (Elm.Annotation.named [] "Data")
737
+
738
+ Action _ ->
739
+ myType "Data"
740
+ )
741
+
742
+ _ ->
743
+ Elm.unit
744
+ )
699
745
 
700
746
  actionFn : Maybe { declaration : Elm.Declaration, call : List Elm.Expression -> Elm.Expression, callFrom : List String -> List Elm.Expression -> Elm.Expression, value : List String -> Elm.Expression }
701
747
  actionFn =