Commit Graph

82 Commits

Author SHA1 Message Date
Dillon Kearns
e26b361ac6 Add test case for <script></script> JSON escaping and only run it within the pre-rendered HTML. 2021-08-25 10:55:45 -07:00
Daniel Marin
785c7a51dd
Use jsesc instead of JSON.stringify to avoid issues
As explained here: https://mathiasbynens.be/notes/etago

One can run into issues when trying to embed JSON containing
HTML with <script> elements inside a <script> tag.

Switching to a utility with support for this fixes the issue:
https://github.com/mathiasbynens/jsesc#isscriptcontext
2021-08-20 17:55:51 +01:00
Dillon Kearns
4ce6b18ed2 Skip unnecessary 404 check in build to avoid extra computations. 2021-08-09 19:43:06 -07:00
Dillon Kearns
3b2af1e9a8 Don't render hmr script load in builds (only dev-server). 2021-07-26 15:39:10 -07:00
Dillon Kearns
a264ce10f2 Add --base option, and remove <base> tags. 2021-07-19 18:39:23 -07:00
Dillon Kearns
4e88d51e85 Cache Port DataSources like HTTP is cached. 2021-07-17 15:16:13 -07:00
Dillon Kearns
22c5fc968d Update error formatting. 2021-07-14 18:05:03 -07:00
Dillon Kearns
fb73faaf3b Remove extra log. 2021-07-14 15:56:22 -07:00
Dillon Kearns
d96e24a25c Use ANSI color codes for error messages from NodeJS elm-pages engine. 2021-07-14 15:45:06 -07:00
Dillon Kearns
e8415317b1 Preserve port data source's require cache for build command to speed things up. 2021-07-14 11:30:38 -07:00
Dillon Kearns
82bab067ad Print error if DataSource.Port is used without port definitions file. 2021-07-14 10:29:55 -07:00
Dillon Kearns
7988bfe69b Update error message. 2021-07-14 10:12:28 -07:00
Dillon Kearns
b904d8bbcd Pass through HTTP errors as build errors. 2021-07-14 10:02:08 -07:00
Dillon Kearns
3d3b7be40b Trigger build error from read file batch functions. 2021-07-14 09:04:45 -07:00
Dillon Kearns
669a20dfe9 Add console.time around DataSource.Port invocations. 2021-07-14 09:03:48 -07:00
Dillon Kearns
cf58268c23 Send port name and use it to find exported port function. 2021-07-13 08:23:05 -07:00
Dillon Kearns
91c330f40a Handle port DataSource error, and pass in parsed JSON body as argument. 2021-07-13 07:34:31 -07:00
Dillon Kearns
0c242b1543 Add Port DataSource. 2021-07-12 20:01:43 -07:00
Dillon Kearns
3f73f9eb29 Handle errors with postMessage instead of throwing to prevent worker threads from dying. 2021-07-12 17:17:09 -07:00
Dillon Kearns
283f01b690 Remove Elm code that is obsolete with new batch response architecture. 2021-07-10 13:55:42 -07:00
Dillon Kearns
2a23815a3f Handle glob with response batching. 2021-07-10 08:33:22 -07:00
Dillon Kearns
b7160fef3f Use response batching for HTTP requests. 2021-07-10 08:23:56 -07:00
Dillon Kearns
5df5c654dd Retain in-memory cache for builds only. 2021-07-09 13:28:22 -07:00
Dillon Kearns
036271288a Try preserving cache to see how it performs on netlify builds. 2021-07-09 13:11:18 -07:00
Dillon Kearns
550f514e8c Remove some logs. 2021-07-09 13:10:58 -07:00
Dillon Kearns
ac2891c297 Batch file reads. 2021-07-09 11:04:41 -07:00
Dillon Kearns
08ca61d79b Try first step towards a batch DataSource response optimization experiment. 2021-07-08 15:10:07 -07:00
Dillon Kearns
1b77273cd9 Remove unused mode flag. 2021-07-07 21:28:58 -07:00
Dillon Kearns
ffb9484332 Full build functionality is obsolete now as workers run single-page mode renders. Remove some unused paths. 2021-07-07 21:13:17 -07:00
Dillon Kearns
b38815170f Remove xhr2 dependency. 2021-07-07 08:56:58 -07:00
Dillon Kearns
d22a663a90 Re-require Elm lazily on each worker render, and add file watchers from workers. 2021-07-07 08:41:14 -07:00
Dillon Kearns
ac3c3369e5 Use undici to perform HTTP requests with file-system cache. 2021-07-06 06:26:14 -07:00
Dillon Kearns
35608ebe63 Use app.die() in worker threads to reduce memory, and restore use in dev server. 2021-07-02 16:05:16 -07:00
Dillon Kearns
a94ee06c35 Run build with worker threads. 2021-07-02 15:15:41 -07:00
Dillon Kearns
32a351a094 Extract common code for prerender function. 2021-06-24 19:01:12 -07:00
Dillon Kearns
d99d51d944 Extract js code to file. 2021-06-24 18:33:31 -07:00
Dillon Kearns
a089fbd248 Inline JS for elm-pages.js script, and minify it. 2021-06-24 17:48:42 -07:00
Dillon Kearns
127607961a Fix the require'd Elm code memory leak by moving the dev server's Elm module require into the top-level dev server code instead of the renderer. 2021-06-19 21:49:42 -07:00
Dillon Kearns
5949de3f2c Add finally to clean up Elm runtime after dev server responses are sent. 2021-06-19 21:40:19 -07:00
Dillon Kearns
07bed53a79 Update NotFound view. 2021-06-09 10:52:54 -07:00
Dillon Kearns
3668768919 Update not found page style. 2021-06-06 21:44:08 -07:00
Dillon Kearns
0d9e62c09b Update pokedex render function to send 404 status. 2021-06-01 19:31:38 -07:00
Dillon Kearns
ac7dcaf5b2 Add a jsonFile data source. 2021-05-29 12:49:49 -07:00
Dillon Kearns
e9d42d8a59 Add a basic JsPort DataSource wiring. Still not ready for production usage, but the basic wiring works. 2021-05-23 08:47:36 -07:00
Dillon Kearns
4b429bd945 Comment out garbage collection hint for now since it's causing error in dev server. Need to investigate. 2021-05-18 09:28:53 -07:00
Dillon Kearns
f3937241e4 Try making the compiled Elm garbage collectable by using the tip from https://gist.github.com/supermario/4c2615806c6c561a16edf5dd7208a759. 2021-05-18 06:53:04 -07:00
Dillon Kearns
8a9e88bc0c Send 404s for file not found in dev server. 2021-05-05 20:38:59 -07:00
Dillon Kearns
939c307fc0 Update dev server static http cache on api route render. 2021-05-05 11:14:54 -07:00
Dillon Kearns
759a43c28b Remove console.time statements. 2021-05-04 20:09:40 -07:00
Dillon Kearns
16b15bf4a4 Wire in initial handling for api requests. 2021-05-04 10:37:37 -07:00