elm-pages 2.1.11 → 3.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/codegen/elm-pages-codegen.js +38507 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Reporter.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Reporter.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Runner.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Runner.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
- package/generator/{template/public/style.css → dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/lock} +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm.json +1 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +6795 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +25651 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_runner.js +110 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_supervisor.js +187 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/package.json +1 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/src/Reporter.elm +26 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/src/Runner.elm +62 -0
- package/generator/dead-code-review/elm.json +35 -0
- package/generator/dead-code-review/src/Pages/Review/DeadCodeEliminateData.elm +181 -0
- package/generator/dead-code-review/src/ReviewConfig.elm +9 -0
- package/generator/dead-code-review/tests/Pages/Review/DeadCodeEliminateDataTest.elm +455 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Internal-RoutePattern.elmi +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Internal-RoutePattern.elmo +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolations.elmi +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolations.elmo +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolationsTest.elmi +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolationsTest.elmo +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Reporter.elmi +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Reporter.elmo +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Runner.elmi +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Runner.elmo +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/lock +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm.json +1 -0
- package/generator/review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +6795 -0
- package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +27617 -0
- package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +110 -0
- package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +187 -0
- package/generator/review/elm-stuff/tests-0.19.1/js/package.json +1 -0
- package/generator/review/elm-stuff/tests-0.19.1/src/Reporter.elm +26 -0
- package/generator/review/elm-stuff/tests-0.19.1/src/Runner.elm +62 -0
- package/generator/review/elm.json +13 -4
- package/{src → generator/review/src}/Pages/Review/NoContractViolations.elm +148 -148
- package/generator/review/tests/Pages/Review/NoContractViolationsTest.elm +331 -0
- package/generator/src/RouteBuilder.elm +420 -0
- package/generator/src/SharedTemplate.elm +4 -5
- package/generator/src/SiteConfig.elm +3 -9
- package/generator/src/build.js +308 -95
- package/generator/src/cli.js +103 -8
- package/generator/src/codegen.js +192 -35
- package/generator/src/compile-elm.js +183 -31
- package/generator/src/dev-server.js +353 -96
- package/generator/src/elm-application.json +3 -1
- package/generator/src/elm-codegen.js +34 -0
- package/generator/src/elm-file-constants.js +2 -0
- package/generator/src/error-formatter.js +20 -1
- package/generator/src/generate-template-module-connector.js +125 -927
- package/generator/src/hello.ts +5 -0
- package/generator/src/pre-render-html.js +58 -104
- package/generator/src/render-worker.js +27 -13
- package/generator/src/render.js +252 -197
- package/generator/src/request-cache-fs.js +18 -0
- package/generator/src/request-cache.js +128 -56
- package/generator/src/rewrite-client-elm-json.js +49 -0
- package/generator/src/route-codegen-helpers.js +62 -1
- package/generator/static-code/dev-style.css +22 -0
- package/generator/static-code/elm-pages.js +43 -39
- package/generator/static-code/hmr.js +98 -88
- package/generator/template/app/Api.elm +25 -0
- package/generator/template/app/ErrorPage.elm +38 -0
- package/generator/template/app/Route/Index.elm +87 -0
- package/generator/template/{src → app}/Shared.elm +34 -13
- package/generator/template/app/Site.elm +19 -0
- package/generator/template/{src → app}/View.elm +0 -0
- package/generator/template/elm-pages.config.mjs +5 -0
- package/generator/template/elm.json +1 -0
- package/generator/template/{public/index.js → index.ts} +7 -3
- package/generator/template/package.json +4 -4
- package/generator/template/public/favicon.ico +0 -0
- package/generator/template/public/images/icon-png.png +0 -0
- package/generator/template/src/.gitkeep +0 -0
- package/generator/template/style.css +4 -0
- package/package.json +33 -23
- package/src/ApiRoute.elm +176 -43
- package/src/BuildError.elm +10 -1
- package/src/CookieParser.elm +84 -0
- package/src/DataSource/Env.elm +38 -0
- package/src/DataSource/File.elm +27 -16
- package/src/DataSource/Glob.elm +126 -80
- package/src/DataSource/Http.elm +283 -304
- package/src/DataSource/Internal/Glob.elm +5 -21
- package/src/DataSource/Internal/Request.elm +25 -0
- package/src/DataSource/Port.elm +17 -14
- package/src/DataSource.elm +55 -318
- package/src/Form/Field.elm +717 -0
- package/src/Form/FieldStatus.elm +36 -0
- package/src/Form/FieldView.elm +417 -0
- package/src/Form/FormData.elm +22 -0
- package/src/Form/Validation.elm +391 -0
- package/src/Form/Value.elm +118 -0
- package/src/Form.elm +1683 -0
- package/src/FormData.elm +58 -0
- package/src/FormDecoder.elm +102 -0
- package/src/Head/Seo.elm +12 -4
- package/src/Head.elm +12 -2
- package/src/HtmlPrinter.elm +1 -1
- package/src/Internal/ApiRoute.elm +17 -4
- package/src/Internal/Request.elm +7 -0
- package/src/PageServerResponse.elm +68 -0
- package/src/Pages/ContentCache.elm +1 -229
- package/src/Pages/Fetcher.elm +58 -0
- package/src/Pages/FormState.elm +256 -0
- package/src/Pages/Generate.elm +800 -0
- package/src/Pages/Internal/Form.elm +17 -0
- package/src/Pages/Internal/NotFoundReason.elm +3 -55
- package/src/Pages/Internal/Platform/Cli.elm +777 -579
- package/src/Pages/Internal/Platform/Effect.elm +5 -5
- package/src/Pages/Internal/Platform/StaticResponses.elm +178 -394
- package/src/Pages/Internal/Platform/ToJsPayload.elm +24 -23
- package/src/Pages/Internal/Platform.elm +1244 -504
- package/src/Pages/Internal/ResponseSketch.elm +19 -0
- package/src/Pages/Internal/RoutePattern.elm +596 -45
- package/src/Pages/Manifest.elm +26 -0
- package/src/Pages/Msg.elm +79 -0
- package/src/Pages/ProgramConfig.elm +67 -14
- package/src/Pages/SiteConfig.elm +3 -6
- package/src/Pages/StaticHttp/Request.elm +4 -2
- package/src/Pages/StaticHttpRequest.elm +50 -215
- package/src/Pages/Transition.elm +70 -0
- package/src/Path.elm +1 -0
- package/src/Pattern.elm +98 -0
- package/src/RenderRequest.elm +2 -2
- package/src/RequestsAndPending.elm +111 -9
- package/src/Server/Request.elm +1253 -0
- package/src/Server/Response.elm +292 -0
- package/src/Server/Session.elm +316 -0
- package/src/Server/SetCookie.elm +169 -0
- package/src/TerminalText.elm +1 -1
- package/src/Test/Html/Internal/ElmHtml/Markdown.elm +0 -1
- package/src/Test/Html/Internal/ElmHtml/ToString.elm +1 -1
- package/generator/src/Page.elm +0 -359
- package/generator/src/codegen-template-module.js +0 -183
- package/generator/src/elm-pages-js-minified.js +0 -1
- package/generator/template/src/Api.elm +0 -14
- package/generator/template/src/Page/Index.elm +0 -69
- package/generator/template/src/Site.elm +0 -41
- package/src/DataSource/ServerRequest.elm +0 -60
- package/src/Internal/OptimizedDecoder.elm +0 -18
- package/src/KeepOrDiscard.elm +0 -6
- package/src/OptimizedDecoder/Pipeline.elm +0 -335
- package/src/OptimizedDecoder.elm +0 -818
- package/src/Pages/Internal/ApplicationType.elm +0 -6
- package/src/Pages/Secrets.elm +0 -83
- package/src/Secrets.elm +0 -111
- package/src/SecretsDict.elm +0 -45
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
const fs = require("./dir-helpers.js");
|
|
2
|
-
const path = require("path");
|
|
3
|
-
const routeHelpers = require("./route-codegen-helpers");
|
|
4
|
-
|
|
5
|
-
async function run({ moduleName }) {
|
|
6
|
-
if (!moduleName.match(/[A-Z][A-Za-z0-9]+(\.[A-Z][A-Za-z0-9])*/)) {
|
|
7
|
-
console.error("Invalid module name.");
|
|
8
|
-
process.exit(1);
|
|
9
|
-
}
|
|
10
|
-
const content = fileContent(moduleName);
|
|
11
|
-
const fullFilePath = path.join(
|
|
12
|
-
`src/Page/`,
|
|
13
|
-
moduleName.replace(/\./g, "/") + ".elm"
|
|
14
|
-
);
|
|
15
|
-
await fs.tryMkdir(path.dirname(fullFilePath));
|
|
16
|
-
fs.writeFile(fullFilePath, content);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* @param {string} pageModuleName
|
|
21
|
-
*/
|
|
22
|
-
function fileContent(pageModuleName) {
|
|
23
|
-
return routeHelpers.routeParams(pageModuleName.split(".")).length > 0
|
|
24
|
-
? fileContentWithParams(pageModuleName)
|
|
25
|
-
: fileContentWithoutParams(pageModuleName);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* @param {string} pageModuleName
|
|
30
|
-
*/
|
|
31
|
-
function fileContentWithParams(pageModuleName) {
|
|
32
|
-
return `module Page.${pageModuleName} exposing (Model, Msg, Data, page)
|
|
33
|
-
|
|
34
|
-
import DataSource exposing (DataSource)
|
|
35
|
-
import Head
|
|
36
|
-
import Head.Seo as Seo
|
|
37
|
-
import Page exposing (Page, PageWithState, StaticPayload)
|
|
38
|
-
import Pages.PageUrl exposing (PageUrl)
|
|
39
|
-
import Pages.Url
|
|
40
|
-
import Shared
|
|
41
|
-
import View exposing (View)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
type alias Model =
|
|
45
|
-
()
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
type alias Msg =
|
|
49
|
-
Never
|
|
50
|
-
|
|
51
|
-
type alias RouteParams =
|
|
52
|
-
${routeHelpers.paramsRecord(pageModuleName.split("."))}
|
|
53
|
-
|
|
54
|
-
page : Page RouteParams Data
|
|
55
|
-
page =
|
|
56
|
-
Page.prerender
|
|
57
|
-
{ head = head
|
|
58
|
-
, routes = routes
|
|
59
|
-
, data = data
|
|
60
|
-
}
|
|
61
|
-
|> Page.buildNoState { view = view }
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
routes : DataSource (List RouteParams)
|
|
65
|
-
routes =
|
|
66
|
-
DataSource.succeed []
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
data : RouteParams -> DataSource Data
|
|
70
|
-
data routeParams =
|
|
71
|
-
DataSource.succeed ()
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
head :
|
|
76
|
-
StaticPayload Data RouteParams
|
|
77
|
-
-> List Head.Tag
|
|
78
|
-
head static =
|
|
79
|
-
Seo.summary
|
|
80
|
-
{ canonicalUrlOverride = Nothing
|
|
81
|
-
, siteName = "elm-pages"
|
|
82
|
-
, image =
|
|
83
|
-
{ url = Pages.Url.external "TODO"
|
|
84
|
-
, alt = "elm-pages logo"
|
|
85
|
-
, dimensions = Nothing
|
|
86
|
-
, mimeType = Nothing
|
|
87
|
-
}
|
|
88
|
-
, description = "TODO"
|
|
89
|
-
, locale = Nothing
|
|
90
|
-
, title = "TODO title" -- metadata.title -- TODO
|
|
91
|
-
}
|
|
92
|
-
|> Seo.website
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
type alias Data =
|
|
96
|
-
()
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
view :
|
|
100
|
-
Maybe PageUrl
|
|
101
|
-
-> Shared.Model
|
|
102
|
-
-> StaticPayload Data RouteParams
|
|
103
|
-
-> View Msg
|
|
104
|
-
view maybeUrl sharedModel static =
|
|
105
|
-
View.placeholder "${pageModuleName}"
|
|
106
|
-
`;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* @param {string} pageModuleName
|
|
111
|
-
*/
|
|
112
|
-
function fileContentWithoutParams(pageModuleName) {
|
|
113
|
-
return `module Page.${pageModuleName} exposing (Model, Msg, Data, page)
|
|
114
|
-
|
|
115
|
-
import DataSource exposing (DataSource)
|
|
116
|
-
import Head
|
|
117
|
-
import Head.Seo as Seo
|
|
118
|
-
import Page exposing (Page, PageWithState, StaticPayload)
|
|
119
|
-
import Pages.PageUrl exposing (PageUrl)
|
|
120
|
-
import Pages.Url
|
|
121
|
-
import Shared
|
|
122
|
-
import View exposing (View)
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
type alias Model =
|
|
126
|
-
()
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
type alias Msg =
|
|
130
|
-
Never
|
|
131
|
-
|
|
132
|
-
type alias RouteParams =
|
|
133
|
-
{}
|
|
134
|
-
|
|
135
|
-
page : Page RouteParams Data
|
|
136
|
-
page =
|
|
137
|
-
Page.single
|
|
138
|
-
{ head = head
|
|
139
|
-
, data = data
|
|
140
|
-
}
|
|
141
|
-
|> Page.buildNoState { view = view }
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
type alias Data =
|
|
145
|
-
()
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
data : DataSource Data
|
|
149
|
-
data =
|
|
150
|
-
DataSource.succeed ()
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
head :
|
|
154
|
-
StaticPayload Data RouteParams
|
|
155
|
-
-> List Head.Tag
|
|
156
|
-
head static =
|
|
157
|
-
Seo.summary
|
|
158
|
-
{ canonicalUrlOverride = Nothing
|
|
159
|
-
, siteName = "elm-pages"
|
|
160
|
-
, image =
|
|
161
|
-
{ url = Pages.Url.external "TODO"
|
|
162
|
-
, alt = "elm-pages logo"
|
|
163
|
-
, dimensions = Nothing
|
|
164
|
-
, mimeType = Nothing
|
|
165
|
-
}
|
|
166
|
-
, description = "TODO"
|
|
167
|
-
, locale = Nothing
|
|
168
|
-
, title = "TODO title" -- metadata.title -- TODO
|
|
169
|
-
}
|
|
170
|
-
|> Seo.website
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
view :
|
|
174
|
-
Maybe PageUrl
|
|
175
|
-
-> Shared.Model
|
|
176
|
-
-> StaticPayload Data RouteParams
|
|
177
|
-
-> View Msg
|
|
178
|
-
view maybeUrl sharedModel static =
|
|
179
|
-
View.placeholder "${pageModuleName}"
|
|
180
|
-
`;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
module.exports = { run };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = `let prefetchedPages=[window.location.pathname],initialLocationHash=document.location.hash.replace(/^#/,"");function loadContentAndInitializeApp(){let a=window.location.pathname.replace(/(\w)$/,"$1/");a.endsWith("/")||(a+="/");const b=Elm.TemplateModulesBeta.init({flags:{secrets:null,baseUrl:document.baseURI,isPrerendering:!1,isDevServer:!1,isElmDebugMode:!1,contentJson:JSON.parse(document.getElementById("__ELM_PAGES_DATA__").innerHTML),userFlags:userInit.flags()}});return b.ports.toJsPort.subscribe(()=>{loadNamedAnchor()}),b}function loadNamedAnchor(){if(""!==initialLocationHash){const a=document.querySelector(\`[name=\${initialLocationHash}]\`);a&&a.scrollIntoView()}}function prefetchIfNeeded(a){if(a.host===window.location.host&&!prefetchedPages.includes(a.pathname)){prefetchedPages.push(a.pathname),console.log("Preloading...",a.pathname);const b=document.createElement("link");b.setAttribute("as","fetch"),b.setAttribute("rel","prefetch"),b.setAttribute("href",origin+a.pathname+"/content.json"),document.head.appendChild(b)}}const appPromise=new Promise(function(a){document.addEventListener("DOMContentLoaded",()=>{a(loadContentAndInitializeApp())})});userInit.load(appPromise),"function"==typeof connect&&connect(function(a){appPromise.then(b=>{b.ports.fromJsPort.send({contentJson:a})})});const trigger_prefetch=b=>{const c=find_anchor(b.target);c&&c.href&&c.hasAttribute("elm-pages:prefetch")&&prefetchIfNeeded(c)};let mousemove_timeout;const handle_mousemove=a=>{clearTimeout(mousemove_timeout),mousemove_timeout=setTimeout(()=>{trigger_prefetch(a)},20)};addEventListener("touchstart",trigger_prefetch),addEventListener("mousemove",handle_mousemove);function find_anchor(a){for(;a&&"A"!==a.nodeName.toUpperCase();)a=a.parentNode;return a}`;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
module Api exposing (routes)
|
|
2
|
-
|
|
3
|
-
import ApiRoute
|
|
4
|
-
import DataSource exposing (DataSource)
|
|
5
|
-
import Html exposing (Html)
|
|
6
|
-
import Route exposing (Route)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
routes :
|
|
10
|
-
DataSource (List Route)
|
|
11
|
-
-> (Html Never -> String)
|
|
12
|
-
-> List (ApiRoute.ApiRoute ApiRoute.Response)
|
|
13
|
-
routes getStaticRoutes htmlToString =
|
|
14
|
-
[]
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
module Page.Index exposing (Data, Model, Msg, page)
|
|
2
|
-
|
|
3
|
-
import DataSource exposing (DataSource)
|
|
4
|
-
import Head
|
|
5
|
-
import Head.Seo as Seo
|
|
6
|
-
import Page exposing (Page, StaticPayload)
|
|
7
|
-
import Pages.PageUrl exposing (PageUrl)
|
|
8
|
-
import Pages.Url
|
|
9
|
-
import Shared
|
|
10
|
-
import View exposing (View)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
type alias Model =
|
|
14
|
-
()
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
type alias Msg =
|
|
18
|
-
Never
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
type alias RouteParams =
|
|
22
|
-
{}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
page : Page RouteParams Data
|
|
26
|
-
page =
|
|
27
|
-
Page.single
|
|
28
|
-
{ head = head
|
|
29
|
-
, data = data
|
|
30
|
-
}
|
|
31
|
-
|> Page.buildNoState { view = view }
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
data : DataSource Data
|
|
35
|
-
data =
|
|
36
|
-
DataSource.succeed ()
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
head :
|
|
40
|
-
StaticPayload Data RouteParams
|
|
41
|
-
-> List Head.Tag
|
|
42
|
-
head static =
|
|
43
|
-
Seo.summary
|
|
44
|
-
{ canonicalUrlOverride = Nothing
|
|
45
|
-
, siteName = "elm-pages"
|
|
46
|
-
, image =
|
|
47
|
-
{ url = Pages.Url.external "TODO"
|
|
48
|
-
, alt = "elm-pages logo"
|
|
49
|
-
, dimensions = Nothing
|
|
50
|
-
, mimeType = Nothing
|
|
51
|
-
}
|
|
52
|
-
, description = "TODO"
|
|
53
|
-
, locale = Nothing
|
|
54
|
-
, title = "TODO title" -- metadata.title -- TODO
|
|
55
|
-
}
|
|
56
|
-
|> Seo.website
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
type alias Data =
|
|
60
|
-
()
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
view :
|
|
64
|
-
Maybe PageUrl
|
|
65
|
-
-> Shared.Model
|
|
66
|
-
-> StaticPayload Data RouteParams
|
|
67
|
-
-> View Msg
|
|
68
|
-
view maybeUrl sharedModel static =
|
|
69
|
-
View.placeholder "Index"
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
module Site exposing (config)
|
|
2
|
-
|
|
3
|
-
import DataSource
|
|
4
|
-
import Head
|
|
5
|
-
import Pages.Manifest as Manifest
|
|
6
|
-
import Route
|
|
7
|
-
import SiteConfig exposing (SiteConfig)
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
type alias Data =
|
|
11
|
-
()
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
config : SiteConfig Data
|
|
15
|
-
config =
|
|
16
|
-
{ data = data
|
|
17
|
-
, canonicalUrl = "https://elm-pages.com"
|
|
18
|
-
, manifest = manifest
|
|
19
|
-
, head = head
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
data : DataSource.DataSource Data
|
|
24
|
-
data =
|
|
25
|
-
DataSource.succeed ()
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
head : Data -> List Head.Tag
|
|
29
|
-
head static =
|
|
30
|
-
[ Head.sitemapLink "/sitemap.xml"
|
|
31
|
-
]
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
manifest : Data -> Manifest.Config
|
|
35
|
-
manifest static =
|
|
36
|
-
Manifest.init
|
|
37
|
-
{ name = "Site Name"
|
|
38
|
-
, description = "Description"
|
|
39
|
-
, startUrl = Route.Index |> Route.toPath
|
|
40
|
-
, icons = []
|
|
41
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
module DataSource.ServerRequest exposing (ServerRequest, expectHeader, init, optionalHeader, staticData, toStaticHttp)
|
|
2
|
-
|
|
3
|
-
{-|
|
|
4
|
-
|
|
5
|
-
@docs ServerRequest, expectHeader, init, optionalHeader, staticData, toStaticHttp
|
|
6
|
-
|
|
7
|
-
-}
|
|
8
|
-
|
|
9
|
-
import DataSource
|
|
10
|
-
import DataSource.Http
|
|
11
|
-
import OptimizedDecoder
|
|
12
|
-
import Secrets
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
{-| -}
|
|
16
|
-
type ServerRequest decodesTo
|
|
17
|
-
= ServerRequest (OptimizedDecoder.Decoder decodesTo)
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
{-| -}
|
|
21
|
-
init : constructor -> ServerRequest constructor
|
|
22
|
-
init constructor =
|
|
23
|
-
ServerRequest (OptimizedDecoder.succeed constructor)
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
{-| -}
|
|
27
|
-
staticData : DataSource.DataSource String
|
|
28
|
-
staticData =
|
|
29
|
-
DataSource.Http.get (Secrets.succeed "$$elm-pages$$headers")
|
|
30
|
-
(OptimizedDecoder.field "headers"
|
|
31
|
-
(OptimizedDecoder.field "accept-language" OptimizedDecoder.string)
|
|
32
|
-
)
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
{-| -}
|
|
36
|
-
toStaticHttp : ServerRequest decodesTo -> DataSource.DataSource decodesTo
|
|
37
|
-
toStaticHttp (ServerRequest decoder) =
|
|
38
|
-
DataSource.Http.get (Secrets.succeed "$$elm-pages$$headers") decoder
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
{-| -}
|
|
42
|
-
expectHeader : String -> ServerRequest (String -> value) -> ServerRequest value
|
|
43
|
-
expectHeader headerName (ServerRequest decoder) =
|
|
44
|
-
decoder
|
|
45
|
-
|> OptimizedDecoder.andMap
|
|
46
|
-
(OptimizedDecoder.field headerName OptimizedDecoder.string
|
|
47
|
-
|> OptimizedDecoder.field "headers"
|
|
48
|
-
)
|
|
49
|
-
|> ServerRequest
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
{-| -}
|
|
53
|
-
optionalHeader : String -> ServerRequest (Maybe String -> value) -> ServerRequest value
|
|
54
|
-
optionalHeader headerName (ServerRequest decoder) =
|
|
55
|
-
decoder
|
|
56
|
-
|> OptimizedDecoder.andMap
|
|
57
|
-
(OptimizedDecoder.optionalField headerName OptimizedDecoder.string
|
|
58
|
-
|> OptimizedDecoder.field "headers"
|
|
59
|
-
)
|
|
60
|
-
|> ServerRequest
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
module Internal.OptimizedDecoder exposing (OptimizedDecoder(..), jd, jde)
|
|
2
|
-
|
|
3
|
-
import Json.Decode
|
|
4
|
-
import Json.Decode.Exploration
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
type OptimizedDecoder a
|
|
8
|
-
= OptimizedDecoder (Json.Decode.Decoder a) (Json.Decode.Exploration.Decoder a)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
jd : OptimizedDecoder a -> Json.Decode.Decoder a
|
|
12
|
-
jd (OptimizedDecoder jd_ _) =
|
|
13
|
-
jd_
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
jde : OptimizedDecoder a -> Json.Decode.Exploration.Decoder a
|
|
17
|
-
jde (OptimizedDecoder _ jde_) =
|
|
18
|
-
jde_
|