Skip to content

Commit d926b08

Browse files
committed
wip
1 parent 9015727 commit d926b08

File tree

7 files changed

+132
-141
lines changed

7 files changed

+132
-141
lines changed
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
export type { WebSignal } from './web/web-signals-types'
2-
export type { MobileSignal } from './mobile/mobile-signal-types'
1+
export * as Web from './web/web-signals-types'
2+
export * as Mobile from './mobile/mobile-signals-types'
3+
export * from './shared/signals-runtime'

packages/signals/signals-runtime/src/mobile/mobile-exports-globals.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
// all import directives will be removed in the final build
22
import { ISignalsRuntime } from '../shared/shared-types'
3-
import { MobileSignal } from './mobile-signal-types'
3+
import { Signal } from './mobile-signals-types'
44

55
// This will be appended to the generated code - dts-bundle-generator will not write declare const for whatever reason.
6-
declare const signals: ISignalsRuntime<MobileSignal>
6+
declare const signals: ISignalsRuntime<Signal>
77
declare const SignalType: {
88
Interaction: 'interaction'
99
Navigation: 'navigation'

packages/signals/signals-runtime/src/mobile/mobile-exports.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
* This is the public API for this package.
33
* We avoid using splat (*) exports so that we can control what is exposed.
44
*/
5-
export * from './mobile-signal-types'
5+
export * from './mobile-signals-types'
66
export * from '../shared/shared-types'

packages/signals/signals-runtime/src/mobile/mobile-signal-types.ts

Lines changed: 0 additions & 91 deletions
This file was deleted.
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
import { BaseSignal } from '../shared/shared-types'
2+
3+
export type SignalTypes = Signal['type']
4+
5+
export type NavigationAction =
6+
| 'forward'
7+
| 'backward'
8+
| 'modal'
9+
| 'entering'
10+
| 'leaving'
11+
| 'page'
12+
| 'popup'
13+
14+
export type NetworkAction = 'request' | 'response'
15+
16+
export type LocalDataAction =
17+
| 'loaded'
18+
| 'updated'
19+
| 'saved'
20+
| 'deleted'
21+
| 'undefined'
22+
23+
export type Signal =
24+
| InteractionSignal
25+
| NavigationSignal
26+
| NetworkSignal
27+
| LocalDataSignal
28+
| InstrumentationSignal
29+
| UserDefinedSignal
30+
31+
interface RawSignal<SignalType extends string> extends BaseSignal {
32+
type: SignalType
33+
anonymousId: string
34+
data: any
35+
timestamp: string
36+
index: any
37+
}
38+
39+
interface NavigationData {
40+
action: NavigationAction
41+
screen: string
42+
}
43+
44+
interface NavigationSignal extends RawSignal<'navigation'> {
45+
data: NavigationData
46+
}
47+
48+
interface InteractionData {
49+
component: string
50+
info: string
51+
data: any
52+
}
53+
54+
interface InteractionSignal extends RawSignal<'interaction'> {
55+
type: 'interaction'
56+
data: InteractionData
57+
}
58+
59+
interface NetworkData {
60+
action: NetworkAction
61+
url: string
62+
data: any
63+
}
64+
65+
interface NetworkSignal extends RawSignal<'network'> {
66+
data: NetworkData
67+
}
68+
69+
interface LocalData {
70+
action: LocalDataAction
71+
identifier: string
72+
data: string
73+
}
74+
75+
interface LocalDataSignal extends RawSignal<'localData'> {
76+
data: LocalData
77+
}
78+
79+
interface UserDefinedSignal extends RawSignal<'userDefined'> {
80+
data: any
81+
}
82+
83+
interface InstrumentationData {
84+
type: 'instrumentation'
85+
rawEvent: any
86+
}
87+
88+
interface InstrumentationSignal extends RawSignal<'instrumentation'> {
89+
data: InstrumentationData
90+
}

packages/signals/signals-runtime/src/web/web-exports-globals.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
// all import directives will be removed in the final build
22
import { ISignalsRuntime } from '../shared/shared-types'
3-
import { WebSignal } from './web-exports'
3+
import { Signal } from './web-exports'
44

55
// This will be appended to the generated code - dts-bundle-generator will not write declare const for whatever reason.
6-
declare const signals: ISignalsRuntime<WebSignal>
6+
declare const signals: ISignalsRuntime<Signal>
77
declare const SignalType: {
88
Interaction: 'interaction'
99
Navigation: 'navigation'
Lines changed: 34 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,108 +1,99 @@
11
import { BaseSignal, JSONValue } from '../shared/shared-types'
22

3-
export type WebSignalTypes = WebSignal['type']
3+
export type SignalTypes = Signal['type']
44

5-
export interface WebAppSignal<T extends WebSignalTypes, Data>
6-
extends BaseSignal {
5+
export interface RawSignal<T extends SignalTypes, Data> extends BaseSignal {
76
type: T
87
data: Data
98
metadata?: Record<string, any>
109
}
1110

12-
export type WebInteractionData = WebClickData | WebSubmitData | WebChangeData
11+
export type InteractionData = ClickData | SubmitData | ChangeData
1312

14-
interface WebSerializedTarget {
13+
interface SerializedTarget {
1514
[key: string]: any
1615
}
1716

18-
type WebClickData = {
17+
type ClickData = {
1918
eventType: 'click'
20-
target: WebSerializedTarget
19+
target: SerializedTarget
2120
}
2221

23-
type WebSubmitData = {
22+
type SubmitData = {
2423
eventType: 'submit'
25-
submitter: WebSerializedTarget
24+
submitter: SerializedTarget
2625
}
2726

28-
type WebChangeData = {
27+
type ChangeData = {
2928
eventType: 'change'
3029
[key: string]: unknown
3130
}
3231

33-
export type WebInteractionSignal = WebAppSignal<
34-
'interaction',
35-
WebInteractionData
36-
>
32+
export type InteractionSignal = RawSignal<'interaction', InteractionData>
3733

38-
interface WebBaseNavigationData<ActionType extends string> {
34+
interface BaseNavigationData<ActionType extends string> {
3935
action: ActionType
4036
url: string
4137
hash: string
4238
}
4339

44-
export interface WebURLChangeNavigationData
45-
extends WebBaseNavigationData<'urlChange'> {
40+
export interface URLChangeNavigationData
41+
extends BaseNavigationData<'urlChange'> {
4642
prevUrl: string
4743
}
4844

49-
export interface WebPageChangeNavigationData
50-
extends WebBaseNavigationData<'pageLoad'> {}
45+
export interface PageChangeNavigationData
46+
extends BaseNavigationData<'pageLoad'> {}
5147

52-
export type WebNavigationData =
53-
| WebURLChangeNavigationData
54-
| WebPageChangeNavigationData
48+
export type NavigationData = URLChangeNavigationData | PageChangeNavigationData
5549

56-
export type WebNavigationSignal = WebAppSignal<'navigation', WebNavigationData>
50+
export type NavigationSignal = RawSignal<'navigation', NavigationData>
5751

58-
interface WebInstrumentationData {
52+
interface InstrumentationData {
5953
rawEvent: unknown
6054
}
61-
export type WebInstrumentationSignal = WebAppSignal<
55+
export type InstrumentationSignal = RawSignal<
6256
'instrumentation',
63-
WebInstrumentationData
57+
InstrumentationData
6458
>
6559

66-
export interface WebNetworkSignalMetadata {
60+
export interface NetworkSignalMetadata {
6761
filters: {
6862
allowed: string[]
6963
disallowed: string[]
7064
}
7165
}
7266

73-
interface WebBaseNetworkData {
67+
interface BaseNetworkData {
7468
action: string
7569
url: string
7670
data: JSONValue
7771
}
7872

79-
interface WebNetworkRequestData extends WebBaseNetworkData {
73+
interface NetworkRequestData extends BaseNetworkData {
8074
action: 'request'
8175
url: string
8276
method: string
8377
}
8478

85-
interface WebNetworkResponseData extends WebBaseNetworkData {
79+
interface NetworkResponseData extends BaseNetworkData {
8680
action: 'response'
8781
url: string
8882
}
8983

90-
export type WebNetworkData = WebNetworkRequestData | WebNetworkResponseData
84+
export type NetworkData = NetworkRequestData | NetworkResponseData
9185

92-
export type WebNetworkSignal = WebAppSignal<'network', WebNetworkData>
86+
export type NetworkSignal = RawSignal<'network', NetworkData>
9387

94-
export interface WebUserDefinedSignalData {
88+
export interface UserDefinedSignalData {
9589
[key: string]: any
9690
}
9791

98-
export type WebUserDefinedSignal = WebAppSignal<
99-
'userDefined',
100-
WebUserDefinedSignalData
101-
>
92+
export type UserDefinedSignal = RawSignal<'userDefined', UserDefinedSignalData>
10293

103-
export type WebSignal =
104-
| WebInteractionSignal
105-
| WebNavigationSignal
106-
| WebInstrumentationSignal
107-
| WebNetworkSignal
108-
| WebUserDefinedSignal
94+
export type Signal =
95+
| InteractionSignal
96+
| NavigationSignal
97+
| InstrumentationSignal
98+
| NetworkSignal
99+
| UserDefinedSignal

0 commit comments

Comments
 (0)