Skip to content

Commit

Permalink
add signals plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
silesky committed Jul 9, 2024
1 parent 9fd81bf commit 1ba9c94
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 3 deletions.
20 changes: 19 additions & 1 deletion packages/signals/signals/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ import { AnalyticsBrowser } from '@segment/analytics-next'
import { SignalsPlugin } from '@segment/analytics-signals'

const analytics = new AnalyticsBrowser()
analytics.register(new SignalsPlugin())
const signalsPlugin = new SignalsPlugin()
analytics.register(signalsPlugin)

analytics.load({
writeKey: '<YOUR_WRITE_KEY>'
Expand All @@ -42,6 +43,23 @@ You can *turn off debugging* by doing:
https://my-website.com?segment_signals_debug=false
```

### Advanced

#### Listening to signals
```ts
const signalsPlugin = new SignalsPlugin()
signalsPlugin.onSignal((signal) => console.log(signal))
```

### Emitting Signals
```ts
const signalsPlugin = new SignalsPlugin()
signalsPlugin.addSignal({
type: 'userDefined',
data: { foo: 'bar' }
})
```

### Playground / Development / Testing
See the [signals example repo](../signals-example).

Expand Down
6 changes: 4 additions & 2 deletions packages/signals/signals/src/plugin/signals-plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ interface SignalsAugmentedFunctionality {
/**
* Listen to signals
*/
onSignal: (fn: OnSignalCb) => void
onSignal: (fn: OnSignalCb) => this

/**
* Emit/add a custom signal
*/
addSignal(data: Signal): void
addSignal(data: Signal): this
}

export class SignalsPlugin implements Plugin, SignalsAugmentedFunctionality {
Expand Down Expand Up @@ -65,9 +65,11 @@ export class SignalsPlugin implements Plugin, SignalsAugmentedFunctionality {

onSignal(cb: (signal: Signal) => void) {
this.signals.signalEmitter.subscribe(cb)
return this
}

addSignal(signal: Signal) {
this.signals.signalEmitter.emit(signal)
return this
}
}

0 comments on commit 1ba9c94

Please sign in to comment.