Deps migration (#1988)

* chore: migrate eslint to oxlint

* chore: migrate prettier to oxfmt

* chore: migrate typescript

* chore: toThrow should have a expected value

* chore: cast test value as Day

* chore: small title fix

* chore: mocks should be hoisted

* chore: incorrect async useage

* chore: test should be inside description

* chore: test sohuld include an expeced

* chore: oxfmt

---------

Co-authored-by: alex-Arc <omnivox@LAPTOP-RC5SNBVV.localdomain>
This commit is contained in:
Carlos Valente
2026-03-08 16:22:12 +01:00
committed by GitHub
parent 9516ac21bb
commit 1849b4d39f
501 changed files with 2678 additions and 4654 deletions
@@ -3,21 +3,18 @@
import { SupportedEntry } from 'ontime-types';
import { demoDb } from '../../../models/demoProject.js';
import { parseDatabaseModel } from '../db.parser.js';
// mock data provider
beforeAll(() => {
vi.mock('../../classes/data-provider/DataProvider.js', () => {
return {
getDataProvider: vi.fn().mockImplementation(() => {
return {
setRundown: vi.fn().mockImplementation((newData) => newData),
setCustomFields: vi.fn().mockImplementation((newData) => newData),
};
}),
};
});
vi.mock('../../classes/data-provider/DataProvider.js', () => {
return {
getDataProvider: vi.fn().mockImplementation(() => {
return {
setRundown: vi.fn().mockImplementation((newData) => newData),
setCustomFields: vi.fn().mockImplementation((newData) => newData),
};
}),
};
});
describe('test parseDatabaseModel() with demo project (valid)', () => {
+3 -4
View File
@@ -1,3 +1,4 @@
import type { Request, Response } from 'express';
import {
DatabaseModel,
ErrorResponse,
@@ -7,17 +8,15 @@ import {
TimeFormat,
} from 'ontime-types';
import { getErrorMessage } from 'ontime-utils';
import type { Request, Response } from 'express';
import sanitize from 'sanitize-filename';
import { getPartialProject } from '../../models/dataModel.js';
import * as projectService from '../../services/project-service/ProjectService.js';
import {
doesProjectExist,
handleImageUpload,
handleProjectUploaded,
} from '../../services/project-service/projectServiceUtils.js';
import * as projectService from '../../services/project-service/ProjectService.js';
import { getPartialProject } from '../../models/dataModel.js';
export async function patchPartialProjectFile(req: Request, res: Response<DatabaseModel | ErrorResponse>) {
try {
+4 -9
View File
@@ -1,18 +1,17 @@
import { DatabaseModel, LogOrigin } from 'ontime-types';
import { getErrorMessage } from 'ontime-utils';
import { logger } from '../../classes/Logger.js';
import { portManager } from '../../classes/port-manager/PortManager.js';
import { parseAutomationSettings } from '../automation/automation.parser.js';
import { parseCustomFields } from '../custom-fields/customFields.parser.js';
import { parseProjectData } from '../project-data/projectData.parser.js';
import { parseRundowns } from '../rundown/rundown.parser.js';
import { parseSettings } from '../settings/settings.parser.js';
import { parseUrlPresets } from '../url-presets/urlPresets.parser.js';
import { parseViewSettings } from '../view-settings/viewSettings.parser.js';
import { parseCustomFields } from '../custom-fields/customFields.parser.js';
import * as v3 from './migration/db.migration.v3.js';
import * as v4 from './migration/db.migration.v4.js';
import { portManager } from '../../classes/port-manager/PortManager.js';
import { getErrorMessage } from 'ontime-utils';
type ParsingError = {
context: string;
@@ -32,7 +31,6 @@ export function parseDatabaseModel(
errors: ParsingError[];
migrated: boolean;
} {
let migrated = false;
let migratedData = jsonData;
const errors: ParsingError[] = [];
@@ -46,11 +44,9 @@ export function parseDatabaseModel(
logger.error(LogOrigin.Server, 'Failed to migrate the data');
errors.push({ context: 'v3 migration', message: getErrorMessage(error) });
migratedData = jsonData;
};
}
}
if (v4.shouldMigrateServerPort(migratedData)) {
try {
migrated = true;
@@ -62,7 +58,6 @@ export function parseDatabaseModel(
logger.error(LogOrigin.Server, 'Failed to migrate serverPort');
errors.push({ context: 'v4 migration', message: getErrorMessage(error) });
migratedData = jsonData;
}
}
+2 -2
View File
@@ -16,11 +16,11 @@ import {
} from './db.controller.js';
import { uploadProjectFile } from './db.middleware.js';
import {
validateNewProject,
validatePatchProject,
validateFilenameBody,
validateFilenameParam,
validateNewFilenameBody,
validateNewProject,
validatePatchProject,
validateQuickProject,
} from './db.validation.js';
@@ -1,5 +1,6 @@
import { body, param } from 'express-validator';
import sanitize from 'sanitize-filename';
import { ensureJsonExtension } from '../../utils/fileManagement.js';
import { requestValidationFunction } from '../validation-utils/validationFunction.js';
@@ -5,8 +5,8 @@ import {
EndAction,
EntryCustomFields,
NormalisedAutomation,
OntimeGroup,
OntimeEntry,
OntimeGroup,
ProjectData,
ProjectRundowns,
Rundown,
@@ -19,15 +19,15 @@ import {
Day,
} from 'ontime-types';
import {
customFieldLabelToKey,
checkRegex,
customFieldLabelToKey,
eventDef as eventModel,
isKnownTimerType,
validateEndAction,
eventDef as eventModel,
} from 'ontime-utils';
import { is } from '../../../utils/is.js';
import { getPartialProject } from '../../../models/dataModel.js';
import { is } from '../../../utils/is.js';
// the methodology of the migrations is to just change the necessary keys to match with v4
// and then let the normal project parser handle ensuring the the file is correct
@@ -1,4 +1,5 @@
import { DatabaseModel, Settings } from 'ontime-types';
import { is } from '../../../utils/is.js';
export function shouldMigrateServerPort(jsonData: object): boolean {
@@ -1,6 +1,7 @@
import {
AutomationSettings,
CustomFields,
type Day,
DatabaseModel,
EndAction,
OntimeView,
@@ -8,12 +9,13 @@ import {
Rundown,
Settings,
SupportedEntry,
TimeStrategy,
TimerLifeCycle,
TimerType,
TimeStrategy,
URLPreset,
ViewSettings,
} from 'ontime-types';
import * as v3 from './db.migration.v3.js';
import * as v4 from './db.migration.v4.js';
@@ -295,7 +297,7 @@ describe('v3 to v4', () => {
flag: false,
parent: null,
delay: 0,
dayOffset: 0,
dayOffset: 0 as Day,
gap: 0,
},
group0: {
@@ -340,7 +342,7 @@ describe('v3 to v4', () => {
parent: 'group0',
revision: -1,
delay: 0,
dayOffset: 0,
dayOffset: 0 as Day,
gap: 0,
},
event3: {
@@ -371,7 +373,7 @@ describe('v3 to v4', () => {
parent: 'group0',
revision: -1,
delay: 0,
dayOffset: 0,
dayOffset: 0 as Day,
gap: 0,
},
group1: {