elm-pages 3.0.0-beta.6 → 3.0.0-beta.7
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 +1 -1
- 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/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/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/js/Reporter.elm.js +1 -1
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +1 -1
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
- 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-Review-NoContractViolations.elmi +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/o.dat +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1 -1
- package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +1 -1
- package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
- package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
- package/generator/src/build.js +4 -14
- package/generator/src/config.js +39 -0
- package/generator/src/dev-server.js +5 -44
- package/generator/src/pre-render-html.js +34 -18
- package/package.json +1 -1
- package/src/DataSource.elm +28 -28
|
@@ -38904,7 +38904,7 @@ _Platform_export({'Generate':{'init':$author$project$Generate$main(
|
|
|
38904
38904
|
$elm$json$Json$Decode$field,
|
|
38905
38905
|
'templates',
|
|
38906
38906
|
$elm$json$Json$Decode$list(
|
|
38907
|
-
$elm$json$Json$Decode$list($elm$json$Json$Decode$string)))))(0)}});var isBackend = false && typeof isLamdera !== 'undefined'
|
|
38907
|
+
$elm$json$Json$Decode$list($elm$json$Json$Decode$string)))))(0)}});var isBackend = false && typeof isLamdera !== 'undefined'
|
|
38908
38908
|
|
|
38909
38909
|
function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder)
|
|
38910
38910
|
{
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -6692,7 +6692,7 @@ _Platform_export({'Reporter':{'init':$author$project$Reporter$main(
|
|
|
6692
6692
|
'paths',
|
|
6693
6693
|
$elm$json$Json$Decode$list($elm$json$Json$Decode$string)));
|
|
6694
6694
|
},
|
|
6695
|
-
A2($elm$json$Json$Decode$field, 'verbosity', $elm$json$Json$Decode$int)))(0)}});var isBackend = false && typeof isLamdera !== 'undefined'
|
|
6695
|
+
A2($elm$json$Json$Decode$field, 'verbosity', $elm$json$Json$Decode$int)))(0)}});var isBackend = false && typeof isLamdera !== 'undefined'
|
|
6696
6696
|
|
|
6697
6697
|
function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder)
|
|
6698
6698
|
{
|
|
@@ -25732,7 +25732,7 @@ _Platform_export({'Runner':{'init':$author$project$Runner$main(
|
|
|
25732
25732
|
},
|
|
25733
25733
|
A2($elm$json$Json$Decode$field, 'fuzzRuns', $elm$json$Json$Decode$int));
|
|
25734
25734
|
},
|
|
25735
|
-
A2($elm$json$Json$Decode$field, 'initialSeed', $elm$json$Json$Decode$int)))(0)}});var isBackend = false && typeof isLamdera !== 'undefined'
|
|
25735
|
+
A2($elm$json$Json$Decode$field, 'initialSeed', $elm$json$Json$Decode$int)))(0)}});var isBackend = false && typeof isLamdera !== 'undefined'
|
|
25736
25736
|
|
|
25737
25737
|
function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder)
|
|
25738
25738
|
{
|
|
@@ -75,7 +75,7 @@ console.elmlog = (str) => logs.push(str + "\n");
|
|
|
75
75
|
const { Elm } = require("./Runner.elm.js");
|
|
76
76
|
|
|
77
77
|
// Start the Elm app
|
|
78
|
-
const flags = { initialSeed:
|
|
78
|
+
const flags = { initialSeed: 2254786925, fuzzRuns: 100, filter: null };
|
|
79
79
|
const app = Elm.Runner.init({ flags: flags });
|
|
80
80
|
|
|
81
81
|
// Record the timing at which we received the last "runTest" message
|
|
@@ -75,19 +75,19 @@ let testsCount, todoTests;
|
|
|
75
75
|
let reporter;
|
|
76
76
|
let runners = [];
|
|
77
77
|
let working = false;
|
|
78
|
-
let workersCount =
|
|
78
|
+
let workersCount = 2;
|
|
79
79
|
let startWorkCallback = function(){};
|
|
80
80
|
const verbosity = 0;
|
|
81
81
|
|
|
82
82
|
// Create a long lived reporter worker
|
|
83
83
|
const { Elm } = require("./Reporter.elm.js");
|
|
84
84
|
const flags = {
|
|
85
|
-
initialSeed:
|
|
85
|
+
initialSeed: 2254786925,
|
|
86
86
|
fuzzRuns: 100,
|
|
87
|
-
mode: "
|
|
87
|
+
mode: "consoleNoColor",
|
|
88
88
|
verbosity: verbosity,
|
|
89
89
|
globs: [],
|
|
90
|
-
paths: ["/
|
|
90
|
+
paths: ["/home/runner/work/elm-pages-v3-beta/elm-pages-v3-beta/generator/dead-code-review/tests/Pages/Review/DeadCodeEliminateDataTest.elm"],
|
|
91
91
|
};
|
|
92
92
|
reporter = Elm.Reporter.init({ flags: flags });
|
|
93
93
|
|
package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Internal-RoutePattern.elmi
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -6692,7 +6692,7 @@ _Platform_export({'Reporter':{'init':$author$project$Reporter$main(
|
|
|
6692
6692
|
'paths',
|
|
6693
6693
|
$elm$json$Json$Decode$list($elm$json$Json$Decode$string)));
|
|
6694
6694
|
},
|
|
6695
|
-
A2($elm$json$Json$Decode$field, 'verbosity', $elm$json$Json$Decode$int)))(0)}});var isBackend = false && typeof isLamdera !== 'undefined'
|
|
6695
|
+
A2($elm$json$Json$Decode$field, 'verbosity', $elm$json$Json$Decode$int)))(0)}});var isBackend = false && typeof isLamdera !== 'undefined'
|
|
6696
6696
|
|
|
6697
6697
|
function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder)
|
|
6698
6698
|
{
|
|
@@ -27514,7 +27514,7 @@ _Platform_export({'Runner':{'init':$author$project$Runner$main(
|
|
|
27514
27514
|
},
|
|
27515
27515
|
A2($elm$json$Json$Decode$field, 'fuzzRuns', $elm$json$Json$Decode$int));
|
|
27516
27516
|
},
|
|
27517
|
-
A2($elm$json$Json$Decode$field, 'initialSeed', $elm$json$Json$Decode$int)))(0)}});var isBackend = false && typeof isLamdera !== 'undefined'
|
|
27517
|
+
A2($elm$json$Json$Decode$field, 'initialSeed', $elm$json$Json$Decode$int)))(0)}});var isBackend = false && typeof isLamdera !== 'undefined'
|
|
27518
27518
|
|
|
27519
27519
|
function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder)
|
|
27520
27520
|
{
|
|
@@ -75,7 +75,7 @@ console.elmlog = (str) => logs.push(str + "\n");
|
|
|
75
75
|
const { Elm } = require("./Runner.elm.js");
|
|
76
76
|
|
|
77
77
|
// Start the Elm app
|
|
78
|
-
const flags = { initialSeed:
|
|
78
|
+
const flags = { initialSeed: 3791732356, fuzzRuns: 100, filter: null };
|
|
79
79
|
const app = Elm.Runner.init({ flags: flags });
|
|
80
80
|
|
|
81
81
|
// Record the timing at which we received the last "runTest" message
|
|
@@ -75,19 +75,19 @@ let testsCount, todoTests;
|
|
|
75
75
|
let reporter;
|
|
76
76
|
let runners = [];
|
|
77
77
|
let working = false;
|
|
78
|
-
let workersCount =
|
|
78
|
+
let workersCount = 2;
|
|
79
79
|
let startWorkCallback = function(){};
|
|
80
80
|
const verbosity = 0;
|
|
81
81
|
|
|
82
82
|
// Create a long lived reporter worker
|
|
83
83
|
const { Elm } = require("./Reporter.elm.js");
|
|
84
84
|
const flags = {
|
|
85
|
-
initialSeed:
|
|
85
|
+
initialSeed: 3791732356,
|
|
86
86
|
fuzzRuns: 100,
|
|
87
|
-
mode: "
|
|
87
|
+
mode: "consoleNoColor",
|
|
88
88
|
verbosity: verbosity,
|
|
89
89
|
globs: [],
|
|
90
|
-
paths: ["/
|
|
90
|
+
paths: ["/home/runner/work/elm-pages-v3-beta/elm-pages-v3-beta/generator/review/tests/Pages/Review/NoContractViolationsTest.elm"],
|
|
91
91
|
};
|
|
92
92
|
reporter = Elm.Reporter.init({ flags: flags });
|
|
93
93
|
|
package/generator/src/build.js
CHANGED
|
@@ -17,6 +17,7 @@ const preRenderHtml = require("./pre-render-html.js");
|
|
|
17
17
|
const esbuild = require("esbuild");
|
|
18
18
|
const { createHash } = require("crypto");
|
|
19
19
|
const { merge_vite_configs } = require("./vite-utils.js");
|
|
20
|
+
const { resolveConfig } = require("./config.js");
|
|
20
21
|
|
|
21
22
|
let pool = [];
|
|
22
23
|
let pagesReady;
|
|
@@ -76,23 +77,12 @@ async function run(options) {
|
|
|
76
77
|
const generateCode = codegen.generate(options.base);
|
|
77
78
|
|
|
78
79
|
await generateCode;
|
|
80
|
+
|
|
81
|
+
const config = await resolveConfig();
|
|
79
82
|
await fsPromises.writeFile(
|
|
80
83
|
"elm-stuff/elm-pages/index.html",
|
|
81
|
-
preRenderHtml.templateHtml()
|
|
84
|
+
preRenderHtml.templateHtml(false, config.headTagsTemplate)
|
|
82
85
|
);
|
|
83
|
-
|
|
84
|
-
const config = await import(
|
|
85
|
-
path.join(process.cwd(), "elm-pages.config.mjs")
|
|
86
|
-
)
|
|
87
|
-
.then(async (elmPagesConfig) => {
|
|
88
|
-
return elmPagesConfig.default || {};
|
|
89
|
-
})
|
|
90
|
-
.catch((error) => {
|
|
91
|
-
console.warn(
|
|
92
|
-
"No `elm-pages.config.mjs` file found. Using default config."
|
|
93
|
-
);
|
|
94
|
-
return {};
|
|
95
|
-
});
|
|
96
86
|
const viteConfig = merge_vite_configs(
|
|
97
87
|
{
|
|
98
88
|
configFile: false,
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const path = require("path");
|
|
2
|
+
|
|
3
|
+
async function resolveConfig() {
|
|
4
|
+
return await import(path.join(process.cwd(), "elm-pages.config.mjs"))
|
|
5
|
+
.then(async (elmPagesConfig) => {
|
|
6
|
+
return (
|
|
7
|
+
elmPagesConfig.default || {
|
|
8
|
+
headTagsTemplate: defaultHeadTagsTemplate,
|
|
9
|
+
}
|
|
10
|
+
);
|
|
11
|
+
})
|
|
12
|
+
.catch((error) => {
|
|
13
|
+
console.warn(
|
|
14
|
+
"No `elm-pages.config.mjs` file found. Using default config."
|
|
15
|
+
);
|
|
16
|
+
return {
|
|
17
|
+
headTagsTemplate: defaultHeadTagsTemplate,
|
|
18
|
+
vite: {},
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function defaultHeadTagsTemplate(context) {
|
|
24
|
+
return `
|
|
25
|
+
<link rel="stylesheet" href="/style.css" />
|
|
26
|
+
<meta charset="UTF-8" />
|
|
27
|
+
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
|
28
|
+
<meta name="generator" content="elm-pages v${context.cliVersion}" />
|
|
29
|
+
<meta name="mobile-web-app-capable" content="yes" />
|
|
30
|
+
<meta name="theme-color" content="#ffffff" />
|
|
31
|
+
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
32
|
+
<meta
|
|
33
|
+
name="apple-mobile-web-app-status-bar-style"
|
|
34
|
+
content="black-translucent"
|
|
35
|
+
/>
|
|
36
|
+
`;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
module.exports = { resolveConfig };
|
|
@@ -25,6 +25,8 @@ const { createServer: createViteServer } = require("vite");
|
|
|
25
25
|
const cliVersion = require("../../package.json").version;
|
|
26
26
|
const esbuild = require("esbuild");
|
|
27
27
|
const { merge_vite_configs } = require("./vite-utils.js");
|
|
28
|
+
const { templateHtml } = require("./pre-render-html.js");
|
|
29
|
+
const { resolveConfig } = require("./config.js");
|
|
28
30
|
|
|
29
31
|
/**
|
|
30
32
|
* @param {{ port: string; base: string; https: boolean; debug: boolean; }} options
|
|
@@ -118,20 +120,7 @@ async function start(options) {
|
|
|
118
120
|
watcher.add(sourceDirs);
|
|
119
121
|
}
|
|
120
122
|
|
|
121
|
-
const
|
|
122
|
-
path.join(process.cwd(), "elm-pages.config.mjs")
|
|
123
|
-
)
|
|
124
|
-
.then(async (elmPagesConfig) => {
|
|
125
|
-
return elmPagesConfig.default.vite || {};
|
|
126
|
-
})
|
|
127
|
-
.catch((error) => {
|
|
128
|
-
console.warn(
|
|
129
|
-
kleur.yellow(
|
|
130
|
-
"No `elm-pages.config.mjs` file found. Using default config."
|
|
131
|
-
)
|
|
132
|
-
);
|
|
133
|
-
return {};
|
|
134
|
-
});
|
|
123
|
+
const config = await resolveConfig();
|
|
135
124
|
const vite = await createViteServer(
|
|
136
125
|
merge_vite_configs(
|
|
137
126
|
{
|
|
@@ -145,7 +134,7 @@ async function start(options) {
|
|
|
145
134
|
base: options.base,
|
|
146
135
|
},
|
|
147
136
|
|
|
148
|
-
|
|
137
|
+
config.vite
|
|
149
138
|
)
|
|
150
139
|
);
|
|
151
140
|
esbuild
|
|
@@ -469,35 +458,7 @@ async function start(options) {
|
|
|
469
458
|
}
|
|
470
459
|
case "html": {
|
|
471
460
|
try {
|
|
472
|
-
const template =
|
|
473
|
-
/*html*/
|
|
474
|
-
`<!DOCTYPE html>
|
|
475
|
-
<!-- ROOT --><html lang="en">
|
|
476
|
-
<head>
|
|
477
|
-
<script src="/hmr.js" type="text/javascript"></script>
|
|
478
|
-
<script src="/elm.js" type="text/javascript"></script>
|
|
479
|
-
<link rel="stylesheet" href="/style.css">
|
|
480
|
-
<link rel="stylesheet" href="/dev-style.css">
|
|
481
|
-
<script src="/elm-pages.js" type="module"></script>
|
|
482
|
-
<meta charset="UTF-8" />
|
|
483
|
-
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
|
484
|
-
<title><!-- PLACEHOLDER_TITLE --></title>
|
|
485
|
-
<meta name="generator" content="elm-pages v${cliVersion}" />
|
|
486
|
-
<meta name="mobile-web-app-capable" content="yes" />
|
|
487
|
-
<meta name="theme-color" content="#ffffff" />
|
|
488
|
-
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
489
|
-
<meta
|
|
490
|
-
name="apple-mobile-web-app-status-bar-style"
|
|
491
|
-
content="black-translucent"
|
|
492
|
-
/>
|
|
493
|
-
<!-- PLACEHOLDER_HEAD_AND_DATA -->
|
|
494
|
-
</head>
|
|
495
|
-
<body>
|
|
496
|
-
<div data-url="" display="none"></div>
|
|
497
|
-
<!-- PLACEHOLDER_HTML -->
|
|
498
|
-
</body>
|
|
499
|
-
</html>
|
|
500
|
-
`;
|
|
461
|
+
const template = templateHtml(true, config.headTagsTemplate);
|
|
501
462
|
const processedTemplate = await vite.transformIndexHtml(
|
|
502
463
|
req.originalUrl,
|
|
503
464
|
template
|
|
@@ -17,28 +17,34 @@ function wrapHtml(basePath, fromElm, contentDatPayload) {
|
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
/**
|
|
21
|
+
* @param {boolean} devMode
|
|
22
|
+
* @param {(context: {cliVersion: string;}) => string} userHeadTagsTemplate
|
|
23
|
+
*/
|
|
24
|
+
function templateHtml(devMode, userHeadTagsTemplate) {
|
|
21
25
|
return /* html */ `<!DOCTYPE html>
|
|
22
26
|
<!-- ROOT --><html lang="en">
|
|
23
27
|
<head>
|
|
24
|
-
<!-- PLACEHOLDER_PRELOADS -->
|
|
25
|
-
<script defer src="/elm.js" type="text/javascript"></script>
|
|
26
|
-
<script defer src="${path.join(
|
|
27
|
-
__dirname,
|
|
28
|
-
"../static-code/elm-pages.js"
|
|
29
|
-
)}" type="module"></script>
|
|
30
|
-
<link rel="stylesheet" href="/style.css" />
|
|
31
|
-
<meta charset="UTF-8" />
|
|
32
|
-
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
|
33
28
|
<title><!-- PLACEHOLDER_TITLE --></title>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<
|
|
38
|
-
<
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
29
|
+
${
|
|
30
|
+
devMode
|
|
31
|
+
? `
|
|
32
|
+
<script src="/hmr.js" type="text/javascript"></script>
|
|
33
|
+
<link rel="stylesheet" href="/dev-style.css">`
|
|
34
|
+
: `
|
|
35
|
+
<!-- PLACEHOLDER_PRELOADS -->`
|
|
36
|
+
}
|
|
37
|
+
<script defer src="/elm.js" type="text/javascript"></script>
|
|
38
|
+
${
|
|
39
|
+
devMode
|
|
40
|
+
? `<script src="/elm-pages.js" type="module"></script>
|
|
41
|
+
`
|
|
42
|
+
: `<script defer src="${path.join(
|
|
43
|
+
__dirname,
|
|
44
|
+
"../static-code/elm-pages.js"
|
|
45
|
+
)}" type="module"></script>`
|
|
46
|
+
}
|
|
47
|
+
${indent(userHeadTagsTemplate({ cliVersion }))}
|
|
42
48
|
<!-- PLACEHOLDER_HEAD_AND_DATA -->
|
|
43
49
|
</head>
|
|
44
50
|
<body>
|
|
@@ -48,6 +54,16 @@ function templateHtml() {
|
|
|
48
54
|
</html>`;
|
|
49
55
|
}
|
|
50
56
|
|
|
57
|
+
/**
|
|
58
|
+
* @param {string} snippet
|
|
59
|
+
*/
|
|
60
|
+
function indent(snippet) {
|
|
61
|
+
return snippet
|
|
62
|
+
.split("\n")
|
|
63
|
+
.map((line) => ` ${line}`)
|
|
64
|
+
.join("\n");
|
|
65
|
+
}
|
|
66
|
+
|
|
51
67
|
/**
|
|
52
68
|
* @param {string} processedTemplate
|
|
53
69
|
*/
|
package/package.json
CHANGED
package/src/DataSource.elm
CHANGED
|
@@ -123,16 +123,16 @@ A common use for this is to map your data into your elm-pages view:
|
|
|
123
123
|
map : (a -> b) -> DataSource a -> DataSource b
|
|
124
124
|
map fn requestInfo =
|
|
125
125
|
case requestInfo of
|
|
126
|
-
|
|
127
|
-
|
|
126
|
+
ApiRoute value ->
|
|
127
|
+
ApiRoute (fn value)
|
|
128
128
|
|
|
129
129
|
Request urls lookupFn ->
|
|
130
130
|
Request
|
|
131
131
|
urls
|
|
132
132
|
(mapLookupFn fn lookupFn)
|
|
133
133
|
|
|
134
|
-
|
|
135
|
-
|
|
134
|
+
RequestError error ->
|
|
135
|
+
RequestError error
|
|
136
136
|
|
|
137
137
|
|
|
138
138
|
mapLookupFn : (a -> b) -> (d -> c -> DataSource a) -> d -> c -> DataSource b
|
|
@@ -182,8 +182,8 @@ resolve =
|
|
|
182
182
|
|
|
183
183
|
-}
|
|
184
184
|
combine : List (DataSource value) -> DataSource (List value)
|
|
185
|
-
combine =
|
|
186
|
-
List.
|
|
185
|
+
combine items =
|
|
186
|
+
List.foldl (map2 (::)) (succeed []) items |> map List.reverse
|
|
187
187
|
|
|
188
188
|
|
|
189
189
|
{-| Like map, but it takes in two `Request`s.
|
|
@@ -212,11 +212,8 @@ combine =
|
|
|
212
212
|
map2 : (a -> b -> c) -> DataSource a -> DataSource b -> DataSource c
|
|
213
213
|
map2 fn request1 request2 =
|
|
214
214
|
case ( request1, request2 ) of
|
|
215
|
-
(
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
( _, RequestError error ) ->
|
|
219
|
-
RequestError error
|
|
215
|
+
( ApiRoute value1, ApiRoute value2 ) ->
|
|
216
|
+
ApiRoute (fn value1 value2)
|
|
220
217
|
|
|
221
218
|
( Request urls1 lookupFn1, Request urls2 lookupFn2 ) ->
|
|
222
219
|
Request
|
|
@@ -233,8 +230,11 @@ map2 fn request1 request2 =
|
|
|
233
230
|
urls1
|
|
234
231
|
(mapReq fn (\_ _ -> ApiRoute value2) lookupFn1)
|
|
235
232
|
|
|
236
|
-
(
|
|
237
|
-
|
|
233
|
+
( RequestError error, _ ) ->
|
|
234
|
+
RequestError error
|
|
235
|
+
|
|
236
|
+
( _, RequestError error ) ->
|
|
237
|
+
RequestError error
|
|
238
238
|
|
|
239
239
|
|
|
240
240
|
mapReq : (a -> b -> c) -> (e -> d -> DataSource a) -> (e -> d -> DataSource b) -> e -> d -> DataSource c
|
|
@@ -247,9 +247,6 @@ mapReq fn lookupFn1 lookupFn2 maybeMock rawResponses =
|
|
|
247
247
|
lookup : Maybe Pages.StaticHttpRequest.MockResolver -> DataSource value -> RequestsAndPending -> Result Pages.StaticHttpRequest.Error value
|
|
248
248
|
lookup maybeMockResolver requestInfo rawResponses =
|
|
249
249
|
case requestInfo of
|
|
250
|
-
RequestError error ->
|
|
251
|
-
Err error
|
|
252
|
-
|
|
253
250
|
Request urls lookupFn ->
|
|
254
251
|
lookup maybeMockResolver
|
|
255
252
|
(addUrls urls (lookupFn maybeMockResolver rawResponses))
|
|
@@ -258,18 +255,21 @@ lookup maybeMockResolver requestInfo rawResponses =
|
|
|
258
255
|
ApiRoute value ->
|
|
259
256
|
Ok value
|
|
260
257
|
|
|
258
|
+
RequestError error ->
|
|
259
|
+
Err error
|
|
260
|
+
|
|
261
261
|
|
|
262
262
|
addUrls : List HashRequest.Request -> DataSource value -> DataSource value
|
|
263
263
|
addUrls urlsToAdd requestInfo =
|
|
264
264
|
case requestInfo of
|
|
265
|
-
|
|
266
|
-
|
|
265
|
+
ApiRoute value ->
|
|
266
|
+
ApiRoute value
|
|
267
267
|
|
|
268
268
|
Request initialUrls function ->
|
|
269
269
|
Request (initialUrls ++ urlsToAdd) function
|
|
270
270
|
|
|
271
|
-
|
|
272
|
-
|
|
271
|
+
RequestError error ->
|
|
272
|
+
RequestError error
|
|
273
273
|
|
|
274
274
|
|
|
275
275
|
{-| The full details to perform a StaticHttp request.
|
|
@@ -286,14 +286,14 @@ type alias RequestDetails =
|
|
|
286
286
|
lookupUrls : DataSource value -> List RequestDetails
|
|
287
287
|
lookupUrls requestInfo =
|
|
288
288
|
case requestInfo of
|
|
289
|
-
|
|
290
|
-
-- TODO should this have URLs passed through?
|
|
289
|
+
ApiRoute _ ->
|
|
291
290
|
[]
|
|
292
291
|
|
|
293
292
|
Request urls _ ->
|
|
294
293
|
urls
|
|
295
294
|
|
|
296
|
-
|
|
295
|
+
RequestError _ ->
|
|
296
|
+
-- TODO should this have URLs passed through?
|
|
297
297
|
[]
|
|
298
298
|
|
|
299
299
|
|
|
@@ -324,19 +324,19 @@ andThen fn requestInfo =
|
|
|
324
324
|
rawResponses
|
|
325
325
|
|> (\result ->
|
|
326
326
|
case result of
|
|
327
|
-
Err error ->
|
|
328
|
-
RequestError error
|
|
329
|
-
|
|
330
327
|
Ok value ->
|
|
331
328
|
case fn value of
|
|
329
|
+
ApiRoute finalValue ->
|
|
330
|
+
ApiRoute finalValue
|
|
331
|
+
|
|
332
332
|
Request values function ->
|
|
333
333
|
Request values function
|
|
334
334
|
|
|
335
335
|
RequestError error ->
|
|
336
336
|
RequestError error
|
|
337
337
|
|
|
338
|
-
|
|
339
|
-
|
|
338
|
+
Err error ->
|
|
339
|
+
RequestError error
|
|
340
340
|
)
|
|
341
341
|
)
|
|
342
342
|
|