refactor: small cleanups and type improvement

This commit is contained in:
cv
2023-09-28 08:15:54 +02:00
parent ba5ef6668d
commit a0d4f40bec
9 changed files with 158 additions and 153 deletions
@@ -2,7 +2,16 @@
* Class Event Provider is a mediator for handling the local db
* and adds logic specific to ontime data
*/
import { ProjectData, OntimeRundown, ViewSettings } from 'ontime-types';
import {
ProjectData,
OntimeRundown,
ViewSettings,
DatabaseModel,
OSCSettings,
UserFields,
Alias,
Settings,
} from 'ontime-types';
import { data, db } from '../../modules/loadDb.js';
import { safeMerge } from './DataProvider.utils.js';
@@ -45,7 +54,7 @@ export class DataProvider {
return data.settings;
}
static async setSettings(newData) {
static async setSettings(newData: Settings) {
data.settings = { ...newData };
await this.persist();
}
@@ -58,7 +67,7 @@ export class DataProvider {
return data.aliases;
}
static async setAliases(newData) {
static async setAliases(newData: Alias[]) {
data.aliases = newData;
await this.persist();
}
@@ -76,12 +85,12 @@ export class DataProvider {
await this.persist();
}
static async setUserFields(newData) {
static async setUserFields(newData: UserFields) {
data.userFields = { ...newData };
await this.persist();
}
static async setOsc(newData) {
static async setOsc(newData: OSCSettings) {
data.osc = { ...newData };
await this.persist();
}
@@ -95,7 +104,7 @@ export class DataProvider {
await db.write();
}
static async mergeIntoData(newData) {
static async mergeIntoData(newData: Partial<DatabaseModel>) {
const mergedData = safeMerge(data, newData);
data.project = mergedData.project;
data.settings = mergedData.settings;
@@ -1,10 +1,12 @@
import { DatabaseModel } from 'ontime-types';
/**
* Merges two data objects
* @param {object} existing
* @param {object} newData
*/
export function safeMerge(existing, newData) {
const { rundown, project, settings, viewSettings, osc, http, aliases, userFields } = newData || {};
export function safeMerge(existing: DatabaseModel, newData: Partial<DatabaseModel>) {
const { rundown, project, settings, viewSettings, osc, aliases, userFields } = newData || {};
return {
...existing,
rundown: rundown ?? existing.rundown,
@@ -32,6 +34,5 @@ export function safeMerge(existing, newData) {
: {}),
},
},
http: { ...existing.http, ...http },
};
}
@@ -42,11 +42,6 @@ describe('safeMerge', () => {
onFinish: [],
},
},
http: {
enabled: true,
user: null,
pwd: null,
},
};
it('returns existing data if new data is not provided', () => {
@@ -188,19 +183,6 @@ describe('safeMerge', () => {
onFinish: [],
},
},
http: {
user: null,
pwd: null,
messages: {
onLoad: [],
onStart: [],
onUpdate: [],
onPause: [],
onStop: [],
onFinish: [],
},
enabled: true,
},
};
const newData = {
+1 -1
View File
@@ -42,7 +42,7 @@ const parseDb = async (fileToRead, adapterToUse) => {
adapterToUse.data = dbModel;
}
return parseJson(adapterToUse.data, true);
return parseJson(adapterToUse.data);
};
/**
@@ -287,13 +287,13 @@ export function notifyChanges(options: { timer?: boolean | string[]; external?:
updateTimer();
}
if (options.external) {
// advice socket subscribers of change
sendRefetch();
}
if (options.reset) {
// force rundown to be recalculated
forceReset();
}
if (options.external) {
// advice socket subscribers of change
sendRefetch();
}
}