Skip to content

Conversation

moxley01
Copy link
Member

@moxley01 moxley01 commented Jul 9, 2025

Deliberately kept this quite simple: does not try to maintain a cache or anything like that, it assumes that the consumer does this themselves. This is just providing a listener for new notifications as they come in, as an alternative to polling.

@smeijer I took some of your in-app methods and used them as-is (e.g. getUrl, getToken). Not sure whether you think we should try and deduplicate this or if its even worth it.

If you think this approach is way off the mark, feel free to just close it.

Usage would be like:

import { Client, type Notification } from "magicbell-js/user-client"
import { WithRealtime } from "magicbell-js/realtime"

const RealtimeClient = WithRealtime(Client)
const realtimeClient = new RealtimeClient({
  token: userKey,
})

client.listen((notification) => {
      console.log(
        "New notification received:",
        notification,
        notification.title
      )
    })

Tested with npm link in a sample project and it works.

@moxley01 moxley01 requested a review from smeijer July 9, 2025 14:41
Copy link

pkg-pr-new bot commented Jul 9, 2025

Open in StackBlitz

npm i https://pkg.pr.new/@magicbell/cli@553
npm i https://pkg.pr.new/@magicbell/codegen@553
npm i https://pkg.pr.new/magicbell-js@553

commit: 24f764c

"/project-client/package.json",
"/user-client/package.json"
"/user-client/package.json",
"/realtime/package.json",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A left over?

Suggested change
"/realtime/package.json",

Comment on lines 1 to 4
{
"main": "../dist/commonjs/realtime.js",
"types": "../dist/commonjs/realtime.d.ts"
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to be deleted, i guess

@smeijer smeijer merged commit fc604f4 into main Jul 10, 2025
6 checks passed
@smeijer smeijer deleted the feat/realtime-listener branch July 10, 2025 09:45
@MagicBella MagicBella mentioned this pull request Jul 10, 2025
moxley01 pushed a commit that referenced this pull request Jul 10, 2025
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm 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
## [email protected]

### Minor Changes

- [#553](#553)
[`fc604f4`](fc604f4)
Thanks [@moxley01](https://github.com/moxley01)! - add 'socket' client
for realtime notification listening

Co-authored-by: github-actions[bot] <41898282+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.

2 participants