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.
Files changed (161) hide show
  1. package/codegen/elm-pages-codegen.js +38507 -0
  2. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmi +0 -0
  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.elmi +0 -0
  5. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmo +0 -0
  6. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Reporter.elmi +0 -0
  7. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Reporter.elmo +0 -0
  8. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Runner.elmi +0 -0
  9. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Runner.elmo +0 -0
  10. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  11. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
  12. package/generator/{template/public/style.css → dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/lock} +0 -0
  13. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  14. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm.json +1 -0
  15. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +6795 -0
  16. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +25651 -0
  17. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_runner.js +110 -0
  18. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_supervisor.js +187 -0
  19. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/package.json +1 -0
  20. package/generator/dead-code-review/elm-stuff/tests-0.19.1/src/Reporter.elm +26 -0
  21. package/generator/dead-code-review/elm-stuff/tests-0.19.1/src/Runner.elm +62 -0
  22. package/generator/dead-code-review/elm.json +35 -0
  23. package/generator/dead-code-review/src/Pages/Review/DeadCodeEliminateData.elm +181 -0
  24. package/generator/dead-code-review/src/ReviewConfig.elm +9 -0
  25. package/generator/dead-code-review/tests/Pages/Review/DeadCodeEliminateDataTest.elm +455 -0
  26. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Internal-RoutePattern.elmi +0 -0
  27. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Internal-RoutePattern.elmo +0 -0
  28. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolations.elmi +0 -0
  29. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolations.elmo +0 -0
  30. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolationsTest.elmi +0 -0
  31. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolationsTest.elmo +0 -0
  32. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Reporter.elmi +0 -0
  33. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Reporter.elmo +0 -0
  34. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Runner.elmi +0 -0
  35. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Runner.elmo +0 -0
  36. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  37. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
  38. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/lock +0 -0
  39. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
  40. package/generator/review/elm-stuff/tests-0.19.1/elm.json +1 -0
  41. package/generator/review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +6795 -0
  42. package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +27617 -0
  43. package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +110 -0
  44. package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +187 -0
  45. package/generator/review/elm-stuff/tests-0.19.1/js/package.json +1 -0
  46. package/generator/review/elm-stuff/tests-0.19.1/src/Reporter.elm +26 -0
  47. package/generator/review/elm-stuff/tests-0.19.1/src/Runner.elm +62 -0
  48. package/generator/review/elm.json +13 -4
  49. package/{src → generator/review/src}/Pages/Review/NoContractViolations.elm +148 -148
  50. package/generator/review/tests/Pages/Review/NoContractViolationsTest.elm +331 -0
  51. package/generator/src/RouteBuilder.elm +420 -0
  52. package/generator/src/SharedTemplate.elm +4 -5
  53. package/generator/src/SiteConfig.elm +3 -9
  54. package/generator/src/build.js +308 -95
  55. package/generator/src/cli.js +103 -8
  56. package/generator/src/codegen.js +192 -35
  57. package/generator/src/compile-elm.js +183 -31
  58. package/generator/src/dev-server.js +353 -96
  59. package/generator/src/elm-application.json +3 -1
  60. package/generator/src/elm-codegen.js +34 -0
  61. package/generator/src/elm-file-constants.js +2 -0
  62. package/generator/src/error-formatter.js +20 -1
  63. package/generator/src/generate-template-module-connector.js +125 -927
  64. package/generator/src/hello.ts +5 -0
  65. package/generator/src/pre-render-html.js +58 -104
  66. package/generator/src/render-worker.js +27 -13
  67. package/generator/src/render.js +252 -197
  68. package/generator/src/request-cache-fs.js +18 -0
  69. package/generator/src/request-cache.js +128 -56
  70. package/generator/src/rewrite-client-elm-json.js +49 -0
  71. package/generator/src/route-codegen-helpers.js +62 -1
  72. package/generator/static-code/dev-style.css +22 -0
  73. package/generator/static-code/elm-pages.js +43 -39
  74. package/generator/static-code/hmr.js +98 -88
  75. package/generator/template/app/Api.elm +25 -0
  76. package/generator/template/app/ErrorPage.elm +38 -0
  77. package/generator/template/app/Route/Index.elm +87 -0
  78. package/generator/template/{src → app}/Shared.elm +34 -13
  79. package/generator/template/app/Site.elm +19 -0
  80. package/generator/template/{src → app}/View.elm +0 -0
  81. package/generator/template/elm-pages.config.mjs +5 -0
  82. package/generator/template/elm.json +1 -0
  83. package/generator/template/{public/index.js → index.ts} +7 -3
  84. package/generator/template/package.json +4 -4
  85. package/generator/template/public/favicon.ico +0 -0
  86. package/generator/template/public/images/icon-png.png +0 -0
  87. package/generator/template/src/.gitkeep +0 -0
  88. package/generator/template/style.css +4 -0
  89. package/package.json +33 -23
  90. package/src/ApiRoute.elm +176 -43
  91. package/src/BuildError.elm +10 -1
  92. package/src/CookieParser.elm +84 -0
  93. package/src/DataSource/Env.elm +38 -0
  94. package/src/DataSource/File.elm +27 -16
  95. package/src/DataSource/Glob.elm +126 -80
  96. package/src/DataSource/Http.elm +283 -304
  97. package/src/DataSource/Internal/Glob.elm +5 -21
  98. package/src/DataSource/Internal/Request.elm +25 -0
  99. package/src/DataSource/Port.elm +17 -14
  100. package/src/DataSource.elm +55 -318
  101. package/src/Form/Field.elm +717 -0
  102. package/src/Form/FieldStatus.elm +36 -0
  103. package/src/Form/FieldView.elm +417 -0
  104. package/src/Form/FormData.elm +22 -0
  105. package/src/Form/Validation.elm +391 -0
  106. package/src/Form/Value.elm +118 -0
  107. package/src/Form.elm +1683 -0
  108. package/src/FormData.elm +58 -0
  109. package/src/FormDecoder.elm +102 -0
  110. package/src/Head/Seo.elm +12 -4
  111. package/src/Head.elm +12 -2
  112. package/src/HtmlPrinter.elm +1 -1
  113. package/src/Internal/ApiRoute.elm +17 -4
  114. package/src/Internal/Request.elm +7 -0
  115. package/src/PageServerResponse.elm +68 -0
  116. package/src/Pages/ContentCache.elm +1 -229
  117. package/src/Pages/Fetcher.elm +58 -0
  118. package/src/Pages/FormState.elm +256 -0
  119. package/src/Pages/Generate.elm +800 -0
  120. package/src/Pages/Internal/Form.elm +17 -0
  121. package/src/Pages/Internal/NotFoundReason.elm +3 -55
  122. package/src/Pages/Internal/Platform/Cli.elm +777 -579
  123. package/src/Pages/Internal/Platform/Effect.elm +5 -5
  124. package/src/Pages/Internal/Platform/StaticResponses.elm +178 -394
  125. package/src/Pages/Internal/Platform/ToJsPayload.elm +24 -23
  126. package/src/Pages/Internal/Platform.elm +1244 -504
  127. package/src/Pages/Internal/ResponseSketch.elm +19 -0
  128. package/src/Pages/Internal/RoutePattern.elm +596 -45
  129. package/src/Pages/Manifest.elm +26 -0
  130. package/src/Pages/Msg.elm +79 -0
  131. package/src/Pages/ProgramConfig.elm +67 -14
  132. package/src/Pages/SiteConfig.elm +3 -6
  133. package/src/Pages/StaticHttp/Request.elm +4 -2
  134. package/src/Pages/StaticHttpRequest.elm +50 -215
  135. package/src/Pages/Transition.elm +70 -0
  136. package/src/Path.elm +1 -0
  137. package/src/Pattern.elm +98 -0
  138. package/src/RenderRequest.elm +2 -2
  139. package/src/RequestsAndPending.elm +111 -9
  140. package/src/Server/Request.elm +1253 -0
  141. package/src/Server/Response.elm +292 -0
  142. package/src/Server/Session.elm +316 -0
  143. package/src/Server/SetCookie.elm +169 -0
  144. package/src/TerminalText.elm +1 -1
  145. package/src/Test/Html/Internal/ElmHtml/Markdown.elm +0 -1
  146. package/src/Test/Html/Internal/ElmHtml/ToString.elm +1 -1
  147. package/generator/src/Page.elm +0 -359
  148. package/generator/src/codegen-template-module.js +0 -183
  149. package/generator/src/elm-pages-js-minified.js +0 -1
  150. package/generator/template/src/Api.elm +0 -14
  151. package/generator/template/src/Page/Index.elm +0 -69
  152. package/generator/template/src/Site.elm +0 -41
  153. package/src/DataSource/ServerRequest.elm +0 -60
  154. package/src/Internal/OptimizedDecoder.elm +0 -18
  155. package/src/KeepOrDiscard.elm +0 -6
  156. package/src/OptimizedDecoder/Pipeline.elm +0 -335
  157. package/src/OptimizedDecoder.elm +0 -818
  158. package/src/Pages/Internal/ApplicationType.elm +0 -6
  159. package/src/Pages/Secrets.elm +0 -83
  160. package/src/Secrets.elm +0 -111
  161. 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_
@@ -1,6 +0,0 @@
1
- module KeepOrDiscard exposing (KeepOrDiscard(..))
2
-
3
-
4
- type KeepOrDiscard
5
- = Keep
6
- | Discard