elm-pages 3.0.0-beta.0 → 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 (30) 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/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/d.dat +0 -0
  27. package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  28. package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +1 -1
  29. package/generator/src/generate-template-module-connector.js +20 -18
  30. package/package.json +5 -2
@@ -0,0 +1,455 @@
1
+ module Pages.Review.DeadCodeEliminateDataTest exposing (all)
2
+
3
+ import Pages.Review.DeadCodeEliminateData exposing (rule)
4
+ import Review.Test
5
+ import Test exposing (Test, describe, test)
6
+
7
+
8
+ all : Test
9
+ all =
10
+ describe "dead code elimination"
11
+ [ test "replaces data record setter" <|
12
+ \() ->
13
+ """module Route.Index exposing (Data, Model, Msg, route)
14
+
15
+ import DataSource exposing (DataSource)
16
+ import RouteBuilder exposing (Page, StaticPayload, single)
17
+ import Pages.PageUrl exposing (PageUrl)
18
+ import Pages.Url
19
+ import Path
20
+ import Route exposing (Route)
21
+ import Shared
22
+ import View exposing (View)
23
+
24
+
25
+ type alias Model =
26
+ {}
27
+
28
+
29
+ type alias Msg =
30
+ ()
31
+
32
+
33
+ type alias RouteParams =
34
+ {}
35
+
36
+
37
+ type alias Data =
38
+ ()
39
+
40
+
41
+ route : StatelessRoute RouteParams Data ActionData
42
+ route =
43
+ single
44
+ { head = head
45
+ , data = data
46
+ }
47
+ |> RouteBuilder.buildNoState { view = view }
48
+
49
+
50
+ data : DataSource Data
51
+ data =
52
+ DataSource.succeed ()
53
+ """
54
+ |> Review.Test.run rule
55
+ |> Review.Test.expectErrors
56
+ [ Review.Test.error
57
+ { message = "Codemod"
58
+ , details =
59
+ [ "" ]
60
+ , under =
61
+ """data = data
62
+ }"""
63
+ }
64
+ |> Review.Test.whenFixed
65
+ """module Route.Index exposing (Data, Model, Msg, route)
66
+
67
+ import DataSource exposing (DataSource)
68
+ import RouteBuilder exposing (Page, StaticPayload, single)
69
+ import Pages.PageUrl exposing (PageUrl)
70
+ import Pages.Url
71
+ import Path
72
+ import Route exposing (Route)
73
+ import Shared
74
+ import View exposing (View)
75
+
76
+
77
+ type alias Model =
78
+ {}
79
+
80
+
81
+ type alias Msg =
82
+ ()
83
+
84
+
85
+ type alias RouteParams =
86
+ {}
87
+
88
+
89
+ type alias Data =
90
+ ()
91
+
92
+
93
+ route : StatelessRoute RouteParams Data ActionData
94
+ route =
95
+ single
96
+ { head = head
97
+ , data = DataSource.fail ""
98
+ }
99
+ |> RouteBuilder.buildNoState { view = view }
100
+
101
+
102
+ data : DataSource Data
103
+ data =
104
+ DataSource.succeed ()
105
+ """
106
+ ]
107
+ , test "replaces data record setter with non-empty RouteParams" <|
108
+ \() ->
109
+ """module Route.Blog.Slug_ exposing (Data, Model, Msg, route)
110
+
111
+ import DataSource exposing (DataSource)
112
+ import RouteBuilder exposing (Page, StaticPayload)
113
+ import Pages.PageUrl exposing (PageUrl)
114
+ import Pages.Url
115
+ import Path
116
+ import Route exposing (Route)
117
+ import Shared
118
+ import View exposing (View)
119
+
120
+
121
+ type alias Model =
122
+ {}
123
+
124
+
125
+ type alias Msg =
126
+ ()
127
+
128
+
129
+ type alias RouteParams =
130
+ { slug : String }
131
+
132
+
133
+ type alias Data =
134
+ ()
135
+
136
+
137
+ route : StatelessRoute RouteParams Data ActionData
138
+ route =
139
+ RouteBuilder.preRender
140
+ { data = data
141
+ , head = head
142
+ , pages = pages
143
+ }
144
+ |> RouteBuilder.buildNoState { view = view }
145
+
146
+
147
+ data : DataSource Data
148
+ data =
149
+ DataSource.succeed ()
150
+ """
151
+ |> Review.Test.run rule
152
+ |> Review.Test.expectErrors
153
+ [ Review.Test.error
154
+ { message = "Codemod"
155
+ , details =
156
+ [ "" ]
157
+ , under =
158
+ """data = data"""
159
+ }
160
+ |> Review.Test.whenFixed
161
+ """module Route.Blog.Slug_ exposing (Data, Model, Msg, route)
162
+
163
+ import DataSource exposing (DataSource)
164
+ import RouteBuilder exposing (Page, StaticPayload)
165
+ import Pages.PageUrl exposing (PageUrl)
166
+ import Pages.Url
167
+ import Path
168
+ import Route exposing (Route)
169
+ import Shared
170
+ import View exposing (View)
171
+
172
+
173
+ type alias Model =
174
+ {}
175
+
176
+
177
+ type alias Msg =
178
+ ()
179
+
180
+
181
+ type alias RouteParams =
182
+ { slug : String }
183
+
184
+
185
+ type alias Data =
186
+ ()
187
+
188
+
189
+ route : StatelessRoute RouteParams Data ActionData
190
+ route =
191
+ RouteBuilder.preRender
192
+ { data = \\_ -> DataSource.fail ""
193
+ , head = head
194
+ , pages = pages
195
+ }
196
+ |> RouteBuilder.buildNoState { view = view }
197
+
198
+
199
+ data : DataSource Data
200
+ data =
201
+ DataSource.succeed ()
202
+ """
203
+ ]
204
+ , test "replaces data record setter with RouteBuilder.serverRendered" <|
205
+ \() ->
206
+ """module Route.Login exposing (Data, Model, Msg, route)
207
+
208
+ type alias Model =
209
+ {}
210
+
211
+
212
+ type alias Msg =
213
+ ()
214
+
215
+
216
+ type alias RouteParams =
217
+ {}
218
+
219
+
220
+ route : StatelessRoute RouteParams Data ActionData
221
+ route =
222
+ RouteBuilder.serverRender
223
+ { head = head
224
+ , data = data
225
+ , action = action
226
+ }
227
+ |> RouteBuilder.buildNoState { view = view }
228
+ """
229
+ |> Review.Test.run rule
230
+ |> Review.Test.expectErrors
231
+ [ Review.Test.error
232
+ { message = "Codemod"
233
+ , details =
234
+ [ "" ]
235
+ , under =
236
+ """data = data
237
+ ,"""
238
+ }
239
+ |> Review.Test.whenFixed
240
+ """module Route.Login exposing (Data, Model, Msg, route)
241
+
242
+ type alias Model =
243
+ {}
244
+
245
+
246
+ type alias Msg =
247
+ ()
248
+
249
+
250
+ type alias RouteParams =
251
+ {}
252
+
253
+
254
+ route : StatelessRoute RouteParams Data ActionData
255
+ route =
256
+ RouteBuilder.serverRender
257
+ { head = head
258
+ , data = \\_ -> Request.oneOf []
259
+ , action = action
260
+ }
261
+ |> RouteBuilder.buildNoState { view = view }
262
+ """
263
+ , Review.Test.error
264
+ { message = "Codemod"
265
+ , details =
266
+ [ "" ]
267
+ , under =
268
+ """action = action
269
+ }"""
270
+ }
271
+ |> Review.Test.whenFixed
272
+ """module Route.Login exposing (Data, Model, Msg, route)
273
+
274
+ type alias Model =
275
+ {}
276
+
277
+
278
+ type alias Msg =
279
+ ()
280
+
281
+
282
+ type alias RouteParams =
283
+ {}
284
+
285
+
286
+ route : StatelessRoute RouteParams Data ActionData
287
+ route =
288
+ RouteBuilder.serverRender
289
+ { head = head
290
+ , data = data
291
+ , action = \\_ -> Request.oneOf []
292
+ }
293
+ |> RouteBuilder.buildNoState { view = view }
294
+ """
295
+ ]
296
+ , test "no Request.oneOf fix after replacement is made" <|
297
+ \() ->
298
+ """module Route.Login exposing (Data, Model, Msg, route)
299
+
300
+ type alias Model =
301
+ {}
302
+
303
+
304
+ type alias Msg =
305
+ ()
306
+
307
+
308
+ type alias RouteParams =
309
+ {}
310
+
311
+
312
+ route : StatelessRoute RouteParams Data ActionData
313
+ route =
314
+ RouteBuilder.serverRender
315
+ { head = head
316
+ , data = \\_ -> Request.oneOf []
317
+ }
318
+ |> RouteBuilder.buildNoState { view = view }
319
+ """
320
+ |> Review.Test.run rule
321
+ |> Review.Test.expectNoErrors
322
+ , test "no fix after replacement is made" <|
323
+ \() ->
324
+ """module Route.Index exposing (Data, Model, Msg, route)
325
+
326
+ import DataSource exposing (DataSource)
327
+ import RouteBuilder exposing (Page, StaticPayload)
328
+ import Pages.PageUrl exposing (PageUrl)
329
+ import Pages.Url
330
+ import Path
331
+ import Route exposing (Route)
332
+ import Shared
333
+ import View exposing (View)
334
+
335
+
336
+ type alias Model =
337
+ {}
338
+
339
+
340
+ type alias Msg =
341
+ ()
342
+
343
+
344
+ type alias RouteParams =
345
+ {}
346
+
347
+
348
+ type alias Data =
349
+ ()
350
+
351
+
352
+ route : StatelessRoute RouteParams Data ActionData
353
+ route =
354
+ RouteBuilder.single
355
+ { head = head
356
+ , data = DataSource.fail ""
357
+ }
358
+ |> RouteBuilder.buildNoState { view = view }
359
+
360
+
361
+ data : DataSource Data
362
+ data =
363
+ DataSource.succeed ()
364
+ """
365
+ |> Review.Test.run rule
366
+ |> Review.Test.expectNoErrors
367
+ , test "replaces data record setter in Shared module" <|
368
+ \() ->
369
+ """module Shared exposing (Data, Model, Msg, template)
370
+
371
+ import Browser.Navigation
372
+ import DataSource
373
+ import Html exposing (Html)
374
+ import Html.Styled
375
+ import Pages.Flags
376
+ import Pages.PageUrl exposing (PageUrl)
377
+ import Path exposing (Path)
378
+ import Route exposing (Route)
379
+ import SharedTemplate exposing (SharedTemplate)
380
+ import TableOfContents
381
+ import View exposing (View)
382
+ import View.Header
383
+
384
+
385
+ template : SharedTemplate Msg Model Data msg
386
+ template =
387
+ { init = init
388
+ , update = update
389
+ , view = view
390
+ , data = data
391
+ , subscriptions = subscriptions
392
+ , onPageChange = Just OnPageChange
393
+ }
394
+
395
+
396
+ type alias Data =
397
+ TableOfContents.TableOfContents TableOfContents.Data
398
+
399
+
400
+ type alias Model =
401
+ { showMobileMenu : Bool
402
+ , counter : Int
403
+ , navigationKey : Maybe Browser.Navigation.Key
404
+ }
405
+ """
406
+ |> Review.Test.run rule
407
+ |> Review.Test.expectErrors
408
+ [ Review.Test.error
409
+ { message = "Codemod"
410
+ , details =
411
+ [ "" ]
412
+ , under =
413
+ """data = data
414
+ ,"""
415
+ }
416
+ |> Review.Test.whenFixed
417
+ """module Shared exposing (Data, Model, Msg, template)
418
+
419
+ import Browser.Navigation
420
+ import DataSource
421
+ import Html exposing (Html)
422
+ import Html.Styled
423
+ import Pages.Flags
424
+ import Pages.PageUrl exposing (PageUrl)
425
+ import Path exposing (Path)
426
+ import Route exposing (Route)
427
+ import SharedTemplate exposing (SharedTemplate)
428
+ import TableOfContents
429
+ import View exposing (View)
430
+ import View.Header
431
+
432
+
433
+ template : SharedTemplate Msg Model Data msg
434
+ template =
435
+ { init = init
436
+ , update = update
437
+ , view = view
438
+ , data = DataSource.fail ""
439
+ , subscriptions = subscriptions
440
+ , onPageChange = Just OnPageChange
441
+ }
442
+
443
+
444
+ type alias Data =
445
+ TableOfContents.TableOfContents TableOfContents.Data
446
+
447
+
448
+ type alias Model =
449
+ { showMobileMenu : Bool
450
+ , counter : Int
451
+ , navigationKey : Maybe Browser.Navigation.Key
452
+ }
453
+ """
454
+ ]
455
+ ]
@@ -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: 1851114818, fuzzRuns: 100, filter: null };
78
+ const flags = { initialSeed: 1016531122, 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
@@ -82,7 +82,7 @@ const verbosity = 0;
82
82
  // Create a long lived reporter worker
83
83
  const { Elm } = require("./Reporter.elm.js");
84
84
  const flags = {
85
- initialSeed: 1851114818,
85
+ initialSeed: 1016531122,
86
86
  fuzzRuns: 100,
87
87
  mode: "consoleNoColor",
88
88
  verbosity: verbosity,
@@ -64,29 +64,31 @@ async function generateTemplateModuleConnector(basePath, phase) {
64
64
 
65
65
  async function runElmCodegenCli(templates, basePath, phase) {
66
66
  // await runElmCodegenInstall();
67
- try {
68
- await compileCliApp(
69
- // { debug: true },
70
- {},
71
- `Generate.elm`,
72
- path.join(process.cwd(), "elm-stuff/elm-pages-codegen.js"),
73
- path.join(__dirname, "../../codegen"),
67
+ // try {
68
+ // await compileCliApp(
69
+ // // { debug: true },
70
+ // {},
71
+ // `Generate.elm`,
72
+ // path.join(process.cwd(), "elm-stuff/elm-pages-codegen.js"),
73
+ // path.join(__dirname, "../../codegen"),
74
74
 
75
- path.join(process.cwd(), "elm-stuff/elm-pages-codegen.js")
76
- );
77
- } catch (error) {
78
- console.log(restoreColorSafe(error));
79
- process.exit(1);
80
- // throw error;
81
- }
75
+ // path.join(process.cwd(), "elm-stuff/elm-pages-codegen.js")
76
+ // );
77
+ // } catch (error) {
78
+ // console.log(restoreColorSafe(error));
79
+ // process.exit(1);
80
+ // // throw error;
81
+ // }
82
+
83
+ const filePath = path.join(__dirname, `../../codegen/elm-pages-codegen.js`);
82
84
 
83
85
  // TODO use uncached require here to prevent stale code from running
84
86
 
85
87
  const promise = new Promise((resolve, reject) => {
86
- const elmPagesCodegen = require(path.join(
87
- process.cwd(),
88
- "./elm-stuff/elm-pages-codegen.js"
89
- )).Elm.Generate;
88
+ const elmPagesCodegen = require(filePath).Elm.Generate;
89
+ // path.join(
90
+ // process.cwd(),
91
+ // "./elm-stuff/elm-pages-codegen.js")
90
92
 
91
93
  const app = elmPagesCodegen.init({
92
94
  flags: { templates: templates, basePath, phase },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "elm-pages",
3
- "version": "3.0.0-beta.0",
3
+ "version": "3.0.0-beta.1",
4
4
  "homepage": "https://elm-pages.com",
5
5
  "moduleResolution": "node",
6
6
  "description": "Type-safe static sites, written in pure elm with your own custom elm-markup syntax.",
@@ -10,7 +10,8 @@
10
10
  "test": "./test.sh",
11
11
  "test:snapshot": "(cd examples/escaping && npm install && npm test) && (cd examples/base-path && npm install && npm test)",
12
12
  "cypress": "npm start & cypress run",
13
- "prepare": "elm-codegen install",
13
+ "prepare": "npm run build:generator",
14
+ "build:generator": "elm-codegen install && (cd codegen && lamdera make Generate.elm --output elm-pages-codegen.js)",
14
15
  "review": "elm-review"
15
16
  },
16
17
  "repository": "https://github.com/dillonkearns/elm-pages",
@@ -68,7 +69,9 @@
68
69
  "files": [
69
70
  "generator/src/",
70
71
  "generator/review/",
72
+ "generator/dead-code-review/",
71
73
  "src/",
74
+ "codegen/elm-pages-codegen.js",
72
75
  "generator/template/",
73
76
  "generator/static-code/"
74
77
  ],