@sprucelabs/mercury-client
Version:
The simple way to interact with the Spruce Experience Platform
46 lines (45 loc) • 1.33 kB
JavaScript
import { buildEventContract } from '@sprucelabs/mercury-types';
import { buildSchema } from '@sprucelabs/schema';
const statusChangePayloadSchema = buildSchema({
id: 'connectionStatusChangeEmitPayload',
fields: {
status: {
type: 'select',
isRequired: true,
options: {
choices: [
{
label: 'Connecting',
value: 'connecting',
},
{
label: 'Connected',
value: 'connected',
},
{
label: 'Disconnected',
value: 'disconnected',
},
],
},
},
},
});
const statusChangeTargetAndPayloadSchema = buildSchema({
id: 'connectionStatusChangeEmitTargetAndPayload',
fields: {
payload: {
type: 'schema',
isRequired: true,
options: { schema: statusChangePayloadSchema },
},
},
});
export const connectionStatusContract = buildEventContract({
id: 'connectionStatus',
eventSignatures: {
'connection-status-change': {
emitPayloadSchema: statusChangeTargetAndPayloadSchema,
},
},
});