@prismicio/simulator 0.1.4 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/README.md +7 -18
  2. package/dist/SimulatorAPI.cjs +38 -46
  3. package/dist/SimulatorAPI.cjs.map +1 -1
  4. package/dist/SimulatorAPI.d.cts +18 -0
  5. package/dist/SimulatorAPI.d.ts +16 -10
  6. package/dist/SimulatorAPI.js +37 -46
  7. package/dist/SimulatorAPI.js.map +1 -1
  8. package/dist/SimulatorClient.cjs +41 -51
  9. package/dist/SimulatorClient.cjs.map +1 -1
  10. package/dist/SimulatorClient.d.cts +16 -0
  11. package/dist/SimulatorClient.d.ts +15 -9
  12. package/dist/SimulatorClient.js +40 -51
  13. package/dist/SimulatorClient.js.map +1 -1
  14. package/dist/channel/ChannelEmitter.cjs +112 -143
  15. package/dist/channel/ChannelEmitter.cjs.map +1 -1
  16. package/dist/channel/ChannelEmitter.d.cts +38 -0
  17. package/dist/channel/ChannelEmitter.d.ts +36 -36
  18. package/dist/channel/ChannelEmitter.js +110 -141
  19. package/dist/channel/ChannelEmitter.js.map +1 -1
  20. package/dist/channel/ChannelNetwork.cjs +81 -109
  21. package/dist/channel/ChannelNetwork.cjs.map +1 -1
  22. package/dist/channel/ChannelNetwork.d.cts +28 -0
  23. package/dist/channel/ChannelNetwork.d.ts +25 -21
  24. package/dist/channel/ChannelNetwork.js +81 -109
  25. package/dist/channel/ChannelNetwork.js.map +1 -1
  26. package/dist/channel/ChannelReceiver.cjs +69 -92
  27. package/dist/channel/ChannelReceiver.cjs.map +1 -1
  28. package/dist/channel/ChannelReceiver.d.cts +20 -0
  29. package/dist/channel/ChannelReceiver.d.ts +18 -18
  30. package/dist/channel/ChannelReceiver.js +67 -90
  31. package/dist/channel/ChannelReceiver.js.map +1 -1
  32. package/dist/channel/errors.cjs +41 -46
  33. package/dist/channel/errors.cjs.map +1 -1
  34. package/dist/channel/errors.d.cts +28 -0
  35. package/dist/channel/errors.d.ts +22 -19
  36. package/dist/channel/errors.js +40 -52
  37. package/dist/channel/errors.js.map +1 -1
  38. package/dist/channel/messages.cjs +48 -43
  39. package/dist/channel/messages.cjs.map +1 -1
  40. package/dist/channel/messages.d.cts +12 -0
  41. package/dist/channel/messages.d.ts +12 -10
  42. package/dist/channel/messages.js +50 -53
  43. package/dist/channel/messages.js.map +1 -1
  44. package/dist/channel/types.cjs +15 -11
  45. package/dist/channel/types.cjs.map +1 -1
  46. package/dist/channel/types.d.cts +53 -0
  47. package/dist/channel/types.d.ts +42 -50
  48. package/dist/channel/types.js +13 -13
  49. package/dist/channel/types.js.map +1 -1
  50. package/dist/globalExtensions.d.cts +15 -0
  51. package/dist/globalExtensions.d.ts +13 -10
  52. package/dist/index.cjs +24 -33
  53. package/dist/index.d.cts +10 -0
  54. package/dist/index.d.ts +10 -8
  55. package/dist/index.js +5 -25
  56. package/dist/kit/SimulatorManager.cjs +106 -137
  57. package/dist/kit/SimulatorManager.cjs.map +1 -1
  58. package/dist/kit/SimulatorManager.d.cts +19 -0
  59. package/dist/kit/SimulatorManager.d.ts +16 -12
  60. package/dist/kit/SimulatorManager.js +103 -134
  61. package/dist/kit/SimulatorManager.js.map +1 -1
  62. package/dist/kit/State.cjs +82 -80
  63. package/dist/kit/State.cjs.map +1 -1
  64. package/dist/kit/State.d.cts +29 -0
  65. package/dist/kit/State.d.ts +26 -22
  66. package/dist/kit/State.js +80 -78
  67. package/dist/kit/State.js.map +1 -1
  68. package/dist/kit/domHelpers.cjs +25 -37
  69. package/dist/kit/domHelpers.cjs.map +1 -1
  70. package/dist/kit/domHelpers.d.cts +11 -0
  71. package/dist/kit/domHelpers.d.ts +10 -8
  72. package/dist/kit/domHelpers.js +25 -43
  73. package/dist/kit/domHelpers.js.map +1 -1
  74. package/dist/kit/eventHandlers.cjs +11 -9
  75. package/dist/kit/eventHandlers.cjs.map +1 -1
  76. package/dist/kit/eventHandlers.d.cts +8 -0
  77. package/dist/kit/eventHandlers.d.ts +7 -3
  78. package/dist/kit/eventHandlers.js +11 -11
  79. package/dist/kit/eventHandlers.js.map +1 -1
  80. package/dist/kit/getDefault.cjs +9 -7
  81. package/dist/kit/getDefault.cjs.map +1 -1
  82. package/dist/kit/getDefault.d.cts +10 -0
  83. package/dist/kit/getDefault.d.ts +10 -8
  84. package/dist/kit/getDefault.js +9 -10
  85. package/dist/kit/getDefault.js.map +1 -1
  86. package/dist/kit/messages.cjs +8 -22
  87. package/dist/kit/messages.cjs.map +1 -1
  88. package/dist/kit/messages.d.cts +5 -0
  89. package/dist/kit/messages.d.ts +5 -1
  90. package/dist/kit/messages.js +8 -23
  91. package/dist/kit/messages.js.map +1 -1
  92. package/dist/kit/types.cjs +12 -9
  93. package/dist/kit/types.cjs.map +1 -1
  94. package/dist/kit/types.d.cts +28 -0
  95. package/dist/kit/types.d.ts +24 -19
  96. package/dist/kit/types.js +11 -10
  97. package/dist/kit/types.js.map +1 -1
  98. package/dist/kit.cjs +21 -26
  99. package/dist/kit.d.cts +8 -0
  100. package/dist/kit.d.ts +8 -0
  101. package/dist/kit.js +7 -21
  102. package/dist/lib/EventEmitter.cjs +16 -25
  103. package/dist/lib/EventEmitter.cjs.map +1 -1
  104. package/dist/lib/EventEmitter.d.cts +12 -0
  105. package/dist/lib/EventEmitter.d.ts +11 -9
  106. package/dist/lib/EventEmitter.js +16 -26
  107. package/dist/lib/EventEmitter.js.map +1 -1
  108. package/dist/lib/throttle.cjs +21 -21
  109. package/dist/lib/throttle.cjs.map +1 -1
  110. package/dist/lib/throttle.js +21 -22
  111. package/dist/lib/throttle.js.map +1 -1
  112. package/dist/types.cjs +18 -14
  113. package/dist/types.cjs.map +1 -1
  114. package/dist/types.d.cts +39 -0
  115. package/dist/types.d.ts +32 -27
  116. package/dist/types.js +16 -16
  117. package/dist/types.js.map +1 -1
  118. package/package.json +27 -68
  119. package/src/SimulatorAPI.ts +24 -22
  120. package/src/SimulatorClient.ts +24 -25
  121. package/src/channel/ChannelEmitter.ts +71 -74
  122. package/src/channel/ChannelNetwork.ts +53 -55
  123. package/src/channel/ChannelReceiver.ts +46 -48
  124. package/src/channel/errors.ts +14 -14
  125. package/src/channel/index.ts +10 -10
  126. package/src/channel/messages.ts +39 -31
  127. package/src/channel/types.ts +40 -40
  128. package/src/globalExtensions.ts +6 -6
  129. package/src/index.ts +8 -8
  130. package/src/kit/SimulatorManager.ts +64 -63
  131. package/src/kit/State.ts +45 -44
  132. package/src/kit/domHelpers.ts +24 -24
  133. package/src/kit/eventHandlers.ts +6 -6
  134. package/src/kit/getDefault.ts +8 -8
  135. package/src/kit/index.ts +8 -8
  136. package/src/kit/messages.ts +5 -5
  137. package/src/kit/types.ts +13 -13
  138. package/src/lib/EventEmitter.ts +8 -8
  139. package/src/lib/__PRODUCTION__.ts +2 -2
  140. package/src/lib/throttle.ts +12 -12
  141. package/src/types.ts +20 -20
  142. package/dist/channel/index.d.ts +0 -10
  143. package/dist/index.cjs.map +0 -1
  144. package/dist/index.js.map +0 -1
  145. package/dist/kit/index.d.ts +0 -8
  146. package/dist/kit.cjs.map +0 -1
  147. package/dist/kit.js.map +0 -1
  148. package/dist/lib/__PRODUCTION__.d.ts +0 -7
  149. package/dist/lib/throttle.d.ts +0 -1
@@ -1,43 +1,45 @@
1
- import {
1
+ import type {
2
2
  ExtractSuccessResponseMessage,
3
- InternalEmitterRequestType,
4
3
  InternalEmitterTransactions,
5
- InternalReceiverRequestType,
6
4
  RequestMessage,
7
5
  ResponseMessage,
8
6
  SuccessResponseMessage,
9
7
  TransactionsHandlers,
10
8
  UnknownRequestMessage,
11
9
  UnknownResponseMessage,
12
- UnknownTransaction,
13
- } from "./types";
10
+ UnknownTransaction} from "./types";
11
+ import {
12
+ InternalEmitterRequestType,
13
+ InternalReceiverRequestType
14
+ } from "./types"
14
15
 
15
- import { NotReadyError } from "./errors";
16
+ import { NotReadyError } from "./errors"
16
17
 
17
- import {
18
- ChannelNetwork,
18
+ import type {
19
19
  ChannelNetworkOptions,
20
- PostRequestOptions,
21
- } from "./ChannelNetwork";
20
+ PostRequestOptions} from "./ChannelNetwork";
21
+ import {
22
+ ChannelNetwork
23
+ } from "./ChannelNetwork"
22
24
  import {
23
25
  createErrorResponseMessage,
24
26
  createSuccessResponseMessage,
25
27
  isRequestMessage,
26
28
  validateMessage,
27
- } from "./messages";
29
+ } from "./messages"
28
30
 
29
31
  export type ChannelReceiverOptions = {
30
- readyTimeout: number;
31
- };
32
+ readyTimeout: number
33
+ }
32
34
 
33
35
  export const channelReceiverDefaultOptions: ChannelReceiverOptions &
34
36
  Partial<ChannelNetworkOptions> = {
35
37
  readyTimeout: 20000,
36
38
  requestIDPrefix: "receiver-",
37
- };
39
+ }
38
40
 
39
41
  export type AllChannelReceiverOptions = ChannelReceiverOptions &
40
- ChannelNetworkOptions;
42
+ ChannelNetworkOptions
41
43
 
42
44
  export abstract class ChannelReceiver<
43
45
  TEmitterTransactions extends Record<string, UnknownTransaction> = Record<
@@ -49,33 +51,31 @@ export abstract class ChannelReceiver<
49
51
  TEmitterTransactions,
50
52
  ChannelReceiverOptions & TOptions
51
53
  > {
52
- private _ready = false;
54
+ private _ready = false
53
55
 
54
56
  constructor(
55
57
  requestHandlers: TransactionsHandlers<TEmitterTransactions>,
56
58
  options: Partial<AllChannelReceiverOptions> & TOptions,
57
59
  ) {
58
- super(requestHandlers, { ...channelReceiverDefaultOptions, ...options });
60
+ super(requestHandlers, { ...channelReceiverDefaultOptions, ...options })
59
61
 
60
62
  window.addEventListener("message", (event) => {
61
- this._onPublicMessage(event);
62
- });
63
+ this._onPublicMessage(event)
64
+ })
63
65
  }
64
66
 
65
- /**
66
- * Tells the emitter that receiver is ready
67
- */
67
+ /** Tells the emitter that receiver is ready */
68
68
  public async ready(): Promise<SuccessResponseMessage> {
69
69
  if (window.parent === window) {
70
- throw new Error("Receiver is currently not embedded as an iframe");
70
+ throw new Error("Receiver is currently not embedded as an iframe")
71
71
  }
72
72
 
73
- this._ready = false;
73
+ this._ready = false
74
74
 
75
75
  const request = this.createRequestMessage(
76
76
  InternalReceiverRequestType.Ready,
77
77
  undefined,
78
- );
78
+ )
79
79
 
80
80
  const response = await this.postRequest<
81
81
  RequestMessage<InternalReceiverRequestType.Ready>,
@@ -83,39 +83,37 @@ export abstract class ChannelReceiver<
83
83
  >(
84
84
  request,
85
85
  (request) => {
86
- window.parent.postMessage(request, "*");
86
+ window.parent.postMessage(request, "*")
87
87
  },
88
88
  {
89
89
  timeout: this.options.readyTimeout,
90
90
  },
91
- );
91
+ )
92
92
 
93
- this._ready = true;
93
+ this._ready = true
94
94
 
95
- return response;
95
+ return response
96
96
  }
97
97
 
98
- /**
99
- * Handles public messages
100
- */
98
+ /** Handles public messages */
101
99
  private _onPublicMessage(event: MessageEvent<unknown>): void {
102
100
  try {
103
- const message = validateMessage(event.data);
101
+ const message = validateMessage(event.data)
104
102
 
105
103
  if (isRequestMessage(message)) {
106
104
  if (this.options.debug) {
107
105
  // eslint-disable-next-line no-console
108
- console.debug(event.data);
106
+ console.debug(event.data)
109
107
  }
110
108
 
111
109
  switch (message.type) {
112
110
  case InternalEmitterRequestType.Connect:
113
111
  // Set port
114
- this.port = event.ports[0];
112
+ this.port = event.ports[0]
115
113
 
116
114
  // Update options
117
115
  const { data } =
118
- message as InternalEmitterTransactions["connect"]["request"];
116
+ message as InternalEmitterTransactions["connect"]["request"]
119
117
  this.options = {
120
118
  ...this.options,
121
119
  ...data,
@@ -123,32 +121,32 @@ export abstract class ChannelReceiver<
123
121
  debug: this.options.debug,
124
122
  requestIDPrefix: this.options.requestIDPrefix,
125
123
  readyTimeout: this.options.readyTimeout,
126
- };
124
+ }
127
125
 
128
126
  const response = createSuccessResponseMessage(
129
127
  message.requestID,
130
128
  undefined,
131
- );
129
+ )
132
130
 
133
- this.postResponse(response);
134
- break;
131
+ this.postResponse(response)
132
+ break
135
133
 
136
134
  default:
137
135
  this.postResponse(
138
136
  createErrorResponseMessage(message.requestID, undefined),
139
137
  (response) => {
140
- (event.source as WindowProxy).postMessage(
138
+ ;(event.source as WindowProxy).postMessage(
141
139
  response,
142
140
  event.origin,
143
- );
141
+ )
144
142
  },
145
- );
146
- break;
143
+ )
144
+ break
147
145
  }
148
146
  } else {
149
147
  // Forward response messages to default message handler if necessary
150
148
  if (!this._ready) {
151
- this.onMessage(event);
149
+ this.onMessage(event)
152
150
  }
153
151
  }
154
152
  } catch (error) {
@@ -156,7 +154,7 @@ export abstract class ChannelReceiver<
156
154
  // Ignore unknown messages
157
155
  } else {
158
156
  // Should not be possible, but who knows :shrug:
159
- throw error;
157
+ throw error
160
158
  }
161
159
  }
162
160
  }
@@ -172,13 +170,13 @@ export abstract class ChannelReceiver<
172
170
  if (!this._ready) {
173
171
  throw new NotReadyError(
174
172
  "Receiver is not ready, use `ChannelReceiver.ready()` first",
175
- );
173
+ )
176
174
  }
177
175
 
178
176
  return this.postRequest(
179
177
  this.createRequestMessage(type, data),
180
178
  undefined,
181
179
  options,
182
- );
180
+ )
183
181
  }
184
182
  }
@@ -1,53 +1,53 @@
1
- import { UnknownErrorResponseMessage } from ".";
1
+ import type { UnknownErrorResponseMessage } from "."
2
2
 
3
- import { UnknownRequestMessage } from "./types";
3
+ import type { UnknownRequestMessage } from "./types"
4
4
 
5
5
  export class ResponseError<
6
6
  TErrorResponse extends UnknownErrorResponseMessage,
7
7
  > extends Error {
8
- public response: TErrorResponse;
8
+ public response: TErrorResponse
9
9
 
10
10
  constructor(errorResponse: TErrorResponse) {
11
- super(errorResponse.msg);
11
+ super(errorResponse.msg)
12
12
 
13
- this.response = errorResponse;
13
+ this.response = errorResponse
14
14
  }
15
15
  }
16
16
 
17
17
  export class ConnectionTimeoutError extends Error {
18
18
  constructor() {
19
- super("Connection timed out");
19
+ super("Connection timed out")
20
20
  }
21
21
  }
22
22
  export class TooManyConcurrentRequestsError extends Error {
23
- public request: UnknownRequestMessage;
23
+ public request: UnknownRequestMessage
24
24
 
25
25
  constructor(request: UnknownRequestMessage) {
26
- super(`Too many concurrent requests`);
26
+ super(`Too many concurrent requests`)
27
27
 
28
- this.request = request;
28
+ this.request = request
29
29
  }
30
30
  }
31
31
  export class RequestTimeoutError<
32
32
  TRequest extends UnknownRequestMessage,
33
33
  > extends Error {
34
- public request: UnknownRequestMessage;
34
+ public request: UnknownRequestMessage
35
35
 
36
36
  constructor(request: TRequest) {
37
- super(`Request \`${request.requestID}\` timed out`);
37
+ super(`Request \`${request.requestID}\` timed out`)
38
38
 
39
- this.request = request;
39
+ this.request = request
40
40
  }
41
41
  }
42
42
 
43
43
  export class NotReadyError extends Error {}
44
44
  export class PortNotSetError extends Error {
45
45
  constructor() {
46
- super("Port is not set");
46
+ super("Port is not set")
47
47
  }
48
48
  }
49
49
  export class ChannelNotSetError extends Error {
50
50
  constructor() {
51
- super("Channel is not set");
51
+ super("Channel is not set")
52
52
  }
53
53
  }
@@ -1,23 +1,23 @@
1
- export { ChannelNetwork, channelNetworkDefaultOptions } from "./ChannelNetwork";
1
+ export { ChannelNetwork, channelNetworkDefaultOptions } from "./ChannelNetwork"
2
2
  export type {
3
3
  PostRequestOptions,
4
4
  ChannelNetworkOptions,
5
- } from "./ChannelNetwork";
5
+ } from "./ChannelNetwork"
6
6
 
7
- export { ChannelEmitter, channelEmitterDefaultOptions } from "./ChannelEmitter";
7
+ export { ChannelEmitter, channelEmitterDefaultOptions } from "./ChannelEmitter"
8
8
  export type {
9
9
  ChannelEmitterOptions,
10
10
  AllChannelEmitterOptions,
11
- } from "./ChannelEmitter";
11
+ } from "./ChannelEmitter"
12
12
 
13
13
  export {
14
14
  ChannelReceiver,
15
15
  channelReceiverDefaultOptions,
16
- } from "./ChannelReceiver";
16
+ } from "./ChannelReceiver"
17
17
  export type {
18
18
  ChannelReceiverOptions,
19
19
  AllChannelReceiverOptions,
20
- } from "./ChannelReceiver";
20
+ } from "./ChannelReceiver"
21
21
 
22
22
  export {
23
23
  createRequestMessage,
@@ -28,7 +28,7 @@ export {
28
28
  isResponseMessage,
29
29
  isSuccessResponseMessage,
30
30
  isErrorResponseMessage,
31
- } from "./messages";
31
+ } from "./messages"
32
32
 
33
33
  export {
34
34
  ResponseError,
@@ -38,12 +38,12 @@ export {
38
38
  NotReadyError,
39
39
  PortNotSetError,
40
40
  ChannelNotSetError,
41
- } from "./errors";
41
+ } from "./errors"
42
42
 
43
43
  export {
44
44
  InternalEmitterRequestType,
45
45
  InternalReceiverRequestType,
46
- } from "./types";
46
+ } from "./types"
47
47
  export type {
48
48
  // Messages
49
49
  RequestMessage,
@@ -72,4 +72,4 @@ export type {
72
72
  InternalEmitterTransactions,
73
73
  // Receiver
74
74
  InternalReceiverTransactions,
75
- } from "./types";
75
+ } from "./types"
@@ -1,6 +1,4 @@
1
- import statuses from "statuses";
2
-
3
- import {
1
+ import type {
4
2
  ErrorResponseMessage,
5
3
  RequestMessage,
6
4
  SuccessResponseMessage,
@@ -9,9 +7,19 @@ import {
9
7
  UnknownRequestMessage,
10
8
  UnknownResponseMessage,
11
9
  UnknownSuccessResponseMessage,
12
- } from "./types";
10
+ } from "./types"
11
+
12
+ // Adapted from https://github.com/jshttp/statuses/blob/770a97d931c1bb40ebbfefdbb77f0419601890b5/codes.json
13
+ const statuses = {
14
+ 200: "ok",
15
+ 201: "created",
16
+
17
+ 400: "bad request",
18
+ 500: "internal server error",
19
+ 501: "not implemented",
20
+ }
13
21
 
14
- let requestID = 0;
22
+ let requestID = 0
15
23
 
16
24
  export const createRequestMessage = <
17
25
  TType extends string = string,
@@ -25,58 +33,58 @@ export const createRequestMessage = <
25
33
  requestID: `${prefix}${requestID++}`,
26
34
  type,
27
35
  data,
28
- };
29
- };
36
+ }
37
+ }
30
38
 
31
39
  export const createSuccessResponseMessage = <TData = undefined>(
32
40
  requestID: string,
33
41
  data: TData,
34
- status: keyof typeof statuses.message = 200,
42
+ status: keyof typeof statuses = 200,
35
43
  ): SuccessResponseMessage<TData> => {
36
44
  if (status >= 400) {
37
45
  throw new TypeError(
38
46
  `Invalid success status code, expected status to be within \`[100;400[\`, got \`${status}\``,
39
- );
47
+ )
40
48
  }
41
49
 
42
50
  return {
43
51
  requestID,
44
52
  status,
45
- msg: statuses.message[status]?.replace(/\.$/, "").toLowerCase() ?? "",
53
+ msg: statuses[status] ?? "",
46
54
  data,
47
- };
48
- };
55
+ }
56
+ }
49
57
 
50
58
  export const createErrorResponseMessage = <TError = undefined>(
51
59
  requestID: string,
52
60
  error: TError,
53
- status: keyof typeof statuses.message = 400,
61
+ status: keyof typeof statuses = 400,
54
62
  ): ErrorResponseMessage<TError> => {
55
63
  if (status < 400) {
56
64
  throw new TypeError(
57
- `Invalid error status code, expected status to be within \`[500;600[\`, got \`${status}\``,
58
- );
65
+ `Invalid error status code, expected status to be within \`[400;600[\`, got \`${status}\``,
66
+ )
59
67
  }
60
68
 
61
69
  return {
62
70
  requestID,
63
71
  status,
64
- msg: statuses.message[status]?.replace(/\.$/, "").toLowerCase() ?? "",
72
+ msg: statuses[status] ?? "",
65
73
  error,
66
- };
67
- };
74
+ }
75
+ }
68
76
 
69
77
  export const validateMessage = (message: unknown): UnknownMessage => {
70
78
  if (typeof message !== "object" || message === null) {
71
79
  throw new TypeError(
72
80
  `Invalid message received, expected message to be of type \`object\`, got \`${typeof message}\``,
73
- );
81
+ )
74
82
  } else if (
75
83
  !Object.keys(message).every((key) =>
76
84
  ["requestID", "type", "data", "status", "msg", "error"].includes(key),
77
85
  )
78
86
  ) {
79
- throw new TypeError(`Invalid message received: ${JSON.stringify(message)}`);
87
+ throw new TypeError(`Invalid message received: ${JSON.stringify(message)}`)
80
88
  } else if (
81
89
  typeof (message as Record<string, unknown>).requestID !== "string"
82
90
  ) {
@@ -84,32 +92,32 @@ export const validateMessage = (message: unknown): UnknownMessage => {
84
92
  `Invalid message received, expected \`message.requestID\` to be of type \`string\`, got \`${typeof (
85
93
  message as Record<string, unknown>
86
94
  ).id}\``,
87
- );
95
+ )
88
96
  }
89
97
 
90
- return message as UnknownMessage;
91
- };
98
+ return message as UnknownMessage
99
+ }
92
100
 
93
101
  export const isRequestMessage = (
94
102
  message: UnknownMessage,
95
103
  ): message is UnknownRequestMessage => {
96
- return "type" in message;
97
- };
104
+ return "type" in message
105
+ }
98
106
 
99
107
  export const isResponseMessage = (
100
108
  message: UnknownMessage,
101
109
  ): message is UnknownResponseMessage => {
102
- return !("type" in message);
103
- };
110
+ return !("type" in message)
111
+ }
104
112
 
105
113
  export const isSuccessResponseMessage = (
106
114
  message: UnknownMessage,
107
115
  ): message is UnknownSuccessResponseMessage => {
108
- return isResponseMessage(message) && !("error" in message);
109
- };
116
+ return isResponseMessage(message) && !("error" in message)
117
+ }
110
118
 
111
119
  export const isErrorResponseMessage = (
112
120
  message: UnknownMessage,
113
121
  ): message is UnknownErrorResponseMessage => {
114
- return isResponseMessage(message) && !("data" in message);
115
- };
122
+ return isResponseMessage(message) && !("data" in message)
123
+ }
@@ -1,61 +1,61 @@
1
1
  // Messages
2
2
  export type MessageBase = {
3
- requestID: string;
4
- };
3
+ requestID: string
4
+ }
5
5
 
6
6
  export type RequestMessage<TType extends string = string, TData = void> = {
7
- type: TType;
8
- data: TData;
9
- } & MessageBase;
7
+ type: TType
8
+ data: TData
9
+ } & MessageBase
10
10
 
11
11
  export type ResponseMessageBase = {
12
- status: number;
13
- msg: string;
14
- } & MessageBase;
12
+ status: number
13
+ msg: string
14
+ } & MessageBase
15
15
 
16
16
  export type SuccessResponseMessage<TData = void> = {
17
- data: TData;
18
- error?: never;
19
- } & ResponseMessageBase;
17
+ data: TData
18
+ error?: never
19
+ } & ResponseMessageBase
20
20
 
21
21
  export type ErrorResponseMessage<TError = unknown> = {
22
- data?: never;
23
- error: unknown | TError;
24
- } & ResponseMessageBase;
22
+ data?: never
23
+ error: unknown | TError
24
+ } & ResponseMessageBase
25
25
 
26
26
  export type ResponseMessage<TData = void, TError = unknown> =
27
27
  | SuccessResponseMessage<TData>
28
- | ErrorResponseMessage<TError>;
28
+ | ErrorResponseMessage<TError>
29
29
 
30
30
  export type ExtractSuccessResponseMessage<
31
31
  TResponse extends UnknownResponseMessage,
32
- > = Extract<TResponse, { error?: never }>;
32
+ > = Extract<TResponse, { error?: never }>
33
33
 
34
34
  export type ExtractErrorResponseMessage<
35
35
  TResponse extends UnknownResponseMessage,
36
- > = Extract<TResponse, { data?: never }>;
36
+ > = Extract<TResponse, { data?: never }>
37
37
 
38
38
  // Unknown messages
39
- export type UnknownRequestMessage = RequestMessage<string, unknown>;
39
+ export type UnknownRequestMessage = RequestMessage<string, unknown>
40
40
 
41
- export type UnknownSuccessResponseMessage = SuccessResponseMessage<unknown>;
41
+ export type UnknownSuccessResponseMessage = SuccessResponseMessage<unknown>
42
42
 
43
- export type UnknownErrorResponseMessage = ErrorResponseMessage<unknown>;
43
+ export type UnknownErrorResponseMessage = ErrorResponseMessage<unknown>
44
44
 
45
45
  export type UnknownResponseMessage =
46
46
  | UnknownSuccessResponseMessage
47
- | UnknownErrorResponseMessage;
47
+ | UnknownErrorResponseMessage
48
48
 
49
- export type UnknownMessage = UnknownRequestMessage | UnknownResponseMessage;
49
+ export type UnknownMessage = UnknownRequestMessage | UnknownResponseMessage
50
50
 
51
51
  // Transactions
52
52
  export type Transaction<
53
53
  TRequest extends UnknownRequestMessage,
54
54
  TResponse extends UnknownResponseMessage = ResponseMessage<void>,
55
55
  > = {
56
- request: TRequest;
57
- response: TResponse;
58
- };
56
+ request: TRequest
57
+ response: TResponse
58
+ }
59
59
 
60
60
  export type TransactionMethod<
61
61
  TTransaction extends Transaction<
@@ -64,7 +64,7 @@ export type TransactionMethod<
64
64
  >,
65
65
  > = (
66
66
  data: TTransaction["request"]["data"],
67
- ) => Promise<ExtractSuccessResponseMessage<TTransaction["response"]>>;
67
+ ) => Promise<ExtractSuccessResponseMessage<TTransaction["response"]>>
68
68
 
69
69
  export type TransactionHandler<
70
70
  TTransaction extends Transaction<
@@ -77,35 +77,35 @@ export type TransactionHandler<
77
77
  success: (
78
78
  data: ExtractSuccessResponseMessage<TTransaction["response"]>["data"],
79
79
  status?: number,
80
- ) => ExtractSuccessResponseMessage<TTransaction["response"]>;
80
+ ) => ExtractSuccessResponseMessage<TTransaction["response"]>
81
81
  error: (
82
82
  error: ExtractErrorResponseMessage<TTransaction["response"]>["error"],
83
83
  status?: number,
84
- ) => ExtractErrorResponseMessage<TTransaction["response"]>;
84
+ ) => ExtractErrorResponseMessage<TTransaction["response"]>
85
85
  },
86
- ) => Promise<TTransaction["response"]> | TTransaction["response"];
86
+ ) => Promise<TTransaction["response"]> | TTransaction["response"]
87
87
 
88
88
  export type TransactionsMethods<
89
89
  TTransactions extends Record<string, UnknownTransaction>,
90
90
  > = {
91
- [Key in keyof TTransactions]: TransactionMethod<TTransactions[Key]>;
92
- };
91
+ [Key in keyof TTransactions]: TransactionMethod<TTransactions[Key]>
92
+ }
93
93
 
94
94
  export type TransactionsHandlers<
95
95
  TTransactions extends Record<string, UnknownTransaction>,
96
96
  > = {
97
- [Key in keyof TTransactions]: TransactionHandler<TTransactions[Key]>;
98
- };
97
+ [Key in keyof TTransactions]: TransactionHandler<TTransactions[Key]>
98
+ }
99
99
 
100
100
  // Unknown transactions
101
101
  export type UnknownTransaction = Transaction<
102
102
  UnknownRequestMessage,
103
103
  UnknownResponseMessage
104
- >;
104
+ >
105
105
 
106
- export type UnknownTransactionMethod = TransactionMethod<UnknownTransaction>;
106
+ export type UnknownTransactionMethod = TransactionMethod<UnknownTransaction>
107
107
 
108
- export type UnknownTransactionHandler = TransactionHandler<UnknownTransaction>;
108
+ export type UnknownTransactionHandler = TransactionHandler<UnknownTransaction>
109
109
 
110
110
  // Emitter
111
111
  export enum InternalEmitterRequestType {
@@ -123,8 +123,8 @@ export type InternalEmitterTransactions<
123
123
  >
124
124
  | undefined
125
125
  >
126
- >;
127
- };
126
+ >
127
+ }
128
128
 
129
129
  // Receiver
130
130
  export enum InternalReceiverRequestType {
@@ -134,5 +134,5 @@ export enum InternalReceiverRequestType {
134
134
  export type InternalReceiverTransactions = {
135
135
  [InternalReceiverRequestType.Ready]: Transaction<
136
136
  RequestMessage<InternalReceiverRequestType.Ready>
137
- >;
138
- };
137
+ >
138
+ }
@@ -1,13 +1,13 @@
1
- import { SimulatorAPI } from "./SimulatorAPI";
2
- import { SimulatorClient } from "./SimulatorClient";
1
+ import type { SimulatorAPI } from "./SimulatorAPI"
2
+ import type { SimulatorClient } from "./SimulatorClient"
3
3
 
4
4
  declare global {
5
5
  interface Window {
6
6
  prismic?: {
7
7
  sliceSimulator?: {
8
- api?: SimulatorAPI[];
9
- client?: SimulatorClient[];
10
- };
11
- };
8
+ api?: SimulatorAPI[]
9
+ client?: SimulatorClient[]
10
+ }
11
+ }
12
12
  }
13
13
  }