Skip to content

Commit d3fe20c

Browse files
committed
refactor: with Julian
Signed-off-by: Miroslav Bajtoš <[email protected]>
1 parent cf3e3f1 commit d3fe20c

File tree

8 files changed

+23
-27
lines changed

8 files changed

+23
-27
lines changed

main/activity-log.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use strict'
22

33
/** @typedef {import('./typings').Activity} Activity */
4-
/** @typedef {import('./typings').RecordActivityOptions} RecordActivityOptions */
4+
/** @typedef {import('./typings').RecordActivityArgs} RecordActivityArgs */
55

66
const Store = require('electron-store')
77
const crypto = require('node:crypto')
@@ -18,10 +18,10 @@ class ActivityLog {
1818
}
1919

2020
/**
21-
* @param {RecordActivityOptions} args
21+
* @param {RecordActivityArgs} args
2222
* @returns {Activity}
2323
*/
24-
recordActivity ({ source, type, message }) {
24+
record ({ source, type, message }) {
2525
/** @type {Activity} */
2626
const activity = {
2727
id: crypto.randomUUID(),

main/index.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const { ActivityLog } = require('./activity-log')
1616
const { ipcMain } = require('electron/main')
1717

1818
/** @typedef {import('./typings').Activity} Activity */
19-
/** @typedef {import('./typings').RecordActivityOptions} RecordActivityOptions */
19+
/** @typedef {import('./typings').RecordActivityArgs} RecordActivityOptions */
2020

2121
const inTest = (process.env.NODE_ENV === 'test')
2222
const isDev = !app.isPackaged && !inTest
@@ -55,7 +55,7 @@ if (!app.requestSingleInstanceLock() && !inTest) {
5555

5656
/** @type {import('./typings').Context} */
5757
const ctx = {
58-
resumeActivityStream,
58+
startActivityStream,
5959
recordActivity,
6060
manualCheckForUpdates: () => { throw new Error('never get here') },
6161
showUI: () => { throw new Error('never get here') },
@@ -97,7 +97,7 @@ let isActivityStreamFlowing = false
9797
* @param {RecordActivityOptions} opts
9898
*/
9999
function recordActivity (opts) {
100-
const activity = activityLog.recordActivity(opts)
100+
const activity = activityLog.record(opts)
101101
if (isActivityStreamFlowing) emitActivity(activity)
102102
}
103103

@@ -108,7 +108,7 @@ function emitActivity (activity) {
108108
ipcMain.emit(ipcMainEvents.ACTIVITY_LOGGED, activity)
109109
}
110110

111-
function resumeActivityStream () {
111+
function startActivityStream () {
112112
isActivityStreamFlowing = true
113113
const existingEntries = activityLog.getAllEntries()
114114
for (const it of existingEntries) emitActivity(it)

main/ipc.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ function setupIpcMain (/** @type {Context} */ ctx) {
3131
ipcMain.handle('station:getUserConsent', stationConfig.getUserConsent)
3232
ipcMain.handle('station:setUserConsent', (_event, consent) => stationConfig.setUserConsent(consent))
3333

34-
ipcMain.handle('station:resumeActivityStream', (_event, _args) => {
35-
return ctx.resumeActivityStream()
34+
ipcMain.handle('station:startActivityStream', (_event, _args) => {
35+
return ctx.startActivityStream()
3636
})
3737
}
3838

main/preload.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
const { contextBridge, ipcRenderer } = require('electron')
44

55
contextBridge.exposeInMainWorld('electron', {
6-
resumeActivityStream: () => ipcRenderer.invoke('station:resumeActivityStream'),
6+
startActivityStream: () => ipcRenderer.invoke('station:startActivityStream'),
77

88
/**
99
* @param {(Activity: import('./typings').Activity) => void} callback

main/test/activity-log.test.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ const assert = require('assert').strict
44
const { ActivityLog } = require('../activity-log')
55
const { assertTimestampIsCloseToNow, pickProps } = require('./test-helpers')
66

7-
/** @typedef {import('../typings').RecordActivityOptions} RecordActivityOptions */
7+
/** @typedef {import('../typings').RecordActivityArgs} RecordActivityOptions */
88

99
describe('ActivityLog', function () {
1010
beforeEach(function () { return ActivityLog.reset() })
1111

1212
it('record activities and assign them timestamp and id ', function () {
1313
const activityLog = new ActivityLog()
14-
const activityCreated = activityLog.recordActivity(givenActivity({
14+
const activityCreated = activityLog.record(givenActivity({
1515
source: 'Station',
1616
type: 'info',
1717
message: 'Hello world!'
@@ -33,18 +33,18 @@ describe('ActivityLog', function () {
3333

3434
it('assigns unique ids', function () {
3535
const activityLog = new ActivityLog()
36-
activityLog.recordActivity(givenActivity({ message: 'one' }))
37-
activityLog.recordActivity(givenActivity({ message: 'two' }))
36+
activityLog.record(givenActivity({ message: 'one' }))
37+
activityLog.record(givenActivity({ message: 'two' }))
3838
assert.deepStrictEqual(activityLog.getAllEntries().map(it => pickProps(it, 'id', 'message')), [
3939
{ id: '1', message: 'one' },
4040
{ id: '2', message: 'two' }
4141
])
4242
})
4343

4444
it('preserves activities across restarts', function () {
45-
new ActivityLog().recordActivity(givenActivity({ message: 'first run' }))
45+
new ActivityLog().record(givenActivity({ message: 'first run' }))
4646
const activityLog = new ActivityLog()
47-
activityLog.recordActivity(givenActivity({ message: 'second run' }))
47+
activityLog.record(givenActivity({ message: 'second run' }))
4848
assert.deepStrictEqual(activityLog.getAllEntries().map(it => pickProps(it, 'id', 'message')), [
4949
{ id: '1', message: 'first run' },
5050
{ id: '2', message: 'second run' }
@@ -56,7 +56,7 @@ describe('ActivityLog', function () {
5656

5757
const log = new ActivityLog()
5858
for (let i = 0; i < 110; i++) {
59-
log.recordActivity(givenActivity({ message: `activity ${i}` }))
59+
log.record(givenActivity({ message: `activity ${i}` }))
6060
}
6161
const entries = log.getAllEntries()
6262
assert.deepStrictEqual(

main/typings.d.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,11 @@ export interface Activity {
99
message: string;
1010
}
1111

12-
export interface RecordActivityOptions {
13-
type: ActivityType;
14-
source: ActivitySource;
15-
message: string;
16-
}
12+
export type RecordActivityArgs = Omit<Activity, 'id' | 'timestamp'>;
1713

1814
export interface Context {
19-
recordActivity(activity: RecordActivityOptions): void;
20-
resumeActivityStream(): void;
15+
recordActivity(activity: RecordActivityArgs): void;
16+
startActivityStream(): void;
2117

2218
showUI: () => void
2319
loadWebUIFromDist: import('electron-serve').loadURL

renderer/src/main.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import React from 'react'
22
import ReactDOM from 'react-dom/client'
33
import { BrowserRouter } from 'react-router-dom'
4+
import { Activity } from '../../main/typings'
45
import App from './App'
56
import './index.css'
6-
import { Activity } from '../../main/typings'
77

88
ReactDOM.createRoot(
99
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -34,6 +34,6 @@ window.electron.onActivityLogged(activity => {
3434
console.log('[ACTIVITIES]', activities)
3535
})
3636

37-
window.electron.resumeActivityStream().then(() => {
37+
window.electron.startActivityStream().then(() => {
3838
console.log('ACTIVITY STREAM RESUMED')
3939
})

renderer/src/typings.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Activity } from '../main/typings'
33
export declare global {
44
interface Window {
55
electron: {
6-
resumeActivityStream(): Promise<Activity[]>,
6+
startActivityStream(): Promise<Activity[]>,
77
onActivityLogged(callback: (activity: Activity) => void),
88

99
saturnNode: {

0 commit comments

Comments
 (0)