Commit Graph

57 Commits

Author SHA1 Message Date
ryanhamamura
9a23188973 feat: add cookie-based session support using alexedwards/scs (#1)
- Add Session wrapper with typed getters (GetString, GetInt, GetBool, etc.)
- Add flash message support via Pop methods (PopString, PopInt, etc.)
- Add session utilities: Exists, Keys, ID, Clear, Destroy, RenewToken
- Create default session manager in New() for zero-config usage
- Allow custom session manager via Options.SessionManager
- Wrap mux with scs LoadAndSave middleware in Start()
- Add session example demonstrating login/logout with flash messages
v0.1.0
2026-01-09 06:59:26 -10:00
Joao Goncalves
43495ccada feat: do full sync after sse reconnect 2025-12-17 23:11:19 -01:00
Joao Goncalves
20dad802a1 feat: replace Handler() method for HTTPServeMux() for better plugin and testing integration; remove via-plugin-picocss dependency from examples; add datastar h.H nodes for data-init, data-effect, and data-ignore-morph; update realtimechart example; other small improvements 2025-12-17 17:11:59 -01:00
Gerard Webb
6da518d990 feat: Add Handler() method and fix SSE closed pipe errors (#24)
* feat: add Handler() method for testing and custom server integration

Exposes the underlying http.Handler to enable:
- Integration testing with gost-dom/browser for SSE/Datastar testing
- Custom server setups (e.g., embedding Via in existing applications)
- Standard Go httptest patterns

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: Suppress closed pipe errors when SSE connection closes

Don't log error when SSE fails to send patches if the connection was
already closed. This reduces noise in logs during shutdown and testing,
where browsers/clients close connections before server handlers finish.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: joeblew999 <joeblew999@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-11 08:51:16 -01:00
Joao Goncalves
81d44954a4 feat: add path params; add pathparams example 2025-12-04 17:53:06 -01:00
Joao Goncalves
26268f698a refactor: simplify oninterval routine; fix(runtime): session end handler; update realtime chart example 2025-12-04 12:40:36 -01:00
Joao Goncalves
51218e7a2a fix(runtime): sync on sse reconnect 2025-11-26 00:33:38 -01:00
Joao Goncalves
36c0fb9050 fix(runtime): solve chan blocks; other small improvements 2025-11-25 23:19:50 -01:00
Joao Goncalves
a71d6f0960 feat: introduce via routine; update realtime chart example 2025-11-25 22:56:21 -01:00
Joao Goncalves
6edace647e fix(via_test): remove signal sync test that was bocking test execution 2025-11-25 22:54:00 -01:00
Joao Goncalves
9776fe0a49 fix: shakespere example not compiling; remove sleep statements from patchChan loop 2025-11-18 13:03:21 -01:00
Jeff Winkler
3ee90b30d8 SQLite FTS example (#20)
* SQLite FTS example

* refactor: remove via cfg chaining

---------

Co-authored-by: Joao Goncalves <joao.goncalves01@gmail.com>
2025-11-18 12:09:56 -01:00
Joao Goncalves
0064150cbc fix: patchChan loop ending after switching browser tab; feat: improve realtime chart example 2025-11-18 11:17:06 -01:00
João Gonçalves
6fafd1d6e0 docs: update readme 2025-11-17 17:26:10 -01:00
Joao Goncalves
f5a786730a fix: check for panics on page registration. Fix header append bug: was appending multiple ctx_id to the header; feat: handle complex signal init values as json; add tests; other small improvemnts 2025-11-17 16:46:33 -01:00
Joao Goncalves
472351d9a5 refactor: simplify signals; small optimizations 2025-11-16 19:53:51 -01:00
Jeff Winkler
2bb5d80502 Use beacon (#19)
Perfect. Tried with send beacon before. Dodn work for me. Because was using get instead o post.
2025-11-16 12:44:03 -01:00
Jeff Winkler
e0fa5560ab Signals fix (#17)
* Fix signals bug, add test.

* Test
2025-11-16 08:51:04 -01:00
Jeff Winkler
f7b5b24dd5 Script, GH action to check that all go files compile, and any tests pass. (#16) 2025-11-15 17:47:49 -01:00
Jeff Winkler
762635d7d9 Signals were always being sent down - changed flag never cleared. This wiped out the user input area in chat. (#13)
Publish every 100ms

Co-authored-by: João Gonçalves <joao.goncalves01@gmail.com>
2025-11-15 10:40:07 -01:00
Joao Goncalves
03019364ca fix: component nil pointer on sync; improve realtimechart example 2025-11-15 03:01:53 -01:00
Joao Goncalves
80879216b2 fix: components not using parent page patchShan; fix: chat example nil pointer error when sync outside action 2025-11-15 02:34:27 -01:00
João Gonçalves
042975fdd7 docs: update readme 2025-11-14 18:50:15 -01:00
Joao Goncalves
808d4dd0d1 fix: try solution for race conditions; use brotli included in datastar sdk; small improvements 2025-11-14 17:16:09 -01:00
Jeff Winkler
351bed3ea1 Chatroom 2 (#10)
* Remove unused method. Don't panic if unknown room.

* Need a Connected() check for rooms publishing - don't do the work of rendering for a dead connection

* Make vars private.

* Linter issues

* Remove Connected()

* Mutation observer. Publish 4x / second.

---------

Co-authored-by: João Gonçalves <joao.goncalves01@gmail.com>
2025-11-13 14:39:37 -01:00
Jeff Winkler
7670926733 Brotli Compression. (#12)
Co-authored-by: João Gonçalves <joao.goncalves01@gmail.com>
2025-11-13 14:03:45 -01:00
Joao Goncalves
f6c9990f38 feat: devmode removes the persist file after successful restore 2025-11-13 12:30:45 -01:00
Joao Goncalves
b9df99889e feat: introduce ctx close mechanism using beforeunload event; small fixes and improvements; improve live reload example 2025-11-13 12:11:26 -01:00
Joao Goncalves
d282773379 fix: auto reload on multiple browser windows/tabs closes #6; fix: chatroom example not compiling 2025-11-12 02:33:22 -01:00
Jeff Winkler
779718a088 Multi-Room Chat (#4)
* # This is a combination of 4 commits.
# This is the 1st commit message:

Chatroom example

# This is the commit message #2:

Avatar styling

# This is the commit message #3:

Styling

# This is the commit message #4:

cleanup

* Chatroom example

Avatar styling

Benchmark tests

Cleanup

ignore

Files

Cleanroom chatroom impl

* Rewrite.

* changes

* Fix Deadlocks. Start the rooms. Fix styling. Random things. Bookmarklet.

* Subset data

* Rm file

* Simplify User. Just Comparable.

* Remove method.
2025-11-11 22:30:40 -01:00
Joao Goncalves
5e9740813b cleanup: go mod 2025-11-11 00:15:44 -01:00
Joao Goncalves
03ce9808e6 feat: add devmode flag; introduce live reload support; update examples 2025-11-11 00:15:44 -01:00
João Gonçalves
a0d672cabe Update contributing guidelines in README.md 2025-11-09 03:41:45 -01:00
Joao Goncalves
9f9e4eb568 refactor: move document head includes out of via configuration into their own append funcs; update examples 2025-11-09 03:17:03 -01:00
João Gonçalves
5c80a934e9 Merge pull request #2 from winkler1/race-condition
LiveReload, some small changes
2025-11-09 00:31:19 -01:00
Jeff Winkler
3b658ed7d0 LiveReload 2025-11-08 13:05:23 -05:00
João Gonçalves
c1ddb6441e Update description of Via framework in README 2025-11-07 11:13:42 -01:00
Joao Goncalves
a46c06b467 feat: introduce support for plugins 2025-11-07 02:45:58 -01:00
Joao Goncalves
798f024743 feat: improve real-time chart example; add small refinements to via core files 2025-11-07 00:44:48 -01:00
Joao Goncalves
c167f0c74f feat: add real-time chart example 2025-11-05 17:29:29 -01:00
Joao Goncalves
57b22de0e4 chore: update example to be the same as readme 2025-11-03 00:56:27 -01:00
Joao Goncalves
61ce1d4258 docs: update readme 2025-11-03 00:49:32 -01:00
Joao Goncalves
905f1dc5da docs: update readme 2025-11-03 00:46:52 -01:00
Joao Goncalves
23aebf73f2 feat: improve component support 2025-11-03 00:41:05 -01:00
Joao Goncalves
c0e050b0f8 docs: update readme 2025-11-02 02:49:23 -01:00
Joao Goncalves
0f492d807e feat: introduce component support 2025-11-02 02:45:20 -01:00
Joao Goncalves
3d09b3110d refactor: move cation trigger logic to its own file; separate conter and greeter examples 2025-11-02 02:44:27 -01:00
Joao Goncalves
a265f537a6 docs: update readme 2025-10-31 11:39:04 -01:00
Joao Goncalves
7468169412 docs: update readme 2025-10-31 11:31:29 -01:00
Joao Goncalves
7b32590ae6 docs: update readme 2025-10-31 11:26:00 -01:00