From 521c3c0cc7ced30e4cad7c87fe94ebe687a1351c Mon Sep 17 00:00:00 2001 From: Dillon Kearns Date: Fri, 23 Apr 2021 16:22:23 -0700 Subject: [PATCH] Rename StaticData -> Data. --- examples/docs/src/Page/Blog.elm | 25 ++--- examples/docs/src/Page/Blog/Slug_.elm | 20 ++-- examples/docs/src/Page/Docs.elm | 15 ++- examples/docs/src/Page/Hello/Name_.elm | 8 +- examples/docs/src/Page/Index.elm | 18 ++-- examples/docs/src/Page/Showcase.elm | 18 ++-- examples/docs/src/Page/Time.elm | 21 ++-- examples/docs/src/Shared.elm | 14 +-- examples/docs/src/SharedTemplate.elm | 6 +- examples/docs/src/Site.elm | 16 +-- examples/docs/src/SiteConfig.elm | 4 +- examples/slides/src/Page/Slide.elm | 12 +-- examples/slides/src/Page/Slide/Number_.elm | 20 ++-- examples/slides/src/Shared.elm | 14 +-- examples/slides/src/SharedTemplate.elm | 6 +- examples/slides/src/Site.elm | 16 +-- examples/slides/src/SiteConfig.elm | 4 +- generator/src/Page.elm | 96 ++++++++--------- generator/src/codegen-template-module.js | 12 +-- .../src/generate-template-module-connector.js | 48 ++++----- jest-tests/src/Template/BlogPost.elm | 12 +-- src/Pages/Internal/Platform.elm | 102 +++++++++--------- src/Pages/Internal/Platform/Cli.elm | 46 ++++---- .../Internal/Platform/StaticResponses.elm | 22 ++-- src/Pages/ProgramConfig.elm | 18 ++-- src/Pages/SiteConfig.elm | 8 +- src/RenderRequest.elm | 4 +- tests/StaticHttpRequestsTests.elm | 2 +- 28 files changed, 303 insertions(+), 304 deletions(-) diff --git a/examples/docs/src/Page/Blog.elm b/examples/docs/src/Page/Blog.elm index 99e20027..79bc8f8c 100644 --- a/examples/docs/src/Page/Blog.elm +++ b/examples/docs/src/Page/Blog.elm @@ -1,4 +1,4 @@ -module Page.Blog exposing (Model, Msg, StaticData, page) +module Page.Blog exposing (Data, Model, Msg, page) import Article import DataSource @@ -18,35 +18,32 @@ type Msg = Msg -page : PageWithState RouteParams StaticData Model Msg +page : PageWithState RouteParams Data Model Msg page = - Page.withStaticData + Page.withData { head = head - , staticData = \_ -> staticData + , data = \_ -> data , staticRoutes = DataSource.succeed [] } |> Page.buildWithLocalState { view = view , init = init , update = update - - --\_ _ _ model -> ( model, Cmd.none ) , subscriptions = \_ _ _ -> Sub.none } -staticData : DataSource.DataSource StaticData -staticData = - --StaticFile.glob "content/blog/*.md" +data : DataSource.DataSource Data +data = Article.allMetadata -type alias StaticData = +type alias Data = List ( PagePath, Article.ArticleMetadata ) init : - StaticPayload StaticData RouteParams + StaticPayload Data RouteParams -> ( Model, Cmd Msg ) init _ = ( Model, Cmd.none ) @@ -58,7 +55,7 @@ type alias RouteParams = update : DynamicContext Shared.Model - -> StaticPayload StaticData RouteParams + -> StaticPayload Data RouteParams -> Msg -> Model -> ( Model, Cmd Msg ) @@ -73,7 +70,7 @@ type alias Model = view : Model -> Shared.Model - -> StaticPayload StaticData {} + -> StaticPayload Data {} -> Document Msg view thing model staticPayload = { title = "elm-pages blog" @@ -92,7 +89,7 @@ view thing model staticPayload = } -head : StaticPayload StaticData {} -> List Head.Tag +head : StaticPayload Data {} -> List Head.Tag head staticPayload = Seo.summary { canonicalUrlOverride = Nothing diff --git a/examples/docs/src/Page/Blog/Slug_.elm b/examples/docs/src/Page/Blog/Slug_.elm index ad5d729d..97a1e9d3 100644 --- a/examples/docs/src/Page/Blog/Slug_.elm +++ b/examples/docs/src/Page/Blog/Slug_.elm @@ -1,4 +1,4 @@ -module Page.Blog.Slug_ exposing (Model, Msg, StaticData, articlesRequest, page, routes, toRssItem) +module Page.Blog.Slug_ exposing (Data, Model, Msg, articlesRequest, page, routes, toRssItem) import Article import Cloudinary @@ -46,10 +46,10 @@ type alias BlogPost = } -page : Page RouteParams StaticData +page : Page RouteParams Data page = - Page.withStaticData - { staticData = staticData + Page.withData + { data = data , head = head , staticRoutes = routes } @@ -68,7 +68,7 @@ routes = view : - StaticPayload StaticData RouteParams + StaticPayload Data RouteParams -> Document msg view { static } = { title = static.frontmatter.title @@ -111,7 +111,7 @@ view { static } = head : - StaticPayload StaticData RouteParams + StaticPayload Data RouteParams -> List Head.Tag head { path, static } = let @@ -175,17 +175,17 @@ articleImageView articleImage = } -type alias StaticData = +type alias Data = { body : List (Element Msg) , frontmatter : ArticleMetadata } -staticData : RouteParams -> DataSource.DataSource StaticData -staticData route = +data : RouteParams -> DataSource.DataSource Data +data route = StaticFile.request ("content/blog/" ++ route.slug ++ ".md") - (OptimizedDecoder.map2 StaticData + (OptimizedDecoder.map2 Data (StaticFile.body |> OptimizedDecoder.andThen (\rawBody -> diff --git a/examples/docs/src/Page/Docs.elm b/examples/docs/src/Page/Docs.elm index 23593f0c..8e78b3a3 100644 --- a/examples/docs/src/Page/Docs.elm +++ b/examples/docs/src/Page/Docs.elm @@ -1,4 +1,4 @@ -module Page.Docs exposing (Model, Msg, StaticData, page) +module Page.Docs exposing (Data, Model, Msg, page) import Css.Global import DataSource exposing (DataSource) @@ -35,19 +35,18 @@ type alias RouteParams = {} -page : Page RouteParams StaticData +page : Page RouteParams Data page = - Page.withStaticData + Page.withData { head = head , staticRoutes = DataSource.succeed [ {} ] - , staticData = - \_ -> data + , data = \_ -> data } |> Page.buildNoState { view = view } head : - StaticPayload StaticData RouteParams + StaticPayload Data RouteParams -> List Head.Tag head static = Seo.summary @@ -66,12 +65,12 @@ head static = |> Seo.website -type alias StaticData = +type alias Data = List Markdown.Block.Block view : - StaticPayload StaticData RouteParams + StaticPayload Data RouteParams -> Document Msg view static = { title = "TODO title" diff --git a/examples/docs/src/Page/Hello/Name_.elm b/examples/docs/src/Page/Hello/Name_.elm index de67daa4..54f84123 100644 --- a/examples/docs/src/Page/Hello/Name_.elm +++ b/examples/docs/src/Page/Hello/Name_.elm @@ -1,4 +1,4 @@ -module Page.Hello.Name_ exposing (Model, Msg, StaticData, page) +module Page.Hello.Name_ exposing (Data, Model, Msg, page) import DataSource import Document exposing (Document) @@ -25,7 +25,7 @@ type alias Route = page : Page Route () page = - Page.noStaticData + Page.noData { head = head , staticRoutes = DataSource.succeed [ { name = "world" } ] } @@ -52,12 +52,12 @@ head static = |> Seo.website -type alias StaticData = +type alias Data = () view : - StaticPayload StaticData Route + StaticPayload Data Route -> Document msg view static = { title = "TODO title" diff --git a/examples/docs/src/Page/Index.elm b/examples/docs/src/Page/Index.elm index 95f0fe61..09b24581 100644 --- a/examples/docs/src/Page/Index.elm +++ b/examples/docs/src/Page/Index.elm @@ -1,4 +1,4 @@ -module Page.Index exposing (Model, Msg, StaticData, page) +module Page.Index exposing (Data, Model, Msg, page) import DataSource import DataSource.File as StaticFile @@ -27,22 +27,22 @@ type alias Route = {} -type alias StaticData = +type alias Data = List (Element.Element Msg) -page : Page Route StaticData +page : Page Route Data page = - Page.withStaticData + Page.withData { head = head , staticRoutes = DataSource.succeed [] - , staticData = staticData + , data = data } |> Page.buildNoState { view = view } head : - StaticPayload StaticData Route + StaticPayload Data Route -> List Head.Tag head static = Seo.summary @@ -62,7 +62,7 @@ head static = view : - StaticPayload StaticData Route + StaticPayload Data Route -> Document Msg view static = { title = "elm-pages - a statically typed site generator" -- metadata.title -- TODO @@ -82,8 +82,8 @@ view static = } -staticData : Route -> DataSource.DataSource (List (Element.Element msg)) -staticData route = +data : Route -> DataSource.DataSource (List (Element.Element msg)) +data route = StaticFile.request "content/index.md" (StaticFile.body diff --git a/examples/docs/src/Page/Showcase.elm b/examples/docs/src/Page/Showcase.elm index dbcf0e52..b44ed8f9 100644 --- a/examples/docs/src/Page/Showcase.elm +++ b/examples/docs/src/Page/Showcase.elm @@ -1,4 +1,4 @@ -module Page.Showcase exposing (Model, Msg, StaticData, page) +module Page.Showcase exposing (Data, Model, Msg, page) import DataSource import Document exposing (Document) @@ -19,18 +19,18 @@ type alias Msg = Never -page : PageWithState {} StaticData () Msg +page : PageWithState {} Data () Msg page = - Page.withStaticData + Page.withData { head = head , staticRoutes = DataSource.succeed [] - , staticData = \_ -> staticData + , data = \_ -> data } |> Page.buildNoState { view = view } -staticData : DataSource.DataSource StaticData -staticData = +data : DataSource.DataSource Data +data = Showcase.staticRequest @@ -45,12 +45,12 @@ type alias DataFromFile = { body : List (Element Msg), title : String } -type alias StaticData = +type alias Data = List Showcase.Entry view : - StaticPayload StaticData {} + StaticPayload Data {} -> Document Msg view static = { title = "elm-pages blog" @@ -67,7 +67,7 @@ view static = } -head : StaticPayload StaticData {} -> List Head.Tag +head : StaticPayload Data {} -> List Head.Tag head staticPayload = Seo.summary { canonicalUrlOverride = Nothing diff --git a/examples/docs/src/Page/Time.elm b/examples/docs/src/Page/Time.elm index 396c815c..f007924b 100644 --- a/examples/docs/src/Page/Time.elm +++ b/examples/docs/src/Page/Time.elm @@ -1,4 +1,4 @@ -module Page.Time exposing (Model, Msg, StaticData, page) +module Page.Time exposing (Data, Model, Msg, page) import DataSource import Document exposing (Document) @@ -18,21 +18,26 @@ type alias Msg = Never -type alias StaticData = +type alias Data = String -page : Page {} StaticData +type alias RouteParams = + {} + + +page : Page RouteParams Data page = - Page.withStaticData + Page.withData { head = head , staticRoutes = DataSource.succeed [] - , staticData = staticData + , data = data } |> Page.buildNoState { view = view } -staticData routeParams = +data : RouteParams -> DataSource.DataSource String +data routeParams = DataSource.succeed "TIME RESPONSE" @@ -42,7 +47,7 @@ staticData routeParams = head : - StaticPayload StaticData {} + StaticPayload Data {} -> List Head.Tag head static = Seo.summary @@ -62,7 +67,7 @@ head static = view : - StaticPayload StaticData {} + StaticPayload Data {} -> Document msg view static = { title = "TODO title" diff --git a/examples/docs/src/Shared.elm b/examples/docs/src/Shared.elm index b4b0a28c..e6acfdad 100644 --- a/examples/docs/src/Shared.elm +++ b/examples/docs/src/Shared.elm @@ -1,4 +1,4 @@ -module Shared exposing (Model, Msg(..), SharedMsg(..), StaticData, template) +module Shared exposing (Data, Model, Msg(..), SharedMsg(..), template) import Browser.Navigation import DataSource @@ -22,12 +22,12 @@ import Secrets import SharedTemplate exposing (SharedTemplate) -template : SharedTemplate Msg Model StaticData msg +template : SharedTemplate Msg Model Data msg template = { init = init , update = update , view = view - , staticData = staticData + , data = data , subscriptions = subscriptions , onPageChange = Just OnPageChange } @@ -44,7 +44,7 @@ type Msg | SharedMsg SharedMsg -type alias StaticData = +type alias Data = Int @@ -103,14 +103,14 @@ subscriptions _ _ = Sub.none -staticData : DataSource.DataSource StaticData -staticData = +data : DataSource.DataSource Data +data = DataSource.Http.get (Secrets.succeed "https://api.github.com/repos/dillonkearns/elm-pages") (D.field "stargazers_count" D.int) view : - StaticData + Data -> { path : PagePath , frontmatter : route diff --git a/examples/docs/src/SharedTemplate.elm b/examples/docs/src/SharedTemplate.elm index 490806d7..5c046bcc 100644 --- a/examples/docs/src/SharedTemplate.elm +++ b/examples/docs/src/SharedTemplate.elm @@ -8,7 +8,7 @@ import Pages.PagePath exposing (PagePath) import Route exposing (Route) -type alias SharedTemplate sharedMsg sharedModel sharedStaticData mappedMsg = +type alias SharedTemplate sharedMsg sharedModel sharedData mappedMsg = { init : Maybe Browser.Navigation.Key -> @@ -23,7 +23,7 @@ type alias SharedTemplate sharedMsg sharedModel sharedStaticData mappedMsg = -> ( sharedModel, Cmd sharedMsg ) , update : sharedMsg -> sharedModel -> ( sharedModel, Cmd sharedMsg ) , view : - sharedStaticData + sharedData -> { path : PagePath , frontmatter : Maybe Route @@ -32,7 +32,7 @@ type alias SharedTemplate sharedMsg sharedModel sharedStaticData mappedMsg = -> (sharedMsg -> mappedMsg) -> Document mappedMsg -> { body : Html mappedMsg, title : String } - , staticData : DataSource.DataSource sharedStaticData + , data : DataSource.DataSource sharedData , subscriptions : PagePath -> sharedModel -> Sub sharedMsg , onPageChange : Maybe diff --git a/examples/docs/src/Site.elm b/examples/docs/src/Site.elm index 47b429ef..9f05af6e 100644 --- a/examples/docs/src/Site.elm +++ b/examples/docs/src/Site.elm @@ -15,10 +15,10 @@ import SiteConfig exposing (SiteConfig) import Sitemap -config : SiteConfig StaticData +config : SiteConfig Data config = \routes -> - { staticData = staticData + { data = data , canonicalUrl = canonicalUrl , manifest = manifest , head = head @@ -44,19 +44,19 @@ generateFiles allRoutes = ] -type alias StaticData = +type alias Data = { siteName : String } -staticData : DataSource.DataSource StaticData -staticData = - DataSource.map StaticData +data : DataSource.DataSource Data +data = + DataSource.map Data --(StaticFile.request "site-name.txt" StaticFile.body) (DataSource.succeed "site-name") -head : StaticData -> List Head.Tag +head : Data -> List Head.Tag head static = [ Head.icon [ ( 32, 32 ) ] MimeType.Png (cloudinaryIcon MimeType.Png 32) , Head.icon [ ( 16, 16 ) ] MimeType.Png (cloudinaryIcon MimeType.Png 16) @@ -71,7 +71,7 @@ canonicalUrl = "https://elm-pages.com" -manifest : StaticData -> Manifest.Config +manifest : Data -> Manifest.Config manifest static = Manifest.init { name = static.siteName diff --git a/examples/docs/src/SiteConfig.elm b/examples/docs/src/SiteConfig.elm index 2fc336d0..10441eec 100644 --- a/examples/docs/src/SiteConfig.elm +++ b/examples/docs/src/SiteConfig.elm @@ -4,5 +4,5 @@ import Pages.SiteConfig import Route exposing (Route) -type alias SiteConfig staticData = - Pages.SiteConfig.SiteConfig (Maybe Route) staticData +type alias SiteConfig data = + Pages.SiteConfig.SiteConfig (Maybe Route) data diff --git a/examples/slides/src/Page/Slide.elm b/examples/slides/src/Page/Slide.elm index 18e2a77a..0f7dcc55 100644 --- a/examples/slides/src/Page/Slide.elm +++ b/examples/slides/src/Page/Slide.elm @@ -1,4 +1,4 @@ -module Page.Slide exposing (Model, Msg, StaticData, page) +module Page.Slide exposing (Data, Model, Msg, page) import DataSource import Document exposing (Document) @@ -22,9 +22,9 @@ type alias RouteParams = {} -page : Page RouteParams StaticData +page : Page RouteParams Data page = - Page.noStaticData + Page.noData { head = head , staticRoutes = DataSource.succeed [ {} ] } @@ -32,7 +32,7 @@ page = head : - StaticPayload StaticData RouteParams + StaticPayload Data RouteParams -> List Head.Tag head static = Seo.summary @@ -51,12 +51,12 @@ head static = |> Seo.website -type alias StaticData = +type alias Data = () view : - StaticPayload StaticData RouteParams + StaticPayload Data RouteParams -> Document Msg view static = { title = "TODO title" diff --git a/examples/slides/src/Page/Slide/Number_.elm b/examples/slides/src/Page/Slide/Number_.elm index 39a3ad4f..dc0f734b 100644 --- a/examples/slides/src/Page/Slide/Number_.elm +++ b/examples/slides/src/Page/Slide/Number_.elm @@ -1,4 +1,4 @@ -module Page.Slide.Number_ exposing (Model, Msg, StaticData, page) +module Page.Slide.Number_ exposing (Data, Model, Msg, page) import Browser.Events import Browser.Navigation @@ -33,9 +33,9 @@ type alias RouteParams = { number : String } -page : Page.PageWithState RouteParams StaticData Model Msg +page : Page.PageWithState RouteParams Data Model Msg page = - Page.withStaticData + Page.withData { head = head , staticRoutes = slideCount @@ -45,7 +45,7 @@ page = |> List.map String.fromInt |> List.map RouteParams ) - , staticData = staticData + , data = data } |> Page.buildWithLocalState { view = view @@ -114,9 +114,9 @@ toDirection string = Nothing -staticData : RouteParams -> DataSource.DataSource StaticData -staticData routeParams = - DataSource.map2 StaticData +data : RouteParams -> DataSource.DataSource Data +data routeParams = + DataSource.map2 Data (slideBody routeParams) slideCount @@ -208,7 +208,7 @@ markdownIndexedByHeading index markdownBlocks = head : - StaticPayload StaticData RouteParams + StaticPayload Data RouteParams -> List Head.Tag head static = Seo.summary @@ -227,7 +227,7 @@ head static = |> Seo.website -type alias StaticData = +type alias Data = { body : List (Html.Html Msg) , totalCount : Int } @@ -236,7 +236,7 @@ type alias StaticData = view : Model -> Shared.Model - -> StaticPayload StaticData RouteParams + -> StaticPayload Data RouteParams -> Document Msg view model sharedModel static = { title = "TODO title" diff --git a/examples/slides/src/Shared.elm b/examples/slides/src/Shared.elm index babb07b1..3c498e40 100644 --- a/examples/slides/src/Shared.elm +++ b/examples/slides/src/Shared.elm @@ -1,4 +1,4 @@ -module Shared exposing (Model, Msg(..), SharedMsg(..), StaticData, template) +module Shared exposing (Data, Model, Msg(..), SharedMsg(..), template) import Browser.Navigation import Css.Global @@ -14,12 +14,12 @@ import SharedTemplate exposing (SharedTemplate) import Tailwind.Utilities -template : SharedTemplate Msg Model StaticData msg +template : SharedTemplate Msg Model Data msg template = { init = init , update = update , view = view - , staticData = staticData + , data = data , subscriptions = subscriptions , onPageChange = Just OnPageChange } @@ -34,7 +34,7 @@ type Msg | SharedMsg SharedMsg -type alias StaticData = +type alias Data = Int @@ -80,14 +80,14 @@ subscriptions _ _ = Sub.none -staticData : DataSource.DataSource StaticData -staticData = +data : DataSource.DataSource Data +data = DataSource.Http.get (Secrets.succeed "https://api.github.com/repos/dillonkearns/elm-pages") (D.field "stargazers_count" D.int) view : - StaticData + Data -> { path : PagePath , frontmatter : route diff --git a/examples/slides/src/SharedTemplate.elm b/examples/slides/src/SharedTemplate.elm index 490806d7..5c046bcc 100644 --- a/examples/slides/src/SharedTemplate.elm +++ b/examples/slides/src/SharedTemplate.elm @@ -8,7 +8,7 @@ import Pages.PagePath exposing (PagePath) import Route exposing (Route) -type alias SharedTemplate sharedMsg sharedModel sharedStaticData mappedMsg = +type alias SharedTemplate sharedMsg sharedModel sharedData mappedMsg = { init : Maybe Browser.Navigation.Key -> @@ -23,7 +23,7 @@ type alias SharedTemplate sharedMsg sharedModel sharedStaticData mappedMsg = -> ( sharedModel, Cmd sharedMsg ) , update : sharedMsg -> sharedModel -> ( sharedModel, Cmd sharedMsg ) , view : - sharedStaticData + sharedData -> { path : PagePath , frontmatter : Maybe Route @@ -32,7 +32,7 @@ type alias SharedTemplate sharedMsg sharedModel sharedStaticData mappedMsg = -> (sharedMsg -> mappedMsg) -> Document mappedMsg -> { body : Html mappedMsg, title : String } - , staticData : DataSource.DataSource sharedStaticData + , data : DataSource.DataSource sharedData , subscriptions : PagePath -> sharedModel -> Sub sharedMsg , onPageChange : Maybe diff --git a/examples/slides/src/Site.elm b/examples/slides/src/Site.elm index 219135fe..30548ff5 100644 --- a/examples/slides/src/Site.elm +++ b/examples/slides/src/Site.elm @@ -14,10 +14,10 @@ import SiteConfig exposing (SiteConfig) import Sitemap -config : SiteConfig StaticData +config : SiteConfig Data config = \routes -> - { staticData = staticData + { data = data , canonicalUrl = canonicalUrl , manifest = manifest , head = head @@ -43,19 +43,19 @@ generateFiles allRoutes = ] -type alias StaticData = +type alias Data = { siteName : String } -staticData : DataSource.DataSource StaticData -staticData = - DataSource.map StaticData +data : DataSource.DataSource Data +data = + DataSource.map Data --(StaticFile.request "site-name.txt" StaticFile.body) (DataSource.succeed "site-name") -head : StaticData -> List Head.Tag +head : Data -> List Head.Tag head static = [ Head.icon [ ( 32, 32 ) ] MimeType.Png (cloudinaryIcon MimeType.Png 32) , Head.icon [ ( 16, 16 ) ] MimeType.Png (cloudinaryIcon MimeType.Png 16) @@ -70,7 +70,7 @@ canonicalUrl = "https://elm-pages.com" -manifest : StaticData -> Manifest.Config +manifest : Data -> Manifest.Config manifest static = Manifest.init { name = static.siteName diff --git a/examples/slides/src/SiteConfig.elm b/examples/slides/src/SiteConfig.elm index 2fc336d0..10441eec 100644 --- a/examples/slides/src/SiteConfig.elm +++ b/examples/slides/src/SiteConfig.elm @@ -4,5 +4,5 @@ import Pages.SiteConfig import Route exposing (Route) -type alias SiteConfig staticData = - Pages.SiteConfig.SiteConfig (Maybe Route) staticData +type alias SiteConfig data = + Pages.SiteConfig.SiteConfig (Maybe Route) data diff --git a/generator/src/Page.elm b/generator/src/Page.elm index 11b3a2cb..094d638f 100644 --- a/generator/src/Page.elm +++ b/generator/src/Page.elm @@ -1,7 +1,7 @@ module Page exposing ( Builder(..) , StaticPayload - , withStaticData, noStaticData + , withData, noData , Page, buildNoState , PageWithState, buildWithLocalState, buildWithSharedState , DynamicContext @@ -29,9 +29,9 @@ But before the user even requests the page, we have the following data: - `path` - these paths are static. In other words, we know every single path when we build an elm-pages site. - `metadata` - we have a decoded Elm value for the page's metadata. - `sharedStatic` - we can access any shared data between pages. For example, you may have fetched the name of a blog ("Jane's Blog") from the API for a Content Management System (CMS). - - `static` - this is the static data for this specific page. If you use `noStaticData`, then this will be `()`, meaning there is no page-specific static data. + - `static` - this is the static data for this specific page. If you use `noData`, then this will be `()`, meaning there is no page-specific static data. -@docs withStaticData, noStaticData +@docs withData, noData ## Stateless Page Modules @@ -54,44 +54,44 @@ import Shared {-| -} -type alias PageWithState routeParams templateStaticData templateModel templateMsg = - { staticData : routeParams -> DataSource templateStaticData +type alias PageWithState routeParams templateData templateModel templateMsg = + { data : routeParams -> DataSource templateData , staticRoutes : DataSource (List routeParams) , view : templateModel -> Shared.Model - -> StaticPayload templateStaticData routeParams + -> StaticPayload templateData routeParams -> Document templateMsg , head : - StaticPayload templateStaticData routeParams + StaticPayload templateData routeParams -> List Head.Tag - , init : StaticPayload templateStaticData routeParams -> ( templateModel, Cmd templateMsg ) - , update : StaticPayload templateStaticData routeParams -> Maybe Browser.Navigation.Key -> templateMsg -> templateModel -> Shared.Model -> ( templateModel, Cmd templateMsg, Maybe Shared.SharedMsg ) + , init : StaticPayload templateData routeParams -> ( templateModel, Cmd templateMsg ) + , update : StaticPayload templateData routeParams -> Maybe Browser.Navigation.Key -> templateMsg -> templateModel -> Shared.Model -> ( templateModel, Cmd templateMsg, Maybe Shared.SharedMsg ) , subscriptions : routeParams -> PagePath -> templateModel -> Shared.Model -> Sub templateMsg } {-| -} -type alias Page routeParams staticData = - PageWithState routeParams staticData () Never +type alias Page routeParams data = + PageWithState routeParams data () Never {-| -} -type alias StaticPayload staticData routeParams = - { static : staticData -- local - , sharedStatic : Shared.StaticData -- share +type alias StaticPayload data routeParams = + { static : data -- local + , sharedStatic : Shared.Data -- share , routeParams : routeParams , path : PagePath } {-| -} -type Builder routeParams templateStaticData - = WithStaticData - { staticData : routeParams -> DataSource templateStaticData +type Builder routeParams templateData + = WithData + { data : routeParams -> DataSource templateData , staticRoutes : DataSource (List routeParams) , head : - StaticPayload templateStaticData routeParams + StaticPayload templateData routeParams -> List Head.Tag } @@ -99,17 +99,17 @@ type Builder routeParams templateStaticData {-| -} buildNoState : { view : - StaticPayload templateStaticData routeParams + StaticPayload templateData routeParams -> Document Never } - -> Builder routeParams templateStaticData - -> PageWithState routeParams templateStaticData () Never + -> Builder routeParams templateData + -> PageWithState routeParams templateData () Never buildNoState { view } builderState = case builderState of - WithStaticData record -> + WithData record -> { view = \() _ -> view , head = record.head - , staticData = record.staticData + , data = record.data , staticRoutes = record.staticRoutes , init = \_ -> ( (), Cmd.none ) , update = \_ _ _ _ _ -> ( (), Cmd.none, Nothing ) @@ -122,22 +122,22 @@ buildWithLocalState : { view : templateModel -> Shared.Model - -> StaticPayload templateStaticData routeParams + -> StaticPayload templateData routeParams -> Document templateMsg - , init : StaticPayload templateStaticData routeParams -> ( templateModel, Cmd templateMsg ) - , update : DynamicContext Shared.Model -> StaticPayload templateStaticData routeParams -> templateMsg -> templateModel -> ( templateModel, Cmd templateMsg ) + , init : StaticPayload templateData routeParams -> ( templateModel, Cmd templateMsg ) + , update : DynamicContext Shared.Model -> StaticPayload templateData routeParams -> templateMsg -> templateModel -> ( templateModel, Cmd templateMsg ) , subscriptions : routeParams -> PagePath -> templateModel -> Sub templateMsg } - -> Builder routeParams templateStaticData - -> PageWithState routeParams templateStaticData templateModel templateMsg + -> Builder routeParams templateData + -> PageWithState routeParams templateData templateModel templateMsg buildWithLocalState config builderState = case builderState of - WithStaticData record -> + WithData record -> { view = \model sharedModel staticPayload -> config.view model sharedModel staticPayload , head = record.head - , staticData = record.staticData + , data = record.data , staticRoutes = record.staticRoutes , init = config.init , update = @@ -171,20 +171,20 @@ buildWithSharedState : { view : templateModel -> Shared.Model - -> StaticPayload templateStaticData routeParams + -> StaticPayload templateData routeParams -> Document templateMsg - , init : StaticPayload templateStaticData routeParams -> ( templateModel, Cmd templateMsg ) - , update : DynamicContext Shared.Model -> StaticPayload templateStaticData routeParams -> templateMsg -> templateModel -> ( templateModel, Cmd templateMsg, Maybe Shared.SharedMsg ) + , init : StaticPayload templateData routeParams -> ( templateModel, Cmd templateMsg ) + , update : DynamicContext Shared.Model -> StaticPayload templateData routeParams -> templateMsg -> templateModel -> ( templateModel, Cmd templateMsg, Maybe Shared.SharedMsg ) , subscriptions : routeParams -> PagePath -> templateModel -> Shared.Model -> Sub templateMsg } - -> Builder routeParams templateStaticData - -> PageWithState routeParams templateStaticData templateModel templateMsg + -> Builder routeParams templateData + -> PageWithState routeParams templateData templateModel templateMsg buildWithSharedState config builderState = case builderState of - WithStaticData record -> + WithData record -> { view = config.view , head = record.head - , staticData = record.staticData + , data = record.data , staticRoutes = record.staticRoutes , init = config.init , update = @@ -201,29 +201,29 @@ buildWithSharedState config builderState = {-| -} -withStaticData : - { staticData : routeParams -> DataSource templateStaticData +withData : + { data : routeParams -> DataSource templateData , staticRoutes : DataSource (List routeParams) - , head : StaticPayload templateStaticData routeParams -> List Head.Tag + , head : StaticPayload templateData routeParams -> List Head.Tag } - -> Builder routeParams templateStaticData -withStaticData { staticData, head, staticRoutes } = - WithStaticData - { staticData = staticData + -> Builder routeParams templateData +withData { data, head, staticRoutes } = + WithData + { data = data , staticRoutes = staticRoutes , head = head } {-| -} -noStaticData : +noData : { head : StaticPayload () routeParams -> List Head.Tag , staticRoutes : DataSource (List routeParams) } -> Builder routeParams () -noStaticData { head, staticRoutes } = - WithStaticData - { staticData = \_ -> DataSource.succeed () +noData { head, staticRoutes } = + WithData + { data = \_ -> DataSource.succeed () , staticRoutes = staticRoutes , head = head } diff --git a/generator/src/codegen-template-module.js b/generator/src/codegen-template-module.js index 67b65bf5..e1b810c8 100755 --- a/generator/src/codegen-template-module.js +++ b/generator/src/codegen-template-module.js @@ -20,7 +20,7 @@ async function run({ moduleName }) { * @param {string} pageModuleName */ function fileContent(pageModuleName) { - return `module Page.${pageModuleName} exposing (Model, Msg, StaticData, page) + return `module Page.${pageModuleName} exposing (Model, Msg, Data, page) import Element exposing (Element) import Document exposing (Document) @@ -42,9 +42,9 @@ type alias Msg = type alias RouteParams = ${routeHelpers.paramsRecord(pageModuleName.split("."))} -page : Page RouteParams StaticData +page : Page RouteParams Data page = - Page.noStaticData + Page.noData { head = head , staticRoutes = DataSource.succeed [{}] } @@ -53,7 +53,7 @@ page = head : - StaticPayload StaticData RouteParams + StaticPayload Data RouteParams -> List Head.Tag head static = Seo.summary @@ -72,12 +72,12 @@ head static = |> Seo.website -type alias StaticData = +type alias Data = () view : - StaticPayload StaticData RouteParams + StaticPayload Data RouteParams -> Document Msg view static = { title = "TODO title" diff --git a/generator/src/generate-template-module-connector.js b/generator/src/generate-template-module-connector.js index 07c710ea..de85f0e3 100644 --- a/generator/src/generate-template-module-connector.js +++ b/generator/src/generate-template-module-connector.js @@ -103,14 +103,12 @@ type Msg .join(" | ")} -type PageStaticData +type PageData = Data404NotFoundPage____ | ${templates .map( (name) => - `Data${pathNormalizedName(name)} Page.${moduleName( - name - )}.StaticData\n` + `Data${pathNormalizedName(name)} Page.${moduleName(name)}.Data\n` ) .join(" | ")} @@ -120,14 +118,14 @@ view : { path : PagePath , frontmatter : Maybe Route } - -> Shared.StaticData - -> PageStaticData + -> Shared.Data + -> PageData -> { view : Model -> { title : String, body : Html Msg } , head : List Head.Tag } -view page globalData staticData = - case ( page.frontmatter, staticData ) of +view page globalData pageData = + case ( page.frontmatter, pageData ) of ${templates .map( (name) => @@ -188,8 +186,8 @@ view page globalData staticData = init : Maybe Shared.Model - -> Shared.StaticData - -> PageStaticData + -> Shared.Data + -> PageData -> Maybe Browser.Navigation.Key -> Maybe @@ -201,13 +199,13 @@ init : , metadata : Maybe Route } -> ( Model, Cmd Msg ) -init currentGlobalModel sharedStaticData pageStaticData navigationKey maybePagePath = +init currentGlobalModel sharedData pageData navigationKey maybePagePath = let ( sharedModel, globalCmd ) = currentGlobalModel |> Maybe.map (\\m -> ( m, Cmd.none )) |> Maybe.withDefault (Shared.template.init navigationKey maybePagePath) ( templateModel, templateCmd ) = - case ( ( Maybe.map2 Tuple.pair (maybePagePath |> Maybe.andThen .metadata) (maybePagePath |> Maybe.map .path) ), pageStaticData ) of + case ( ( Maybe.map2 Tuple.pair (maybePagePath |> Maybe.andThen .metadata) (maybePagePath |> Maybe.map .path) ), pageData ) of ${templates .map( (name) => `( Just ( (Route.${routeHelpers.routeVariant( @@ -217,7 +215,7 @@ init currentGlobalModel sharedStaticData pageStaticData navigationKey maybePageP )} thisPageData ) -> Page.${moduleName(name)}.page.init { static = thisPageData - , sharedStatic = sharedStaticData + , sharedStatic = sharedData , routeParams = routeParams , path = justPath.path } @@ -242,8 +240,8 @@ init currentGlobalModel sharedStaticData pageStaticData navigationKey maybePageP -update : Shared.StaticData -> PageStaticData -> Maybe Browser.Navigation.Key -> Msg -> Model -> ( Model, Cmd Msg ) -update sharedStaticData pageStaticData navigationKey msg model = +update : Shared.Data -> PageData -> Maybe Browser.Navigation.Key -> Msg -> Model -> ( Model, Cmd Msg ) +update sharedData pageData navigationKey msg model = case msg of MsgGlobal msg_ -> let @@ -255,7 +253,7 @@ update sharedStaticData pageStaticData navigationKey msg model = ) OnPageChange record -> - (init (Just model.global) sharedStaticData pageStaticData navigationKey <| + (init (Just model.global) sharedData pageData navigationKey <| Just { path = { path = record.path @@ -296,7 +294,7 @@ update sharedStaticData pageStaticData navigationKey msg model = Msg${pathNormalizedName(name)} msg_ -> let ( updatedPageModel, pageCmd, ( newGlobalModel, newGlobalCmd ) ) = - case ( model.page, pageStaticData, Maybe.map2 Tuple.pair (model.current |> Maybe.andThen .metadata) (model.current |> Maybe.map .path) ) of + case ( model.page, pageData, Maybe.map2 Tuple.pair (model.current |> Maybe.andThen .metadata) (model.current |> Maybe.map .path) ) of ( Model${pathNormalizedName( name )} pageModel, Data${pathNormalizedName( @@ -306,7 +304,7 @@ update sharedStaticData pageStaticData navigationKey msg model = )} routeParams), justPage ) ) -> Page.${moduleName(name)}.page.update { static = thisPageData - , sharedStatic = sharedStaticData + , sharedStatic = sharedData , routeParams = routeParams , path = justPage.path } @@ -370,7 +368,7 @@ templateSubscriptions route path model = main : ${ phase === "browser" - ? "Pages.Internal.Platform.Program Model Msg PageStaticData Shared.StaticData" + ? "Pages.Internal.Platform.Program Model Msg PageData Shared.Data" : "Pages.Internal.Platform.Cli.Program (Maybe Route)" } main = @@ -396,8 +394,8 @@ main = , onPageChange = OnPageChange , toJsPort = toJsPort , fromJsPort = fromJsPort identity - , staticData = staticDataForRoute - , sharedStaticData = Shared.template.staticData + , data = dataForRoute + , sharedData = Shared.template.data , generateFiles = getStaticRoutes |> DataSource.andThen @@ -413,8 +411,8 @@ main = ) } -staticDataForRoute : Maybe Route -> DataSource PageStaticData -staticDataForRoute route = +dataForRoute : Maybe Route -> DataSource PageData +dataForRoute route = case route of Nothing -> DataSource.succeed Data404NotFoundPage____ @@ -425,7 +423,7 @@ staticDataForRoute route = name )} routeParams) ->\n Page.${name.join( "." - )}.page.staticData routeParams |> DataSource.map Data${routeHelpers.routeVariant( + )}.page.data routeParams |> DataSource.map Data${routeHelpers.routeVariant( name )}` ) @@ -474,7 +472,7 @@ getStaticRoutes = manifestGenerator : List ( Maybe Route ) -> DataSource (Result anyError { path : List String, content : String }) manifestGenerator resolvedRoutes = Site.config resolvedRoutes - |> .staticData + |> .data |> DataSource.map (\\data -> (Site.config resolvedRoutes |> .manifest) data diff --git a/jest-tests/src/Template/BlogPost.elm b/jest-tests/src/Template/BlogPost.elm index 8a086981..e8c84889 100644 --- a/jest-tests/src/Template/BlogPost.elm +++ b/jest-tests/src/Template/BlogPost.elm @@ -32,9 +32,9 @@ type alias Msg = Never -template : TemplateDocument BlogPost StaticData Model Msg +template : TemplateDocument BlogPost Data Model Msg template = - Template.withStaticData staticData head + Template.withData staticData head |> Template.buildNoState { view = view } @@ -88,17 +88,17 @@ findMatchingImage imageAssetPath = -staticData : a -> StaticHttp.Request StaticData +staticData : a -> StaticHttp.Request Data staticData siteMetadata = StaticHttp.get (Secrets.succeed "https://api.github.com/repos/dillonkearns/elm-pages") (D.field "stargazers_count" D.int) -type alias StaticData = +type alias Data = Int -view : List ( PagePath, TemplateType.Metadata ) -> StaticData -> Model -> BlogPost -> ( a, List (Element msg) ) -> { title : String, body : Element msg } +view : List ( PagePath, TemplateType.Metadata ) -> Data -> Model -> BlogPost -> ( a, List (Element msg) ) -> { title : String, body : Element msg } view allMetadata static model blogPost rendered = { title = blogPost.title , body = @@ -131,7 +131,7 @@ view allMetadata static model blogPost rendered = } -head : StaticData -> PagePath.PagePath -> BlogPost -> List (Head.Tag Pages.PathKey) +head : Data -> PagePath.PagePath -> BlogPost -> List (Head.Tag Pages.PathKey) head static currentPath meta = Head.structuredData (StructuredData.article diff --git a/src/Pages/Internal/Platform.elm b/src/Pages/Internal/Platform.elm index a031abf4..3253e1b1 100644 --- a/src/Pages/Internal/Platform.elm +++ b/src/Pages/Internal/Platform.elm @@ -19,13 +19,13 @@ import Task import Url exposing (Url) -type alias Program userModel userMsg pageStaticData sharedStaticData = - Platform.Program Flags (Model userModel pageStaticData sharedStaticData) (Msg userMsg) +type alias Program userModel userMsg pageData sharedData = + Platform.Program Flags (Model userModel pageData sharedData) (Msg userMsg) mainView : - ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData - -> Model userModel pageStaticData sharedStaticData + ProgramConfig userMsg userModel route siteData pageData sharedData + -> Model userModel pageData sharedData -> { title : String, body : Html userMsg } mainView config model = let @@ -47,8 +47,8 @@ mainView config model = { path = ContentCache.pathForUrl urls |> PagePath.build , frontmatter = config.urlToRoute model.url } - pageData.sharedStaticData - pageData.pageStaticData + pageData.sharedData + pageData.pageData |> .view ) pageData.userModel @@ -85,8 +85,8 @@ urlsToPagePath urls = view : - ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData - -> Model userModel pageStaticData sharedStaticData + ProgramConfig userMsg userModel route siteData pageData sharedData + -> Model userModel pageData sharedData -> Browser.Document (Msg userMsg) view config model = let @@ -132,11 +132,11 @@ contentJsonDecoder = init : - ProgramConfig userMsg userModel route staticData pageStaticData sharedStaticData + ProgramConfig userMsg userModel route staticData pageData sharedData -> Flags -> Url -> Browser.Navigation.Key - -> ( Model userModel pageStaticData sharedStaticData, Cmd (Msg userMsg) ) + -> ( Model userModel pageData sharedData, Cmd (Msg userMsg) ) init config flags url key = let contentCache = @@ -172,25 +172,25 @@ init config flags url key = case contentJson |> Maybe.map .staticData of Just justContentJson -> let - pageStaticDataResult : Result BuildError pageStaticData - pageStaticDataResult = + pageDataResult : Result BuildError pageData + pageDataResult = StaticHttpRequest.resolve ApplicationType.Browser - (config.staticData (config.urlToRoute url)) + (config.data (config.urlToRoute url)) justContentJson |> Result.mapError (StaticHttpRequest.toBuildError url.path) - sharedStaticDataResult : Result BuildError sharedStaticData - sharedStaticDataResult = + sharedDataResult : Result BuildError sharedData + sharedDataResult = StaticHttpRequest.resolve ApplicationType.Browser - config.sharedStaticData + config.sharedData justContentJson |> Result.mapError (StaticHttpRequest.toBuildError url.path) pagePath = urlsToPagePath urls in - case Result.map2 Tuple.pair sharedStaticDataResult pageStaticDataResult of - Ok ( sharedStaticData, pageStaticData ) -> + case Result.map2 Tuple.pair sharedDataResult pageDataResult of + Ok ( sharedData, pageData ) -> let ( userModel, userCmd ) = Just @@ -201,7 +201,7 @@ init config flags url key = } , metadata = config.urlToRoute url } - |> config.init sharedStaticData pageStaticData (Just key) + |> config.init sharedData pageData (Just key) cmd = [ userCmd @@ -221,8 +221,8 @@ init config flags url key = , contentCache = contentCache , pageData = Ok - { pageStaticData = pageStaticData - , sharedStaticData = sharedStaticData + { pageData = pageData + , sharedData = sharedData , userModel = userModel } } @@ -261,7 +261,7 @@ type Msg userMsg | NoOp -type alias Model userModel pageStaticData sharedStaticData = +type alias Model userModel pageData sharedData = { key : Browser.Navigation.Key , url : Url , baseUrl : Url @@ -270,17 +270,17 @@ type alias Model userModel pageStaticData sharedStaticData = Result String { userModel : userModel - , pageStaticData : pageStaticData - , sharedStaticData : sharedStaticData + , pageData : pageData + , sharedData : sharedData } } update : - ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData + ProgramConfig userMsg userModel route siteData pageData sharedData -> Msg userMsg - -> Model userModel pageStaticData sharedStaticData - -> ( Model userModel pageStaticData sharedStaticData, Cmd (Msg userMsg) ) + -> Model userModel pageData sharedData + -> ( Model userModel pageData sharedData, Cmd (Msg userMsg) ) update config appMsg model = case appMsg of LinkClicked urlRequest -> @@ -331,7 +331,7 @@ update config appMsg model = Ok pageData -> let ( userModel, userCmd ) = - config.update pageData.sharedStaticData pageData.pageStaticData (Just model.key) userMsg pageData.userModel + config.update pageData.sharedData pageData.pageData (Just model.key) userMsg pageData.userModel updatedPageData = Ok { pageData | userModel = userModel } @@ -367,21 +367,21 @@ update config appMsg model = |> Result.map (\pageStaticData -> { userModel = userModel - , sharedStaticData = pageData.sharedStaticData - , pageStaticData = pageStaticData + , sharedData = pageData.sharedData + , pageData = pageStaticData } ) updatedPageStaticData = StaticHttpRequest.resolve ApplicationType.Browser - (config.staticData (config.urlToRoute url)) + (config.data (config.urlToRoute url)) contentJson.staticData |> Result.mapError (\_ -> "Http error") ( userModel, userCmd ) = config.update - pageData.sharedStaticData - (updatedPageStaticData |> Result.withDefault pageData.pageStaticData) + pageData.sharedData + (updatedPageStaticData |> Result.withDefault pageData.pageData) (Just model.key) (config.onPageChange { path = urlToPagePath url model.baseUrl @@ -415,17 +415,17 @@ update config appMsg model = urls = { currentUrl = model.url, baseUrl = model.baseUrl } - pageStaticDataResult : Result BuildError pageStaticData - pageStaticDataResult = + pageDataResult : Result BuildError pageData + pageDataResult = StaticHttpRequest.resolve ApplicationType.Browser - (config.staticData (config.urlToRoute model.url)) + (config.data (config.urlToRoute model.url)) contentJson.staticData |> Result.mapError (StaticHttpRequest.toBuildError model.url.path) - sharedStaticDataResult : Result BuildError sharedStaticData - sharedStaticDataResult = + sharedDataResult : Result BuildError sharedData + sharedDataResult = StaticHttpRequest.resolve ApplicationType.Browser - config.sharedStaticData + config.sharedData contentJson.staticData |> Result.mapError (StaticHttpRequest.toBuildError model.url.path) @@ -436,16 +436,16 @@ update config appMsg model = was404 = ContentCache.is404 model.contentCache urls in - case Result.map2 Tuple.pair sharedStaticDataResult pageStaticDataResult of - Ok ( sharedStaticData, pageStaticData ) -> + case Result.map2 Tuple.pair sharedDataResult pageDataResult of + Ok ( sharedData, pageData ) -> let updateResult = if from404ToNon404 then case model.pageData of - Ok pageData -> + Ok pageData_ -> config.update - sharedStaticData - pageStaticData + sharedData + pageData (Just model.key) (config.onPageChange { path = urlToPagePath model.url model.baseUrl @@ -454,7 +454,7 @@ update config appMsg model = , metadata = config.urlToRoute model.url } ) - pageData.userModel + pageData_.userModel |> Just Err error -> @@ -469,8 +469,8 @@ update config appMsg model = | contentCache = ContentCache.init (Just ( urls, contentJson )) , pageData = Ok - { pageStaticData = pageStaticData - , sharedStaticData = sharedStaticData + { pageData = pageData + , sharedData = sharedData , userModel = userModel } } @@ -487,8 +487,8 @@ update config appMsg model = model.pageData |> Result.map (\previousPageData -> - { pageStaticData = pageStaticData - , sharedStaticData = sharedStaticData + { pageData = pageData + , sharedData = sharedData , userModel = previousPageData.userModel } ) @@ -509,8 +509,8 @@ update config appMsg model = application : - ProgramConfig userMsg userModel route staticData pageStaticData sharedStaticData - -> Platform.Program Flags (Model userModel pageStaticData sharedStaticData) (Msg userMsg) + ProgramConfig userMsg userModel route staticData pageData sharedData + -> Platform.Program Flags (Model userModel pageData sharedData) (Msg userMsg) application config = Browser.application { init = diff --git a/src/Pages/Internal/Platform/Cli.elm b/src/Pages/Internal/Platform/Cli.elm index f17ea902..1d1decdf 100644 --- a/src/Pages/Internal/Platform/Cli.elm +++ b/src/Pages/Internal/Platform/Cli.elm @@ -69,7 +69,7 @@ type alias Program route = cliApplication : - ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData + ProgramConfig userMsg userModel route siteData pageData sharedData -> Program route cliApplication config = let @@ -184,12 +184,12 @@ asJsonView x = ---perform : RenderRequest route -> ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData -> (Json.Encode.Value -> Cmd Msg) -> Effect -> Cmd Msg +--perform : RenderRequest route -> ProgramConfig userMsg userModel route siteData pageData sharedData -> (Json.Encode.Value -> Cmd Msg) -> Effect -> Cmd Msg perform : RenderRequest route - -> ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData + -> ProgramConfig userMsg userModel route siteData pageData sharedData -> (Codec.Value -> Cmd Never) -> Effect -> Cmd Msg @@ -347,7 +347,7 @@ flagsDecoder = init : RenderRequest route -> ContentCache - -> ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData + -> ProgramConfig userMsg userModel route siteData pageData sharedData -> Decode.Value -> ( Model route, Effect ) init renderRequest contentCache config flags = @@ -381,7 +381,7 @@ initLegacy : RenderRequest route -> { a | secrets : SecretsDict, mode : Mode, staticHttpCache : Dict String (Maybe String) } -> ContentCache - -> ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData + -> ProgramConfig userMsg userModel route siteData pageData sharedData -> Decode.Value -> ( Model route, Effect ) initLegacy renderRequest { secrets, mode, staticHttpCache } contentCache config flags = @@ -393,8 +393,8 @@ initLegacy renderRequest { secrets, mode, staticHttpCache } contentCache config StaticResponses.renderSingleRoute config serverRequestPayload (DataSource.map2 (\_ _ -> ()) - (config.staticData serverRequestPayload.frontmatter) - config.sharedStaticData + (config.data serverRequestPayload.frontmatter) + config.sharedData ) (config.handleRoute serverRequestPayload.frontmatter) @@ -437,7 +437,7 @@ initLegacy renderRequest { secrets, mode, staticHttpCache } contentCache config updateAndSendPortIfDone : ContentCache - -> ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData + -> ProgramConfig userMsg userModel route siteData pageData sharedData -> Model route -> ( Model route, Effect ) updateAndSendPortIfDone contentCache config model = @@ -450,7 +450,7 @@ updateAndSendPortIfDone contentCache config model = update : ContentCache - -> ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData + -> ProgramConfig userMsg userModel route siteData pageData sharedData -> Msg -> Model route -> ( Model route, Effect ) @@ -620,7 +620,7 @@ update contentCache config msg model = nextStepToEffect : ContentCache - -> ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData + -> ProgramConfig userMsg userModel route siteData pageData sharedData -> Model route -> ( StaticResponses, StaticResponses.NextStep route ) -> ( Model route, Effect ) @@ -745,7 +745,7 @@ nextStepToEffect contentCache config model ( updatedStaticResponsesModel, nextSt sendSinglePageProgress : ToJsSuccessPayload - -> ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData + -> ProgramConfig userMsg userModel route siteData pageData sharedData -> Model route -> ( PagePath, route ) -> Effect @@ -786,17 +786,17 @@ sendSinglePageProgress toJsPayload config model = currentPage = { path = page, frontmatter = config.urlToRoute currentUrl } - pageStaticDataResult : Result BuildError pageStaticData - pageStaticDataResult = + pageDataResult : Result BuildError pageData + pageDataResult = StaticHttpRequest.resolve ApplicationType.Browser - (config.staticData (config.urlToRoute currentUrl)) + (config.data (config.urlToRoute currentUrl)) (staticData |> Dict.map (\_ v -> Just v)) |> Result.mapError (StaticHttpRequest.toBuildError currentUrl.path) - sharedStaticDataResult : Result BuildError sharedStaticData - sharedStaticDataResult = + sharedDataResult : Result BuildError sharedData + sharedDataResult = StaticHttpRequest.resolve ApplicationType.Browser - config.sharedStaticData + config.sharedData (staticData |> Dict.map (\_ v -> Just v)) |> Result.mapError (StaticHttpRequest.toBuildError currentUrl.path) @@ -813,14 +813,14 @@ sendSinglePageProgress toJsPayload config model = , fragment = Nothing } in - case Result.map2 Tuple.pair sharedStaticDataResult pageStaticDataResult of - Ok ( sharedStaticData, pageStaticData ) -> + case Result.map2 Tuple.pair sharedDataResult pageDataResult of + Ok ( sharedData, pageData ) -> let pageModel : userModel pageModel = config.init - sharedStaticData - pageStaticData + sharedData + pageData Nothing (Just { path = @@ -835,11 +835,11 @@ sendSinglePageProgress toJsPayload config model = viewValue : { title : String, body : Html userMsg } viewValue = - (config.view currentPage sharedStaticData pageStaticData |> .view) pageModel + (config.view currentPage sharedData pageData |> .view) pageModel headTags : List Head.Tag headTags = - config.view currentPage sharedStaticData pageStaticData |> .head + config.view currentPage sharedData pageData |> .head in { route = page |> PagePath.toString , contentJson = diff --git a/src/Pages/Internal/Platform/StaticResponses.elm b/src/Pages/Internal/Platform/StaticResponses.elm index 6a563693..e0f39260 100644 --- a/src/Pages/Internal/Platform/StaticResponses.elm +++ b/src/Pages/Internal/Platform/StaticResponses.elm @@ -36,9 +36,9 @@ error = init : { config | getStaticRoutes : DataSource.DataSource (List route) - , site : SiteConfig route siteStaticData - , staticData : route -> DataSource.DataSource pageStaticData - , sharedStaticData : DataSource.DataSource sharedStaticData + , site : SiteConfig route siteData + , data : route -> DataSource.DataSource pageData + , sharedData : DataSource.DataSource sharedData , generateFiles : DataSource.DataSource (List @@ -57,11 +57,11 @@ init config = (config.getStaticRoutes |> DataSource.andThen (\resolvedRoutes -> - config.site resolvedRoutes |> .staticData + config.site resolvedRoutes |> .data ) ) config.generateFiles - config.sharedStaticData + config.sharedData ) Dict.empty |> GettingInitialData @@ -157,9 +157,9 @@ nextStep : { config | getStaticRoutes : DataSource.DataSource (List route) , routeToPath : route -> List String - , staticData : route -> DataSource.DataSource pageStaticData - , sharedStaticData : DataSource.DataSource sharedStaticData - , site : SiteConfig route siteStaticData + , data : route -> DataSource.DataSource pageData + , sharedData : DataSource.DataSource sharedData + , site : SiteConfig route siteData , generateFiles : DataSource.DataSource (List @@ -393,7 +393,7 @@ nextStep config ({ mode, secrets, allRawResponses, errors } as model) maybeRoute ) config.getStaticRoutes config.generateFiles - config.sharedStaticData + config.sharedData ) (allRawResponses |> Dict.Extra.filterMap (\_ value -> Just value)) in @@ -408,8 +408,8 @@ nextStep config ({ mode, secrets, allRawResponses, errors } as model) maybeRoute entry = NotFetched (DataSource.map2 (\_ _ -> ()) - config.sharedStaticData - (config.staticData route) + config.sharedData + (config.data route) ) Dict.empty in diff --git a/src/Pages/ProgramConfig.elm b/src/Pages/ProgramConfig.elm index a7b0e100..e0bfab9d 100644 --- a/src/Pages/ProgramConfig.elm +++ b/src/Pages/ProgramConfig.elm @@ -11,10 +11,10 @@ import Pages.SiteConfig exposing (SiteConfig) import Url exposing (Url) -type alias ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData = +type alias ProgramConfig userMsg userModel route siteData pageData sharedData = { init : - sharedStaticData - -> pageStaticData + sharedData + -> pageData -> Maybe Browser.Navigation.Key -> Maybe @@ -26,16 +26,16 @@ type alias ProgramConfig userMsg userModel route siteStaticData pageStaticData s , metadata : route } -> ( userModel, Cmd userMsg ) - , update : sharedStaticData -> pageStaticData -> Maybe Browser.Navigation.Key -> userMsg -> userModel -> ( userModel, Cmd userMsg ) + , update : sharedData -> pageData -> Maybe Browser.Navigation.Key -> userMsg -> userModel -> ( userModel, Cmd userMsg ) , subscriptions : route -> PagePath -> userModel -> Sub userMsg - , sharedStaticData : DataSource.DataSource sharedStaticData - , staticData : route -> DataSource.DataSource pageStaticData + , sharedData : DataSource.DataSource sharedData + , data : route -> DataSource.DataSource pageData , view : { path : PagePath , frontmatter : route } - -> sharedStaticData - -> pageStaticData + -> sharedData + -> pageData -> { view : userModel -> { title : String, body : Html userMsg } , head : List Head.Tag @@ -44,7 +44,7 @@ type alias ProgramConfig userMsg userModel route siteStaticData pageStaticData s , getStaticRoutes : DataSource.DataSource (List route) , urlToRoute : Url -> route , routeToPath : route -> List String - , site : SiteConfig route siteStaticData + , site : SiteConfig route siteData , toJsPort : Json.Encode.Value -> Cmd Never , fromJsPort : Sub Decode.Value , generateFiles : diff --git a/src/Pages/SiteConfig.elm b/src/Pages/SiteConfig.elm index 493d093a..c5526999 100644 --- a/src/Pages/SiteConfig.elm +++ b/src/Pages/SiteConfig.elm @@ -5,14 +5,14 @@ import Head import Pages.Manifest -type alias SiteConfig route staticData = +type alias SiteConfig route data = List route -> - { staticData : DataSource.DataSource staticData + { data : DataSource.DataSource data , canonicalUrl : String - , manifest : staticData -> Pages.Manifest.Config + , manifest : data -> Pages.Manifest.Config , head : - staticData + data -> List Head.Tag , generateFiles : DataSource.DataSource diff --git a/src/RenderRequest.elm b/src/RenderRequest.elm index 64147c05..cef397e3 100644 --- a/src/RenderRequest.elm +++ b/src/RenderRequest.elm @@ -41,7 +41,7 @@ type ServerOrBuild decoder : - ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData + ProgramConfig userMsg userModel route siteData pageData sharedData -> Decode.Decoder (RenderRequest route) decoder config = optionalField "request" @@ -91,7 +91,7 @@ decoder config = requestPayloadDecoder : - ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData + ProgramConfig userMsg userModel route siteData pageData sharedData -> Decode.Decoder (RequestPayload route) requestPayloadDecoder config = (Decode.string diff --git a/tests/StaticHttpRequestsTests.elm b/tests/StaticHttpRequestsTests.elm index 2be30561..132de24b 100644 --- a/tests/StaticHttpRequestsTests.elm +++ b/tests/StaticHttpRequestsTests.elm @@ -879,7 +879,7 @@ startLowLevel generateFiles documentBodyResult staticHttpCache pages = Debug.todo <| "Couldn't find page: " ++ Debug.toString page ++ "\npages: " ++ Debug.toString pages , subscriptions = \_ _ _ -> Sub.none , routeToPath = \(Route route) -> route |> String.split "/" - , sharedStaticData = DataSource.succeed () + , sharedData = DataSource.succeed () , onPageChange = \_ -> Continue }