From 4d510d4d6780ea4c6d66ecf92dfdd2f4098497c4 Mon Sep 17 00:00:00 2001 From: ylc395 Date: Sun, 17 Oct 2021 12:34:42 +0800 Subject: [PATCH] rename event enum --- src/domain/service/PublishService.ts | 32 +++++++++++++++++----------- src/driver/generator/webviewApi.ts | 2 +- src/driver/git/webviewApi.ts | 16 +++++++------- 3 files changed, 28 insertions(+), 22 deletions(-) diff --git a/src/domain/service/PublishService.ts b/src/domain/service/PublishService.ts index aa9524d..e22742d 100644 --- a/src/domain/service/PublishService.ts +++ b/src/domain/service/PublishService.ts @@ -16,14 +16,20 @@ import { AppService, FORBIDDEN } from './AppService'; import { isEmpty, isError, noop, omit, pick, some } from 'lodash'; export enum GeneratorEvents { - PAGE_GENERATED = 'PAGE_GENERATED', + PageGenerated = 'pageGenerated', } export enum GitEvents { - PROGRESS = 'PROGRESS', - MESSAGE = 'MESSAGE', - TERMINATED = 'TERMINATED', - INIT_REPO_STATUS_CHANGED = 'INIT_REPO_STATUS_CHANGED', + Progress = 'progress', + Message = 'message', + Terminated = 'terminated', + LocalRepoStatusChanged = 'localRepoStatusChanged', +} + +export enum LocalRepoStatus { + Ready, + Fail, + Initializing, } const MESSAGES: Record = { @@ -55,7 +61,7 @@ export class PublishService { private readonly generator = container.resolve(generatorToken); private readonly git = container.resolve(gitClientToken); private files: string[] = []; - private gitRepoStatus: 'ready' | 'fail' | 'initializing' = 'initializing'; + private localRepoStatus: LocalRepoStatus = LocalRepoStatus.Initializing; readonly githubInfo: Ref = ref(null); readonly isGenerating = ref(false); readonly isPublishing = ref(false); @@ -73,12 +79,12 @@ export class PublishService { private async init() { this.outputDir.value = await this.generator.getOutputDir(); - this.git.on(GitEvents.PROGRESS, (e) => this.refreshPublishingProgress(e)); - this.git.on(GitEvents.MESSAGE, (message) => this.refreshPublishingProgress({ message })); - this.git.on(GitEvents.INIT_REPO_STATUS_CHANGED, (e) => { - this.gitRepoStatus = e; + this.git.on(GitEvents.Progress, (e) => this.refreshPublishingProgress(e)); + this.git.on(GitEvents.Message, (message) => this.refreshPublishingProgress({ message })); + this.git.on(GitEvents.LocalRepoStatusChanged, (e) => { + this.localRepoStatus = e; - if (this.gitRepoStatus === 'initializing') { + if (this.localRepoStatus === LocalRepoStatus.Initializing) { this.refreshPublishingProgress({ phase: 'Local repository initializing...', message: '', @@ -86,7 +92,7 @@ export class PublishService { } }); - this.generator.on(GeneratorEvents.PAGE_GENERATED, this.refreshGeneratingProgress.bind(this)); + this.generator.on(GeneratorEvents.PageGenerated, this.refreshGeneratingProgress.bind(this)); this.githubInfo.value = { ...DEFAULT_GITHUB, @@ -170,7 +176,7 @@ export class PublishService { if (!this.isGithubInfoValid.value) { throw new Error('invalid github info'); } - const initGit_ = initGit || this.gitRepoStatus === 'fail'; + const initGit_ = initGit || this.localRepoStatus === LocalRepoStatus.Fail; if (initGit_) { this.refreshPublishingProgress(); diff --git a/src/driver/generator/webviewApi.ts b/src/driver/generator/webviewApi.ts index 7edd057..09c94b2 100644 --- a/src/driver/generator/webviewApi.ts +++ b/src/driver/generator/webviewApi.ts @@ -35,7 +35,7 @@ class Generator extends EventEmitter { event: 'getGeneratingProgress', }); if (!isEqual(this.lastProgress, progress)) { - this.emit(GeneratorEvents.PAGE_GENERATED, progress); + this.emit(GeneratorEvents.PageGenerated, progress); this.lastProgress = progress; } } diff --git a/src/driver/git/webviewApi.ts b/src/driver/git/webviewApi.ts index f90c613..6bd50b3 100644 --- a/src/driver/git/webviewApi.ts +++ b/src/driver/git/webviewApi.ts @@ -14,7 +14,7 @@ import { import { wrap, Remote, releaseProxy, expose } from 'comlink'; import fs from 'driver/fs/webviewApi'; import type { FsWorkerCallRequest, FsWorkerCallResponse } from 'driver/fs/type'; -import { gitClientToken, GitEvents } from 'domain/service/PublishService'; +import { gitClientToken, GitEvents, LocalRepoStatus } from 'domain/service/PublishService'; import { Github, PublishResults } from 'domain/model/Publishing'; import { joplinToken } from 'domain/service/AppService'; import type { GitEventHandler, WorkerGit } from './type'; @@ -84,16 +84,16 @@ class Git extends EventEmitter { this.initRepoPromise = new Promise((resolve, reject) => { const reject_ = (e: unknown) => { reject(e); - this.emit(GitEvents.INIT_REPO_STATUS_CHANGED, 'fail'); + this.emit(GitEvents.LocalRepoStatusChanged, LocalRepoStatus.Fail); }; const resolve_ = () => { resolve(); - this.emit(GitEvents.INIT_REPO_STATUS_CHANGED, 'ready'); + this.emit(GitEvents.LocalRepoStatusChanged, LocalRepoStatus.Ready); }; this.stopInitRepo = reject_; - this.emit(GitEvents.INIT_REPO_STATUS_CHANGED, 'initializing'); + this.emit(GitEvents.LocalRepoStatusChanged, LocalRepoStatus.Initializing); workerGit .initRepo({ githubInfo, @@ -118,7 +118,7 @@ class Git extends EventEmitter { this.worker?.terminate(); if (triggerTerminate) { - this.emit(GitEvents.TERMINATED); + this.emit(GitEvents.Terminated); } this.workerGit?.[releaseProxy](); @@ -160,7 +160,7 @@ class Git extends EventEmitter { this.isPushing = true; const terminatePromise = new Promise((resolve, reject) => { - this.once(GitEvents.TERMINATED, () => reject(Error(PublishResults.TERMINATED))); + this.once(GitEvents.Terminated, () => reject(Error(PublishResults.TERMINATED))); }); try { @@ -224,11 +224,11 @@ class Git extends EventEmitter { } private handleProgress = (e: GitProgressEvent) => { - this.emit(GitEvents.PROGRESS, e); + this.emit(GitEvents.Progress, e); }; private handleMessage = (e: string) => { - this.emit(GitEvents.MESSAGE, e); + this.emit(GitEvents.Message, e); }; terminate() {