* Add necessary dev-dependencies for testing
* Update some crate metadata
* Replace all implementations of `Into` with `From`
* Replace `write!` with `writeln!` when applicable
* Replace `futures` crate with slightly more minimal `futures_util` crate
* Clarify uses of `Default::default()`
* sdk/dotnet-updates - added ability to append custom headers to sse response
* sdk/dotnet-updates - updated README with Model Binding examples
* sdk/dotnet-updates - nuget package version should reflect properly. no release made in github
---------
Co-authored-by: Greg Holden <SpiralOSS@users.noreply.github.com>
* ready for pull request
* I had the consts_haskell.qtpl in the wrong place
* made changes requested by Ben
* made changes requested by Ben
* fixed license and version in cabal
* more changes per Ben
* renamed dstar.cabal to datastar.cabal
* Update LICENSE
* Rename LICENSE to LICENSE.md
* Update datastar.cabal
---------
Co-authored-by: Ben Croker <57572400+bencroker@users.noreply.github.com>
* Support Rails' #render_in(view_context) interface
So render arbitrary objects, including component libs like ViewComponent and Phlex Rails.
* Render anything that supports #to_s, including Rails' safe buffers
* Make sure Rails view_context is an ActionView::Base
* Document
* Add optional key to `data-on-signals-change`
Fixes#587
* support files
* Listen for changes to signal path
---------
Co-authored-by: Ben Croker <ben@putyourlightson.com>
* Add example to demonstrate
* upgrade to latest idiomorph
* Remove test file
* fix possible removal on apply
---------
Co-authored-by: Delaney Gillilan <delaneygillilan@gmail.com>
* WiP initial setup, ServerSentEventGenerator class
* WiP working merge_fragments in Rails
* #merge_fragments and #merge_signals
* Handle SSE vs Data* options
* Test that #merge_fragments works with a #call(view_context:) interface
* Test Dispatcher#stream
* #remove_fragments
* #remove_signals
* #execute_script
* execute_script with attributes Hash
* Connection: keep-alive
* Use 2 line-breaks as message end, plus last line's 1 line break (3 total)
* Connection callbacks. #on_connect, #on_disconnect, #on_error
* Dispatcher#signals
* Omit retry if using default value (1000)
* Omit defaults
* Multiline scripts
* Test Rack endpoint
* Document test Rack endpoint
* Add missing defaults
* Spawn multiple streams in threads, client_disconnect and server_disconnect handlers
* Move ThreadSpawner to configuration
* Configure a RailsThreadSpawner when Rails detected
* Move Railtie one dir up
* Global error callback
Datastar.config.on_error { |err| Sentry.notify(err) }
* Catch exception from stream threads in main thread
* Linearlize exception handling
* Refactor dispatcher to handle single stream in main thread, multi streams in separate threads
* spawner => executor. Rails Async executor using fibers.
* Support Async for fiber-based concurrency
* Finalize response for Rack and Rails
* test Rack app
* Threaded demo
* Test Dispatcher#sse?
Also do not check for SSE Accept on stream.
Leave it up to the user.
* Do not check Accept header in test app. Test scripts don't send it properly.
* Document code
* Example progress bar Rack app
* README
* Link to D* SSE docs
* See examples
* Document callbacks
* List Ruby SDK in SDKs.md
* Ruby struct in consts.go
* Document running tasks with arguments via Docker
* Code-gen Ruby constants from shared data via template
* Make test rely on constants
* Datastar.from_rack_env(env) => Datastar::Dispatcher
* Ruby example snippets
* #redirect(location)
* Ruby snippet using #redirect(new_path)
* Add X-Accel-Buffering: no header
To disable response buffering by NGinx and other proxies.
* Clarify linearisation of updates in Readme
* Tidy-up progress example
* Move examples to /examples/ruby
* Document Rails and Phlex
* Version 1.0.0.beta.1
* Version 1.0.0.beta.1
* Do not set Connection header if not HTTP/1.1
* Don't touch BUILDING.md docs in this PR
* Remove Changelog for now
* Sort Ruby alphabetically (just "ruby", not the entire line)
* Add hello world example, remove progress bar one.
* Add hello-world example to code-gen
* Typos
* update zig to work on master
* Updated deps, fixed to use tests.zig as root, add datastar as module, refactoring
* Update test_runner.zig. Move tests to root.zig.
* tokamak: use post0 when no body
Datastar responses are also valid SSE responses, and the D* client already sends `Accept: text/event-stream` to the server, so tests should replicate that.
Some servers might rely on this for content negotiation.
Co-authored-by: Ismael Celis <ismaelct@gmail.com>
* sdk/typescript add support for ResponseInit in web stream method
This allows setting custom headers
* sdk/ts elide datalines with default values
* sdk/ts run deno fmt
* sdk/typescript deno lint
* sdk/typescript better error handling for streams
* sdk/typescript improve deno request abortion support and async completion
* sdk/typescript fix type error in error usage