diff options
author | Eloy Robillard <eloy.robillard@gmail.com> | 2024-04-16 17:05:06 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-16 15:05:06 +0000 |
commit | 643caf0da12d4ffb39989a39931cf0769f1246a0 (patch) | |
tree | fbfd0d9f95046050da30281591a45f58daaeff79 /ext/js/comm | |
parent | 82bb9deafaf57b11edb7a72bb1a63563f4ae1963 (diff) |
Revert to using canAddNotes (#827)
Fix #818
Diffstat (limited to 'ext/js/comm')
-rw-r--r-- | ext/js/comm/anki-connect.js | 55 |
1 files changed, 5 insertions, 50 deletions
diff --git a/ext/js/comm/anki-connect.js b/ext/js/comm/anki-connect.js index 72ad58a5..6a008f40 100644 --- a/ext/js/comm/anki-connect.js +++ b/ext/js/comm/anki-connect.js @@ -128,15 +128,16 @@ export class AnkiConnect { return result; } + /** * @param {import('anki').Note[]} notes - * @returns {Promise<({ canAdd: true } | { canAdd: false, error: string })[]>} + * @returns {Promise<boolean[]>} */ - async canAddNotesWithErrorDetail(notes) { + async canAddNotes(notes) { if (!this._enabled) { return []; } await this._checkVersion(); - const result = await this._invoke('canAddNotesWithErrorDetail', {notes}); - return this._normalizeCanAddNotesWithErrorDetailArray(result, notes.length); + const result = await this._invoke('canAddNotes', {notes}); + return this._normalizeArray(result, notes.length, 'boolean'); } /** @@ -581,52 +582,6 @@ export class AnkiConnect { /** * @param {unknown} result - * @param {number} expectedCount - * @returns {import('anki-connect.js').CanAddResult[]} - * @throws {Error} - */ - _normalizeCanAddNotesWithErrorDetailArray(result, expectedCount) { - if (!Array.isArray(result)) { - throw this._createUnexpectedResultError('array', result, ''); - } - if (expectedCount !== result.length) { - throw this._createError(`Unexpected result array size: expected ${expectedCount}, received ${result.length}`, result); - } - /** @type {import('anki-connect.js').CanAddResult[]} */ - const result2 = []; - for (let i = 0; i < expectedCount; ++i) { - const item = /** @type {unknown} */ (result[i]); - if (item === null || typeof item !== 'object') { - throw this._createError(`Unexpected result type at index ${i}: expected object, received ${this._getTypeName(item)}`, result); - } - - const {canAdd, error} = /** @type {{[key: string]: unknown}} */ (item); - if (typeof canAdd !== 'boolean') { - throw this._createError(`Unexpected result type at index ${i}, field canAdd: expected boolean, received ${this._getTypeName(canAdd)}`, result); - } - - if (canAdd && typeof error !== 'undefined') { - throw this._createError(`Unexpected result type at index ${i}, field error: expected undefined, received ${this._getTypeName(error)}`, result); - } - if (!canAdd && typeof error !== 'string') { - throw this._createError(`Unexpected result type at index ${i}, field error: expected string, received ${this._getTypeName(error)}`, result); - } - - if (canAdd) { - result2.push({canAdd}); - } else if (typeof error === 'string') { - const item2 = { - canAdd, - error - }; - result2.push(item2); - } - } - return result2; - } - - /** - * @param {unknown} result * @returns {(?import('anki').NoteInfo)[]} * @throws {Error} */ |