From 89c7f8707b5319f310a591d9cf5157d25683da6c Mon Sep 17 00:00:00 2001 From: arc-alex Date: Fri, 3 Nov 2023 23:25:20 +0100 Subject: [PATCH] create universal Subscription --- .../src/services/integration-service/IIntegration.ts | 4 ++-- .../src/services/integration-service/OscIntegration.ts | 6 +++--- apps/server/src/utils/parserFunctions.ts | 4 ++-- packages/types/src/definitions/core/OscSettings.type.ts | 7 ++----- packages/types/src/definitions/core/Subscription.type.ts | 4 ++++ packages/types/src/index.ts | 5 +++-- 6 files changed, 16 insertions(+), 14 deletions(-) create mode 100644 packages/types/src/definitions/core/Subscription.type.ts diff --git a/apps/server/src/services/integration-service/IIntegration.ts b/apps/server/src/services/integration-service/IIntegration.ts index 64f81bf75..fc537de0e 100644 --- a/apps/server/src/services/integration-service/IIntegration.ts +++ b/apps/server/src/services/integration-service/IIntegration.ts @@ -1,9 +1,9 @@ -import { TimerLifeCycle, OscSubscription } from 'ontime-types'; +import { TimerLifeCycle, Subscription } from 'ontime-types'; export type TimerLifeCycleKey = keyof typeof TimerLifeCycle; export default interface IIntegration { - subscriptions: OscSubscription; + subscriptions: Subscription; init: (config: unknown) => OperationReturn; dispatch: (action: TimerLifeCycleKey, state?: object) => OperationReturn; emit: (...args: unknown[]) => unknown; diff --git a/apps/server/src/services/integration-service/OscIntegration.ts b/apps/server/src/services/integration-service/OscIntegration.ts index f9c730a28..9c88c20a2 100644 --- a/apps/server/src/services/integration-service/OscIntegration.ts +++ b/apps/server/src/services/integration-service/OscIntegration.ts @@ -1,5 +1,5 @@ import { ArgumentType, Client, Message } from 'node-osc'; -import { OSCSettings, OscSubscription } from 'ontime-types'; +import { OSCSettings, Subscription } from 'ontime-types'; import IIntegration, { TimerLifeCycleKey } from './IIntegration.js'; import { parseTemplateNested } from './integrationUtils.js'; @@ -15,7 +15,7 @@ type Action = TimerLifeCycleKey | string; */ export class OscIntegration implements IIntegration { protected oscClient: null | Client; - subscriptions: OscSubscription; + subscriptions: Subscription; constructor() { this.oscClient = null; @@ -57,7 +57,7 @@ export class OscIntegration implements IIntegration { } } - initSubscriptions(subscriptionOptions: OscSubscription) { + initSubscriptions(subscriptionOptions: Subscription) { if (validateOscObject(subscriptionOptions)) { this.subscriptions = { ...subscriptionOptions }; } diff --git a/apps/server/src/utils/parserFunctions.ts b/apps/server/src/utils/parserFunctions.ts index 2bc0e3b75..081f62814 100644 --- a/apps/server/src/utils/parserFunctions.ts +++ b/apps/server/src/utils/parserFunctions.ts @@ -4,8 +4,8 @@ import { EndAction, OntimeRundown, OSCSettings, - OscSubscription, - OscSubscriptionOptions, + Subscription, + SubscriptionOptions, ProjectData, Settings, TimerLifeCycle, diff --git a/packages/types/src/definitions/core/OscSettings.type.ts b/packages/types/src/definitions/core/OscSettings.type.ts index faa518b3a..a95391e09 100644 --- a/packages/types/src/definitions/core/OscSettings.type.ts +++ b/packages/types/src/definitions/core/OscSettings.type.ts @@ -1,7 +1,4 @@ -import { TimerLifeCycleKey } from './TimerLifecycle.type.js'; - -export type OscSubscriptionOptions = { message: string; enabled: boolean }; -export type OscSubscription = { [key in TimerLifeCycleKey]: OscSubscriptionOptions[] }; +import { Subscription } from './Subscription.type.js'; export interface OSCSettings { portIn: number; @@ -9,5 +6,5 @@ export interface OSCSettings { targetIP: string; enabledIn: boolean; enabledOut: boolean; - subscriptions: OscSubscription; + subscriptions: Subscription; } diff --git a/packages/types/src/definitions/core/Subscription.type.ts b/packages/types/src/definitions/core/Subscription.type.ts new file mode 100644 index 000000000..5fb30fb33 --- /dev/null +++ b/packages/types/src/definitions/core/Subscription.type.ts @@ -0,0 +1,4 @@ +import { TimerLifeCycleKey } from './TimerLifecycle.type.js'; + +export type SubscriptionOptions = { message: string; enabled: boolean }; +export type Subscription = { [key in TimerLifeCycleKey]: SubscriptionOptions[] }; \ No newline at end of file diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts index daee8f60c..fc8e1d27f 100644 --- a/packages/types/src/index.ts +++ b/packages/types/src/index.ts @@ -28,9 +28,10 @@ export type { Alias } from './definitions/core/Alias.type.js'; // ---> User Fields export type { UserFields } from './definitions/core/UserFields.type.js'; +// ---> Integration, Subscription +export type { Subscription, SubscriptionOptions } from './definitions/core/Subscription.type.js'; // ---> OSC -export type { OSCSettings, OscSubscription, OscSubscriptionOptions } from './definitions/core/OscSettings.type.js'; - +export type { OSCSettings } from './definitions/core/OscSettings.type.js'; // ---> HTTP // SERVER RUNTIME