summaryrefslogtreecommitdiff
path: root/ext/js/data/anki-note-builder.js
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2021-07-03 11:30:48 -0400
committerGitHub <noreply@github.com>2021-07-03 11:30:48 -0400
commitf7d177e6d0f970ba6600fbf3911fccc093553eef (patch)
treed83865cb66308f98b57bea7d9e1ca172c257e049 /ext/js/data/anki-note-builder.js
parentd7c934cae8c4f0747a0298b7e237ebab4efd48e5 (diff)
Refactor createNote (#1789)
* Update createNote to return a wrapper object * Update how createNote creates errors
Diffstat (limited to 'ext/js/data/anki-note-builder.js')
-rw-r--r--ext/js/data/anki-note-builder.js17
1 files changed, 8 insertions, 9 deletions
diff --git a/ext/js/data/anki-note-builder.js b/ext/js/data/anki-note-builder.js
index c36ad889..4427c276 100644
--- a/ext/js/data/anki-note-builder.js
+++ b/ext/js/data/anki-note-builder.js
@@ -42,8 +42,7 @@ class AnkiNoteBuilder {
duplicateScope='collection',
resultOutputMode='split',
glossaryLayoutMode='default',
- compactTags=false,
- errors=null
+ compactTags=false
}) {
let duplicateScopeDeckName = null;
let duplicateScopeCheckChildren = false;
@@ -53,6 +52,7 @@ class AnkiNoteBuilder {
duplicateScopeCheckChildren = true;
}
+ const errors = [];
const commonData = this._createData(dictionaryEntry, mode, context, resultOutputMode, glossaryLayoutMode, compactTags, injectedMedia);
const formattedFieldValuePromises = [];
for (const [, fieldValue] of fields) {
@@ -68,7 +68,7 @@ class AnkiNoteBuilder {
noteFields[fieldName] = formattedFieldValue;
}
- return {
+ const note = {
fields: noteFields,
tags,
deckName,
@@ -82,6 +82,7 @@ class AnkiNoteBuilder {
}
}
};
+ return {note, errors};
}
async getRenderingData({
@@ -112,17 +113,15 @@ class AnkiNoteBuilder {
};
}
- async _formatField(field, commonData, template, errors=null) {
+ async _formatField(field, commonData, template, errors) {
return await this._stringReplaceAsync(field, this._markerPattern, async (g0, marker) => {
try {
const {result} = await this._renderTemplateBatched(template, commonData, marker);
return result;
} catch (e) {
- if (Array.isArray(errors)) {
- const error = new Error(`Template render error for {${marker}}`);
- error.data = {error: e};
- errors.push(error);
- }
+ const error = new Error(`Template render error for {${marker}}`);
+ error.data = {error: e};
+ errors.push(error);
return `{${marker}-render-error}`;
}
});