simplify DisplayGenerator initialization

This commit is contained in:
siikamiika 2020-02-13 01:43:01 +02:00
parent 65dfb855fb
commit 93eaee9765
2 changed files with 7 additions and 30 deletions

View File

@ -19,9 +19,6 @@
class DisplayGenerator {
constructor() {
this._isInitialized = false;
this._initializationPromise = null;
this._termEntryTemplate = null;
this._termExpressionTemplate = null;
this._termDefinitionItemTemplate = null;
@ -40,18 +37,10 @@ class DisplayGenerator {
this._tagFrequencyTemplate = null;
}
isInitialized() {
return this._isInitialized;
}
initialize() {
if (this._isInitialized) {
return Promise.resolve();
}
if (this._initializationPromise === null) {
this._initializationPromise = this._initializeInternal();
}
return this._initializationPromise;
async prepare() {
const html = await apiGetDisplayTemplatesHtml();
const doc = new DOMParser().parseFromString(html, 'text/html');
this._setTemplates(doc);
}
createTermEntry(details) {
@ -303,13 +292,6 @@ class DisplayGenerator {
return node;
}
async _initializeInternal() {
const html = await apiGetDisplayTemplatesHtml();
const doc = new DOMParser().parseFromString(html, 'text/html');
this._setTemplates(doc);
this._isInitialized = true;
}
_setTemplates(doc) {
this._termEntryTemplate = doc.querySelector('#term-entry-template');
this._termExpressionTemplate = doc.querySelector('#term-expression-template');

View File

@ -243,6 +243,7 @@ class Display {
}
async initialize(options=null) {
await this.displayGenerator.prepare();
await this.updateOptions(options);
yomichan.on('optionsUpdate', () => this.updateOptions(null));
}
@ -365,10 +366,7 @@ class Display {
window.focus();
}
if (!this.displayGenerator.isInitialized()) {
await this.displayGenerator.initialize();
if (this.setContentToken !== token) { return; }
}
if (this.setContentToken !== token) { return; }
this.definitions = definitions;
if (context.disableHistory) {
@ -429,10 +427,7 @@ class Display {
window.focus();
}
if (!this.displayGenerator.isInitialized()) {
await this.displayGenerator.initialize();
if (this.setContentToken !== token) { return; }
}
if (this.setContentToken !== token) { return; }
this.definitions = definitions;
if (context.disableHistory) {