Commit Graph

401 Commits

Author SHA1 Message Date
Dillon Kearns
b0cab3cc7d Use cookie session for logout route. 2022-01-23 13:42:50 -08:00
Dillon Kearns
1becbff897 Wire through errors with session checksums. 2022-01-23 13:35:04 -08:00
Dillon Kearns
7d1f675a90 Add some session helpers. 2022-01-23 13:01:04 -08:00
Dillon Kearns
aff8b1f850 Update Session API to pass through existing Session. 2022-01-23 10:43:06 -08:00
Dillon Kearns
d0bfc03d16 Return Nothing if there is no session. 2022-01-22 17:56:20 -08:00
Dillon Kearns
9bcba71c3a Extract session helper. 2022-01-22 14:40:04 -08:00
Dillon Kearns
d7eca2ee4b Use String instead of Json.Decode.Value for session values. Add flash helpers. 2022-01-22 13:47:51 -08:00
Dillon Kearns
05457709ae Update session decoders in example. 2022-01-21 11:13:36 -08:00
Dillon Kearns
69feca1c42 Add distillBytes with some lamdera wire encoder/decoders. 2022-01-21 09:31:18 -08:00
Dillon Kearns
e29c4204a5 Use withSession helper for managing login. 2022-01-20 21:34:33 -08:00
Dillon Kearns
aa4086837f Change argument type for withSession to remove extra wrapper layer. 2022-01-20 20:01:07 -08:00
Dillon Kearns
c900b8662b Extract function. 2022-01-20 19:52:18 -08:00
Dillon Kearns
9b1f486a1b Don't use secret in example for now. 2022-01-20 19:24:55 -08:00
Dillon Kearns
a353a79e49 Use newer node version. 2022-01-20 19:20:15 -08:00
Dillon Kearns
08e635cbeb Try all secrets in list for decoding signed cookies. 2022-01-20 19:09:37 -08:00
Dillon Kearns
b7185adc39 Add example page. 2022-01-20 18:01:07 -08:00
Dillon Kearns
30ab850c90 Add prototype for withSession helper. 2022-01-20 18:00:38 -08:00
Dillon Kearns
d062546d0c Add withSetCookieHeader. 2022-01-18 18:45:03 -08:00
Dillon Kearns
d44da4ee85 Remove example. 2022-01-18 18:44:54 -08:00
Dillon Kearns
51aea3b539 Simplify Server.Response API by combining render repsonses and server responses into the same API. 2022-01-17 20:56:37 -08:00
Dillon Kearns
03dd16a86f Wire through custom headers and status codes for RenderPage server responses. 2022-01-17 16:56:40 -08:00
Dillon Kearns
c27377c8f7 Use dynamic route segments with different names by appending index. 2022-01-17 11:46:40 -08:00
Dillon Kearns
22b3b54799 Use phantom types to reduce the number of cominations of functions for setting values with different types. 2022-01-16 15:29:06 -08:00
Dillon Kearns
a769a3e569 Fix tests. 2022-01-15 19:29:30 -08:00
Dillon Kearns
5b06fe51a4 Replace requiredRadio with radio that can apply required option. 2022-01-15 18:44:06 -08:00
Dillon Kearns
69e8fc92f4 Use phantom builder for required checks. 2022-01-15 18:28:47 -08:00
Dillon Kearns
00c62a9e96 Include form-level errors in server-rendered response. 2022-01-15 15:02:32 -08:00
Dillon Kearns
6b7c4586c9 Run field-level errors and form-level errors independently to avoid duplicates but get them in real-time. 2022-01-15 09:06:19 -08:00
Dillon Kearns
9c922c8f40 Run field-level validations on field change. Preparing for change to store dependent validation results separately so they can be updated independently. 2022-01-14 15:28:17 -08:00
Dillon Kearns
ff79f79d8f Make field required. 2022-01-14 15:25:42 -08:00
Dillon Kearns
84e7d9d157 Use user-defined errors instead of a set list of validation errors. 2022-01-14 08:46:35 -08:00
Dillon Kearns
1ac1c9d73e Abstract helper for submitHandlers. 2022-01-13 17:17:52 -08:00
Dillon Kearns
b8e7a47e34 Give multiple errors for non-fatal validation errors. 2022-01-13 14:18:53 -08:00
Dillon Kearns
90d6bc821d Add ability to do dependent validations looking at entire form value. 2022-01-13 09:06:58 -08:00
Dillon Kearns
fe7b1c5209 Add input type to form style. 2022-01-12 17:07:21 -08:00
Dillon Kearns
92098ac972 Set field state on blur, focus, and input. 2022-01-11 09:00:58 -08:00
Dillon Kearns
c2b53e513a Scroll to top on success, and change debug info styling. 2022-01-10 19:34:26 -08:00
Dillon Kearns
9438e50add Handle required fields for checkboxes. 2022-01-10 19:01:47 -08:00
Dillon Kearns
95eff70f02 Run validations on init. Make Int and Float ranges. 2022-01-10 18:35:46 -08:00
Dillon Kearns
1e72283296 Don't submit form when there are validation errors. Include submitStatus for renderers. 2022-01-10 16:33:29 -08:00
Dillon Kearns
647a18cf28 Show errors for radio inputs, and add required radio builder. 2022-01-10 12:38:49 -08:00
Dillon Kearns
e8a8de56f6 Handle required vs. optional dates. 2022-01-10 12:25:35 -08:00
Dillon Kearns
34df6c16c3 Use custom type for form errors. 2022-01-10 12:02:56 -08:00
Dillon Kearns
b82aa41416 Handle elm/http submit from Form API. 2022-01-10 11:38:25 -08:00
Dillon Kearns
9be4926d34 Use record for Form model in preparation for adding more state. 2022-01-10 10:34:20 -08:00
Dillon Kearns
80171b84f8 Set default values in form dict on init. 2022-01-10 10:14:02 -08:00
Dillon Kearns
fd905da1da Add function to submit form with elm/http request. 2022-01-07 15:08:43 -08:00
Dillon Kearns
b6e45b7a14 Disable submit button when there are form errors. 2022-01-06 11:42:49 -08:00
Dillon Kearns
3522ed2b66 Apply capitalized validation to first and last names. 2022-01-06 11:01:53 -08:00
Dillon Kearns
6102412523 Apply input styling to email fields. 2022-01-06 11:01:38 -08:00
Dillon Kearns
edd678e403 Show client-validation errors coming back from server. 2022-01-06 09:48:06 -08:00
Dillon Kearns
e042393830 Add function to include client-side validation. 2022-01-06 09:44:46 -08:00
Dillon Kearns
e22d688920 Wire up Err for client-side validations. 2022-01-06 08:25:14 -08:00
Dillon Kearns
b855a20794 Update model state through FormMsg's. 2022-01-05 16:11:15 -08:00
Dillon Kearns
8887bbf97d Change Msg type, and wire up FormMsg. 2022-01-05 15:12:58 -08:00
Dillon Kearns
08138e7a26 Use () instead of Never for Msg's in stateless pages. That way, you can map Msg's (unlike never). 2022-01-05 14:09:37 -08:00
Dillon Kearns
ed814e54ee Replace min/max record fields with properties under the hood. 2022-01-05 11:48:33 -08:00
Dillon Kearns
a6508282d7 Add rating range field. 2022-01-05 11:40:35 -08:00
Dillon Kearns
1dd04db688 Delete commented reference code. 2022-01-05 11:36:16 -08:00
Dillon Kearns
7fe9168d10 Rename function. 2022-01-05 11:23:39 -08:00
Dillon Kearns
ae854e5742 Replace requiredText with more general required function. 2022-01-05 11:23:08 -08:00
Dillon Kearns
a018c48f5a Rename function. 2022-01-05 11:21:43 -08:00
Dillon Kearns
0f70795908 Add number input, required, and tel, url, email. 2022-01-05 09:27:18 -08:00
Dillon Kearns
2f4785d098 Delete commented code. 2022-01-05 08:08:55 -08:00
Dillon Kearns
d653c1ea49 Use enum mapping for radio. 2022-01-04 18:14:29 -08:00
Dillon Kearns
802d9ac538 Add radio button. 2022-01-04 17:55:37 -08:00
Dillon Kearns
af9ba5d099 Add push notifications section. 2022-01-04 16:20:44 -08:00
Dillon Kearns
0914f91bc7 Add checkbox input to tailwind form example. 2022-01-04 15:28:16 -08:00
Dillon Kearns
4d7203ad40 Add argument for default checked state on checkbox, and preserve checkbox state when repopulating form data. 2022-01-04 12:01:11 -08:00
Dillon Kearns
77778dcdf5 Add checkbox fields. 2022-01-04 11:47:57 -08:00
Dillon Kearns
d8ec3d735b Decode inputs into types. 2022-01-03 21:17:07 -08:00
Dillon Kearns
4a5d0814a9 Update form styling. 2022-01-03 19:26:41 -08:00
Dillon Kearns
1fde8588b0 Extract functions. 2022-01-03 14:26:04 -08:00
Dillon Kearns
1ae8d6096a Delete unused. 2022-01-03 14:12:53 -08:00
Dillon Kearns
0bfdc655ab Add wrap functions so sections of forms can be wrapped with views. 2022-01-03 14:07:36 -08:00
Dillon Kearns
98040342f7 Build tailwind modules in netlify. 2022-01-03 12:15:26 -08:00
Dillon Kearns
9968d796fb Add section heading. 2022-01-03 11:55:45 -08:00
Dillon Kearns
f2023a1b40 Update tailwind form example. 2022-01-03 11:14:39 -08:00
Dillon Kearns
0075c7eae8 Update tailwind setup and copy over raw form for reference. 2022-01-03 10:47:12 -08:00
Dillon Kearns
dda2f89cce Use plain HTML for vanilla form page. 2022-01-03 10:07:06 -08:00
Dillon Kearns
07bd8902d6 Make view type extensible, and add tailwind form example. 2022-01-03 10:04:42 -08:00
Dillon Kearns
5ab5881fc8 Update form API to include errors. 2022-01-03 08:43:00 -08:00
Dillon Kearns
580f845ded Make form views customizable. 2022-01-03 07:40:45 -08:00
Dillon Kearns
4ba0e99612 Preserve original values when there are validation errors. 2022-01-02 10:23:36 -08:00
Dillon Kearns
558cb98ff9 Add form server validations prototype. 2022-01-02 09:52:04 -08:00
Dillon Kearns
1165b73b61 Update form example. 2022-01-01 20:55:52 -08:00
Dillon Kearns
e4b1ba1b39 Update default user. 2022-01-01 18:35:36 -08:00
Dillon Kearns
8e2bdc68ed Add form API experiment. 2022-01-01 12:50:03 -08:00
Dillon Kearns
7b743cf72d Rename module. 2021-12-31 16:15:41 -08:00
Dillon Kearns
86142cb6d8 Remove obsolete server request code from initial prototype. 2021-12-31 11:52:37 -08:00
Dillon Kearns
78ee8d0117 Fix jsonError api route. 2021-12-31 11:17:12 -08:00
Dillon Kearns
3aae8c1adf Remove Handler type in favor of a type variable for ServerRequest type. 2021-12-31 11:14:23 -08:00
Dillon Kearns
bfbb5866f2 Capture multiple matching errors for server requests. 2021-12-30 19:55:45 -08:00
Dillon Kearns
68a4fc42c4 Add ServerRequest tests and remove obsolete expectFormField in favor of expectFormPost. 2021-12-30 11:43:10 -08:00
Dillon Kearns
8851ab402d Try reading relative to root of repo for netlify function. 2021-12-30 09:45:27 -08:00
Dillon Kearns
e9926979d3 Change included_files syntax. 2021-12-30 09:40:42 -08:00
Dillon Kearns
972c0ea9ce Move secret file to content/ folder. 2021-12-30 09:38:03 -08:00
Dillon Kearns
9e9eb26a02 Try different lamda file read root. 2021-12-30 09:31:24 -08:00
Dillon Kearns
d0d205bee4 Try new filename resolution for netlify function. 2021-12-30 09:27:20 -08:00
Dillon Kearns
2a90dc9d51 Try adding path.resolve for netlify file paths. 2021-12-29 21:57:35 -08:00
Dillon Kearns
cd86a91fe5 Try different included files syntax. 2021-12-29 21:52:09 -08:00
Dillon Kearns
5e10f199d2 Force build. 2021-12-29 21:47:40 -08:00
Dillon Kearns
9691832aa5 Try include files setup for serverless function file reads. 2021-12-29 21:43:40 -08:00
Dillon Kearns
a53dfb406e Remove local config from netlify config. 2021-12-29 21:42:42 -08:00
Dillon Kearns
8d26233d28 Force build. 2021-12-29 21:35:25 -08:00
Dillon Kearns
0ae28f004c Copy secret-note to server-render functions folder so it's available from serverless. 2021-12-29 21:22:56 -08:00
Dillon Kearns
5904902c47 Try adding secret-note file in functions folder. 2021-12-29 21:18:31 -08:00
Dillon Kearns
7b62788240 Force build. 2021-12-29 17:47:22 -08:00
Dillon Kearns
d13a397507 Use in-memory fs or real fs for http cache depending on whether context is serverless. 2021-12-29 17:18:37 -08:00
Dillon Kearns
7b85ef3a0b Add file upload page. 2021-12-29 15:57:04 -08:00
Dillon Kearns
f12b11ddb0 Check for base64 encoding in netlify adapter. 2021-12-29 14:25:46 -08:00
Dillon Kearns
4444ef6fc0 Update render result types and adapter script. 2021-12-29 13:58:21 -08:00
Dillon Kearns
243d4d9f0c Update adapter script and add some logging. 2021-12-29 13:37:47 -08:00
Dillon Kearns
f2ee856534 Add logs in adapter. 2021-12-29 13:28:20 -08:00
Dillon Kearns
13dca344c9 Fix adapter typo. 2021-12-29 13:28:14 -08:00
Dillon Kearns
c7ce19d14b Add missing await. 2021-12-29 13:21:49 -08:00
Dillon Kearns
ae690e4a58 Fix adapter script. 2021-12-29 13:19:08 -08:00
Dillon Kearns
0c8e4cc9d2 Delete incorrectly copy-pasted code from adapter script. 2021-12-29 13:15:13 -08:00
Dillon Kearns
2612159cde Recreate package-lock and remove obsolete npm i step in netlify. 2021-12-29 13:10:26 -08:00
Dillon Kearns
1f313d0cb8 Update package.json deps for netlify function (couldn't find cookie). 2021-12-29 13:07:55 -08:00
Dillon Kearns
b2c1a31c68 Handle multipart forms in dev server and adapter script. 2021-12-29 13:02:45 -08:00
Dillon Kearns
6534b10534 Add API for form posts, clean up Server.Request API and docs. 2021-12-29 07:58:40 -08:00
Dillon Kearns
bf98a76aed Add missing function in adapter. 2021-12-28 15:38:07 -08:00
Dillon Kearns
e4e20646c5 Fix cookie import. 2021-12-28 15:35:56 -08:00
Dillon Kearns
207518d6b8 Add cookie npm package to functions. 2021-12-28 12:03:41 -08:00
Dillon Kearns
b59bdf16c9 Install cookie dependency in pokedex project so it's available in netlify function. 2021-12-28 11:56:18 -08:00
Dillon Kearns
0ac78944ce Update adapter. 2021-12-28 11:53:43 -08:00
Dillon Kearns
572f6f2336 Add greet api function. 2021-12-28 11:53:33 -08:00
Dillon Kearns
5136dd50a6 Use Server.Request for ApiRoutes. 2021-12-28 08:32:25 -08:00
Dillon Kearns
d30dda3684 Add netlify every color example routes. 2021-12-27 14:22:59 -08:00
Dillon Kearns
10bbeb491d Use more declarative interface for Server Requests. 2021-12-26 21:56:33 -08:00
Dillon Kearns
99b35546cf Add starting point for SetCookie API. 2021-12-23 19:25:51 -08:00
Dillon Kearns
6dddcf96d0 Update ApiRoute naming for consistency with Page.elm. 2021-12-23 15:01:38 -08:00
Dillon Kearns
165ec1a200 Fix typo. 2021-12-23 13:47:25 -08:00
Dillon Kearns
6f82aa59f8 Add ServerRequest.withRequestTime, and make body nullable. 2021-12-23 13:34:54 -08:00
Dillon Kearns
4fedf9ee19 Rename prerender -> preRender. 2021-12-23 13:34:19 -08:00
Dillon Kearns
afb81f7224 Replace handleFallback with PageServerResponse for prerenderWithFallback. 2021-12-23 11:14:46 -08:00
Dillon Kearns
362477d6a0 Use new netlify URL to access latest builders (see https://www.netlify.com/blog/2021/10/25/faster-more-reliable-page-loads-with-update-to-on-demand-builders/). 2021-12-23 10:53:43 -08:00
Dillon Kearns
42f38cbe39 Use new ServerRequest helpers in login page. 2021-12-22 21:29:57 -08:00
Dillon Kearns
a8f801d2ca Add logout button on greet page. 2021-12-22 21:29:26 -08:00
Dillon Kearns
146240c3dd Add logout endpoint. 2021-12-22 21:29:10 -08:00
Dillon Kearns
eae2fb2065 Add greet page and login page. 2021-12-22 15:28:51 -08:00
Dillon Kearns
71d3688dfb Use temporary redirect in example redirect route. 2021-12-22 15:28:39 -08:00
Dillon Kearns
f43e57e265 Add withBody. 2021-12-22 15:28:19 -08:00
Dillon Kearns
6df0ce9987 Add cookie parser. 2021-12-22 14:42:35 -08:00
Dillon Kearns
c43d7f474b Wire through key for accessing DataSource.ServerRequest. 2021-12-22 11:29:16 -08:00
Dillon Kearns
42126f0d4a Send multiValueHeaders in netlify adapter. 2021-12-21 17:33:41 -08:00
Dillon Kearns
7c3de6c149 Remove hardcoded query params in adapter. 2021-12-21 16:11:51 -08:00
Dillon Kearns
f6c13c0404 Handle API responses from serverless Page Modules. 2021-12-21 12:01:08 -08:00
Dillon Kearns
0d3b918048 Turn on invalid netlify route error handling, and handle errors with correct process.exit handling instead of unhandled exception. 2021-12-21 10:01:42 -08:00
Dillon Kearns
796f5d809f Include isBase64Encoded option in ServerResponse. 2021-12-21 09:45:25 -08:00
Dillon Kearns
3703916aaa Add ApiRoute.prerenderWithFallback. 2021-12-21 09:08:17 -08:00
Dillon Kearns
7f2d47c6de Add serverless ApiRoute builder and some examples in pokedex app. 2021-12-21 07:47:47 -08:00
Dillon Kearns
bc6a055e7b Gitignore folders generated from adapter. 2021-12-21 07:32:16 -08:00
Dillon Kearns
7acd5355dd Add example with server request daata source. 2021-12-20 15:47:56 -08:00
Dillon Kearns
b858556167 Update index page with links and SEO data. 2021-12-20 15:02:12 -08:00
Dillon Kearns
843ca0bacd Wire through headers, statusCode, and body from ServerResponse. Add redirect example. 2021-12-20 14:45:18 -08:00
Dillon Kearns
84096ec8dc Update adapter script to handle api-response's, but with some hardcoding for now. 2021-12-20 13:55:24 -08:00
Dillon Kearns
c79d76f473 Include kind in API routes to tell the rendering mode. Generate redirects for serverless API routes. 2021-12-20 13:35:34 -08:00
Dillon Kearns
b00882a53b Do cached build with npm run build. 2021-12-20 13:33:53 -08:00
Dillon Kearns
7eaa94a9e4 Include Pattern information for ApiRoutes. 2021-12-20 11:26:12 -08:00
Dillon Kearns
fe4f1f4d65 Use ensureDir in adapter script to prevent errors for existing dir. 2021-12-18 11:23:12 -08:00
Dillon Kearns
06ace7822e Update elm-verify-examples package. 2021-12-18 11:22:55 -08:00
Dillon Kearns
78ed00637f Fix typo. 2021-12-17 11:18:22 -08:00
Dillon Kearns
9436cf0b6d Generate different renderer function for serverless and odb. 2021-12-17 11:14:29 -08:00
Dillon Kearns
b9f3ded983 Create server-render folder from adapter. 2021-12-16 20:37:32 -08:00
Dillon Kearns
07b5bfbe61 Change values in request to JSON. 2021-12-16 19:00:40 -08:00
Dillon Kearns
99fbfda6c0 Use --debug flag in build for now. 2021-12-16 12:09:22 -08:00
Dillon Kearns
35c5be1ee0 Transform AWS event payload into event for DataSource.ServerRequest JSON. 2021-12-16 12:05:59 -08:00
Dillon Kearns
a9ebd8559a Include redirects for content.json. 2021-12-16 12:05:18 -08:00
Dillon Kearns
9769e7a95c Pass through request from NodeJS and update the ServerRequest API. 2021-12-15 20:10:54 -08:00
Dillon Kearns
3960da425c Fix typo. 2021-12-15 15:48:16 -08:00
Dillon Kearns
a0f34bfa19 Fix typo. 2021-12-15 15:44:48 -08:00
Dillon Kearns
7a57c331bc Use route-patterns.json to generate _redirects file. 2021-12-15 15:39:35 -08:00
Dillon Kearns
df321d429d Fix typo. 2021-12-15 12:41:53 -08:00
Dillon Kearns
bff850fcc4 Update SEO data. 2021-12-15 12:35:50 -08:00
Dillon Kearns
dca81657ee Try in-memory fs. 2021-12-15 12:22:25 -08:00
Dillon Kearns
6b7cd1419f Use relative dir. 2021-12-15 10:42:50 -08:00
Dillon Kearns
cd026a8a67 Create http cache directory in serverless function. 2021-12-15 10:02:32 -08:00
Dillon Kearns
bc4b32d259 Update package-lock. 2021-12-15 09:52:56 -08:00
Dillon Kearns
df5817626b Update render script. 2021-12-15 09:47:48 -08:00
Dillon Kearns
dacba7358e Update pokedex example. 2021-12-15 09:26:23 -08:00
Dillon Kearns
010cfb9c2a Rename routes to pages. Routes are the category of page, pages are the specific things to pre-render for a given route, so this terminology is more consistent and clear. 2021-12-10 16:03:07 -08:00
Dillon Kearns
cc4debb947 Install virtual-dom dependency in projects. 2021-10-07 11:58:15 -07:00
Dillon Kearns
b78f8c008b Rename types in ApiRoute module. 2021-07-30 15:35:11 -07:00
Dillon Kearns
58979ce3d8 Fix pokedex example. 2021-07-28 10:29:06 -07:00
Dillon Kearns
3a2a816bda Fix pokedex example. 2021-06-24 11:49:00 -07:00
Dillon Kearns
e6c2031737 Rename Page builder functions. 2021-06-24 10:05:16 -07:00
Dillon Kearns
2177d2bf1d Use lowerCamelCase for field names. 2021-06-03 11:58:35 -07:00
Dillon Kearns
9f93efd75c Generate route patterns JSON file for use with adapter js. 2021-06-02 11:02:35 -07:00
Dillon Kearns
f5b0212952 Add a prototype of a netlify adapter script. 2021-06-02 10:02:03 -07:00
Dillon Kearns
52fabf8161 Try specific route redirect in DPR example. 2021-06-01 20:58:19 -07:00
Dillon Kearns
a3c67ba6c6 Handle <= 150 in pokedex. 2021-06-01 20:58:04 -07:00
Dillon Kearns
0d9e62c09b Update pokedex render function to send 404 status. 2021-06-01 19:31:38 -07:00
Dillon Kearns
895e699e6b Use fixed url for pokedex time. 2021-06-01 15:00:04 -07:00
Dillon Kearns
f398c9127b Change base URL for time endpoint. 2021-06-01 14:52:41 -07:00
Dillon Kearns
b88c767edf Try netlify builder for pokedex renderer. 2021-06-01 14:41:40 -07:00
Dillon Kearns
fc15cebc03 Show current time in pokemon response. 2021-06-01 14:38:03 -07:00
Dillon Kearns
2dc9561fa0 Update dependencies. 2021-06-01 14:26:31 -07:00
Dillon Kearns
7d210347f8 Add netlify.toml for pokedex example. 2021-06-01 14:21:10 -07:00
Dillon Kearns
57fdd80fda Rename folder. 2021-06-01 11:03:29 -07:00