diff --git a/apps/shared/src/events/events.spec.ts b/apps/shared/src/events/events.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..cf3df5cbaa8ca2c5c939d3fdc45f7e62a0b40b3d --- /dev/null +++ b/apps/shared/src/events/events.spec.ts @@ -0,0 +1,29 @@ +import { BaseEvent, EventDidcommConnectionsGetAll } from './events.js'; + +describe('check logger', () => { + it('should return module', () => { + jest.requireActual('./events'); + }); + + it('should create a new base event', () => { + const baseEvent = new BaseEvent({ some: 'data' }); + + expect(typeof baseEvent.id).toStrictEqual('string'); + expect(baseEvent.type).toStrictEqual('BaseEvent'); + expect(baseEvent.timestamp).toBeInstanceOf(Date); + expect(baseEvent.data).toMatchObject({ some: 'data' }); + }); + + it('should create a new connections get all event', () => { + const getAllConnectionsEvent = new EventDidcommConnectionsGetAll({ + connections: [], + }); + + expect(typeof getAllConnectionsEvent.id).toStrictEqual('string'); + expect(getAllConnectionsEvent.type).toStrictEqual( + 'EventDidcommConnectionsGetAll', + ); + expect(getAllConnectionsEvent.timestamp).toBeInstanceOf(Date); + expect(getAllConnectionsEvent.data).toMatchObject({ connections: [] }); + }); +}); diff --git a/apps/shared/src/events/events.ts b/apps/shared/src/events/events.ts new file mode 100644 index 0000000000000000000000000000000000000000..5b79978bdecf17cb8617212ea6384bc57d238812 --- /dev/null +++ b/apps/shared/src/events/events.ts @@ -0,0 +1,21 @@ +import { utils, type ConnectionRecord } from '@aries-framework/core'; + +export class BaseEvent< + T extends Record<string, unknown> = Record<string, unknown>, +> { + public id: string; + public type: string; + public timestamp: Date; + public data: T; + + public constructor(data: T) { + this.id = utils.uuid(); + this.type = this.constructor.name; + this.timestamp = new Date(); + this.data = data; + } +} + +export class EventDidcommConnectionsGetAll extends BaseEvent<{ + connections: Array<ConnectionRecord>; +}> {} diff --git a/apps/shared/src/index.ts b/apps/shared/src/index.ts index a527485484ea923944f3420287a6ce60d41ff47c..53e4cb004b239fe3dd92d20c6d9f0cfccf213533 100644 --- a/apps/shared/src/index.ts +++ b/apps/shared/src/index.ts @@ -3,3 +3,5 @@ export * from './health/health.controller.js'; export * from './logging/logger.js'; export * from './logging/logAxiosError.js'; + +export * from './events/events.js';