Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version Packages #21

Merged
merged 1 commit into from
Feb 25, 2024
Merged

Version Packages #21

merged 1 commit into from
Feb 25, 2024

Conversation

dan-cooke
Copy link
Owner

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@remix-sse/[email protected]

Major Changes

  • 08b640b: Changes the API for useSubscribe to make an eventKey default to 'message'

    Using the library myself in a few projects, I have found that I don't usually need to send multiple events from the same emitter, and one eventKey usually suffices. This change will make it more ergonomic for single event emitters, while remaining flexible for multi event emitters

    How to migrate

    --- const data = useSubscribe('/emitter', 'event-key')
    +++ const data = useSubscribe('/emitter', { eventKey: 'event-key'})

    Or if you want use the default eventKey: 'message' you can omit it entirely

    const data = useSubscribe('/emitter')
  • 7178870: Split up the single remix-sse package into 2 seperate packages @remix-sse/client and @remix-sse/server

    Why

    Exporting both the client and server code from a single package has never sat well with me, at the start I got by releasing a single package: remix-sse for server code and remix-sse/client for client code.

    This works fine if you are trasnpiling CommonJS imports, but at some point recently create-remix has started every project with type: "module" (ES Modules).

    So this made our import paths quite ugly:
    remix-sse/client/index.js -

    Not to mention this uglier syntax was less discoverable now by language servers.

    How to migrate

    • Find and replace import 'remix-sse/client' -> import '@remix-sse/client'
    • Find and replace import 'remix-sse' -> import '@remix-sse'
  • 3159987: - useSubscribe changed to take an EventSource

    • new useEventStream hook to be superseed useSubscribe as the ergonomic way of listening to events
    • removed useEventSource
    • removed RemixSseProvider

    No more boilerplate

    I wasn't happy with the amount of boilerplate even after making several changes like making the eventKey default to 'message'

    The library should not provide the context, if users want to share their event sources across their app they are free to do so, but remix-sse should not care about this.

    So the following changes all have the intention of making the library easier to get started with.

    How to migrate

    useSubscribe now takes an EventSource

    --- const data = useSubscribe('/emitter', 'event-key')
    +++ const data = useSubscribe(new EventSource('/emitter'), { eventKey: 'event-key'})

    This was purely to make room for the next change

    useEventStream is the MVP now

    Use this hook wherever possible, it will create the EventSource for you and call useSubscribe making sure
    to not duplicate Eventsources to the same URL using a simple map.

    const data = useEventStream('/emitter')

    Removed the context and useEventStream

    No need for a context, we can just store a url -> event source map globally

@remix-sse/[email protected]

Major Changes

  • 7178870: Split up the single remix-sse package into 2 seperate packages @remix-sse/client and @remix-sse/server

    Why

    Exporting both the client and server code from a single package has never sat well with me, at the start I got by releasing a single package: remix-sse for server code and remix-sse/client for client code.

    This works fine if you are trasnpiling CommonJS imports, but at some point recently create-remix has started every project with type: "module" (ES Modules).

    So this made our import paths quite ugly:
    remix-sse/client/index.js -

    Not to mention this uglier syntax was less discoverable now by language servers.

    How to migrate

    • Find and replace import 'remix-sse/client' -> import '@remix-sse/client'
    • Find and replace import 'remix-sse' -> import '@remix-sse'
  • 08b640b: Changes the API of the EventStream send function to make the eventKey default to 'message'

    Using the library myself in a few projects, I have found that I don't usually need to send multiple events from the same emitter, and one eventKey usually suffices. This change will make it more ergonomic for single event emitters, while remaining flexible for multi event emitters

    How to migrate

    The first argument of send is now just the data string you wish to send.

    • If you want to allow multiple events from the same emitter you can specify an eventKey in the second argument
    • Otherwise you can just omit the eventKey all together
    export const loader: LoaderFunction = ({ request }) => {
      return new EventStream(request, (send) => {
        let gIndex = 0;
        let g = setInterval(() => {
          gIndex += 1;
    ---   send('message', JSON.stringify({ hello: 'world', index: gIndex }));
    +++   send(JSON.stringify({ hello: 'world', index: gIndex }));
        }, 1000);

    return async () => {
    clearInterval(g);
    };
    });

};


@github-actions github-actions bot force-pushed the changeset-release/main branch from ed146da to aa3489e Compare February 25, 2024 16:39
@dan-cooke dan-cooke merged commit 0a34b6c into main Feb 25, 2024
3 checks passed
dan-cooke added a commit that referenced this pull request Feb 25, 2024
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
dan-cooke added a commit that referenced this pull request Feb 25, 2024
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
dan-cooke added a commit that referenced this pull request Feb 25, 2024
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
dan-cooke added a commit that referenced this pull request Feb 25, 2024
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant