chore: lint fixes

This commit is contained in:
izzy
2025-11-20 17:05:22 +00:00
parent 161918e9ca
commit 5be08274ff
7 changed files with 33 additions and 20 deletions

View File

@@ -35,7 +35,7 @@ class Workers {
if (isMaintenanceMode) { if (isMaintenanceMode) {
this.startWorker(ImmichWorker.Maintenance); this.startWorker(ImmichWorker.Maintenance);
} else { } else {
this.waitForFreeLock(); await this.waitForFreeLock();
for (const worker of workers) { for (const worker of workers) {
this.startWorker(worker); this.startWorker(worker);

View File

@@ -21,7 +21,7 @@ export class MaintenanceWorkerController {
constructor(private service: MaintenanceWorkerService) {} constructor(private service: MaintenanceWorkerService) {}
@Get('server/config') @Get('server/config')
getServerConfig(): Promise<ServerConfigDto> { getServerConfig(): ServerConfigDto {
return this.service.getSystemConfig(); return this.service.getSystemConfig();
} }

View File

@@ -9,6 +9,10 @@ import { MaintenanceWebsocketRepository } from 'src/maintenance/maintenance-webs
import { MaintenanceWorkerService } from 'src/maintenance/maintenance-worker.service'; import { MaintenanceWorkerService } from 'src/maintenance/maintenance-worker.service';
import { automock, AutoMocked, getMocks, mockDuplex, mockSpawn, ServiceMocks } from 'test/utils'; import { automock, AutoMocked, getMocks, mockDuplex, mockSpawn, ServiceMocks } from 'test/utils';
function* mockData() {
yield '';
}
describe(MaintenanceWorkerService.name, () => { describe(MaintenanceWorkerService.name, () => {
let sut: MaintenanceWorkerService; let sut: MaintenanceWorkerService;
let mocks: ServiceMocks; let mocks: ServiceMocks;
@@ -45,7 +49,7 @@ describe(MaintenanceWorkerService.name, () => {
describe('getSystemConfig', () => { describe('getSystemConfig', () => {
it('should respond the server is in maintenance mode', async () => { it('should respond the server is in maintenance mode', async () => {
await expect(sut.getSystemConfig()).resolves.toMatchObject( expect(sut.getSystemConfig()).toMatchObject(
expect.objectContaining({ expect.objectContaining({
maintenanceMode: true, maintenanceMode: true,
}), }),
@@ -188,10 +192,6 @@ describe(MaintenanceWorkerService.name, () => {
describe('action: restore database', () => { describe('action: restore database', () => {
beforeEach(() => { beforeEach(() => {
function* mockData() {
yield '';
}
mocks.database.tryLock.mockResolvedValueOnce(true); mocks.database.tryLock.mockResolvedValueOnce(true);
mocks.storage.readdir.mockResolvedValue([]); mocks.storage.readdir.mockResolvedValue([]);

View File

@@ -65,7 +65,7 @@ export class MaintenanceWorkerService {
/** /**
* {@link _ServerService.getSystemConfig} * {@link _ServerService.getSystemConfig}
*/ */
async getSystemConfig() { getSystemConfig() {
return { return {
maintenanceMode: true, maintenanceMode: true,
} as ServerConfigDto; } as ServerConfigDto;
@@ -195,12 +195,19 @@ export class MaintenanceWorkerService {
async runAction(action: SetMaintenanceModeDto) { async runAction(action: SetMaintenanceModeDto) {
switch (action.action) { switch (action.action) {
case MaintenanceAction.Start: case MaintenanceAction.Start: {
return; return;
case MaintenanceAction.End: }
case MaintenanceAction.End: {
return this.endMaintenance(); return this.endMaintenance();
case MaintenanceAction.RestoreDatabase: }
if (!action.restoreBackupFilename) return; case MaintenanceAction.RestoreDatabase: {
if (!action.restoreBackupFilename) {
return;
}
break;
}
} }
const lock = await this.databaseRepository.tryLock(DatabaseLock.MaintenanceOperation); const lock = await this.databaseRepository.tryLock(DatabaseLock.MaintenanceOperation);
@@ -220,9 +227,10 @@ export class MaintenanceWorkerService {
try { try {
switch (action.action) { switch (action.action) {
case MaintenanceAction.RestoreDatabase: case MaintenanceAction.RestoreDatabase: {
await this.restoreBackup(action.restoreBackupFilename); await this.restoreBackup(action.restoreBackupFilename);
break; break;
}
} }
} catch (error) { } catch (error) {
this.logger.error(`Encountered error running action: ${error}`); this.logger.error(`Encountered error running action: ${error}`);

View File

@@ -94,10 +94,10 @@ export class ProcessRepository {
process.on('exit', (code) => { process.on('exit', (code) => {
console.info(`${command} exited (${code})`); console.info(`${command} exited (${code})`);
if (code !== 0) { if (code === 0) {
close(new Error(`${command} non-zero exit code (${code})\n${stderr}`));
} else {
close(); close();
} else {
close(new Error(`${command} non-zero exit code (${code})\n${stderr}`));
} }
}); });

View File

@@ -230,7 +230,10 @@ export async function restoreBackup(
}); });
const [progressSource, progressSink] = createSqlProgressStreams((progress) => { const [progressSource, progressSink] = createSqlProgressStreams((progress) => {
if (complete) return; if (complete) {
return;
}
logger.log(`Restore progress ~ ${(progress * 100).toFixed(2)}%`); logger.log(`Restore progress ~ ${(progress * 100).toFixed(2)}%`);
progressCb?.('restore', progress); progressCb?.('restore', progress);
}); });

View File

@@ -509,11 +509,13 @@ export const mockDuplex = vitest.fn(
setImmediate(() => { setImmediate(() => {
if (error) { if (error) {
duplex.destroy(error as Error); duplex.destroy(error as Error);
} else if (exitCode !== 0) { } else if (exitCode === 0) {
duplex.destroy(new Error(`${command} non-zero exit code (${exitCode})\n${stderr}`)); /* eslint-disable unicorn/prefer-single-call */
} else {
duplex.push(stdout); duplex.push(stdout);
duplex.push(null); duplex.push(null);
/* eslint-enable unicorn/prefer-single-call */
} else {
duplex.destroy(new Error(`${command} non-zero exit code (${exitCode})\n${stderr}`));
} }
}); });