server-ts: Port services/spaced_update

This commit is contained in:
Elian Doran 2024-04-03 22:53:41 +03:00
parent 915de23e34
commit 16283d4054
No known key found for this signature in database
2 changed files with 19 additions and 9 deletions

View File

@ -15,7 +15,7 @@ const searchService = require('./search/services/search');
const SearchContext = require('./search/search_context');
const becca = require('../becca/becca');
const ws = require('./ws');
const SpacedUpdate = require('./spaced_update.js');
const SpacedUpdate = require('./spaced_update');
const specialNotesService = require('./special_notes.js');
const branchService = require('./branches');
const exportService = require('./export/zip');

View File

@ -1,9 +1,19 @@
type Updater = () => void;
class SpacedUpdate {
constructor(updater, updateInterval = 1000) {
private updater: Updater;
private lastUpdated: number;
private changed: boolean;
private updateInterval: number;
private changeForbidden: boolean;
constructor(updater: Updater, updateInterval = 1000) {
this.updater = updater;
this.lastUpdated = Date.now();
this.changed = false;
this.updateInterval = updateInterval;
this.changeForbidden = false;
}
scheduleUpdate() {
@ -52,7 +62,7 @@ class SpacedUpdate {
}
}
async allowUpdateWithoutChange(callback) {
async allowUpdateWithoutChange(callback: () => void) {
this.changeForbidden = true;
try {
@ -64,4 +74,4 @@ class SpacedUpdate {
}
}
module.exports = SpacedUpdate;
export = SpacedUpdate;