Skip to content

Commit 8d06af2

Browse files
authored
Add signals enums (#1110)
1 parent 2d89b1d commit 8d06af2

File tree

3 files changed

+33
-3
lines changed

3 files changed

+33
-3
lines changed

.changeset/modern-plums-glow.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@segment/analytics-signals': minor
3+
---
4+
5+
Add enums

packages/signals/signals/src/core/processor/sandbox.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
import { logger } from '../../lib/logger'
88
import createWorkerBox from 'workerboxjs'
99

10-
import { AnalyticsRuntimePublicApi, Signal } from '../../types'
10+
import { AnalyticsRuntimePublicApi, Signal, AnalyticsEnums } from '../../types'
1111
import { createSignalsRuntime } from './signals-runtime'
1212
import { replaceBaseUrl } from '../../lib/replace-base-url'
1313

@@ -183,6 +183,7 @@ export class Sandbox {
183183
const analytics = new AnalyticsRuntime()
184184
const scope = {
185185
analytics,
186+
...AnalyticsEnums,
186187
}
187188
logger.debug('processing signal', { signal, scope, signals })
188189
const code = [
@@ -191,7 +192,7 @@ export class Sandbox {
191192
`const signals = createSignalsRuntime(${JSON.stringify(signals)})`,
192193
'try { processSignal(' +
193194
JSON.stringify(signal) +
194-
', { analytics, signals }); } catch(err) { console.error("Process signal failed.", err); }',
195+
', { analytics, signals, SignalType, EventType, NavigationAction }); } catch(err) { console.error("Process signal failed.", err); }',
195196
].join('\n')
196197
await this.jsSandbox.run(code, scope)
197198

packages/signals/signals/src/types/process-signal.ts

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,31 @@ export interface AnalyticsRuntimePublicApi {
1616
export type ProcessSignalScope = {
1717
analytics: AnalyticsRuntimePublicApi
1818
signals: SignalsRuntime
19-
}
19+
} & typeof AnalyticsEnums
20+
2021
export interface ProcessSignal {
2122
(signal: Signal, ctx: ProcessSignalScope): void
2223
}
24+
25+
export const AnalyticsEnums = {
26+
SignalType: Object.freeze({
27+
Interaction: 'interaction',
28+
Navigation: 'navigation',
29+
Network: 'network',
30+
LocalData: 'localData',
31+
Instrumentation: 'instrumentation',
32+
UserDefined: 'userDefined',
33+
}),
34+
EventType: Object.freeze({
35+
Track: 'track',
36+
Page: 'page',
37+
Screen: 'screen',
38+
Identify: 'identify',
39+
Group: 'group',
40+
Alias: 'alias',
41+
}),
42+
NavigationAction: Object.freeze({
43+
URLChange: 'urlChange',
44+
PageLoad: 'pageLoad',
45+
}),
46+
}

0 commit comments

Comments
 (0)