aboutsummaryrefslogtreecommitdiff
path: root/ext/js/data
diff options
context:
space:
mode:
Diffstat (limited to 'ext/js/data')
-rw-r--r--ext/js/data/anki-note-builder.js29
-rw-r--r--ext/js/data/database.js19
2 files changed, 45 insertions, 3 deletions
diff --git a/ext/js/data/anki-note-builder.js b/ext/js/data/anki-note-builder.js
index 864bd2d4..80cc210a 100644
--- a/ext/js/data/anki-note-builder.js
+++ b/ext/js/data/anki-note-builder.js
@@ -22,9 +22,16 @@ import {TemplateRendererProxy} from '../templates/template-renderer-proxy.js';
import {yomitan} from '../yomitan.js';
import {AnkiUtil} from './anki-util.js';
+/**
+ * Anki Note Builder Class.
+ */
export class AnkiNoteBuilder {
/**
+ * Initiate an instance of AnkiNoteBuilder.
* @param {{japaneseUtil: import('../language/sandbox/japanese-util.js').JapaneseUtil}} details
+ * @example
+ * const japaneseUtil = new JapaneseUtil(null);
+ * const ankiNoteBuilder = new AnkiNoteBuilder({japaneseUtil});
*/
constructor({japaneseUtil}) {
/** @type {import('../language/sandbox/japanese-util.js').JapaneseUtil} */
@@ -40,8 +47,30 @@ export class AnkiNoteBuilder {
}
/**
+ * Creates an Anki note.
* @param {import('anki-note-builder').CreateNoteDetails} details
* @returns {Promise<import('anki-note-builder').CreateNoteResult>}
+ * @example
+ * const ankiNoteBuilder = new AnkiNoteBuilder({japaneseUtil});
+ * const details = {
+ * dictionaryEntry,
+ * mode: 'test',
+ * context,
+ * template,
+ * deckName: 'deckName',
+ * modelName: 'modelName',
+ * fields,
+ * tags: ['yomitan'],
+ * checkForDuplicates: true,
+ * duplicateScope: 'collection',
+ * duplicateScopeCheckAllModels: false,
+ * resultOutputMode: mode,
+ * glossaryLayoutMode: 'default',
+ * compactTags: false,
+ * requirements: [],
+ * mediaOptions: null
+ * };
+ * const {note: {fields: noteFields}, errors} = await ankiNoteBuilder.createNote(details);
*/
async createNote({
dictionaryEntry,
diff --git a/ext/js/data/database.js b/ext/js/data/database.js
index 8b9e7354..cb09a680 100644
--- a/ext/js/data/database.js
+++ b/ext/js/data/database.js
@@ -17,6 +17,7 @@
*/
/**
+ * Database class to store objects.
* @template {string} TObjectStoreName
*/
export class Database {
@@ -28,6 +29,7 @@ export class Database {
}
/**
+ * Opens the DB.
* @param {string} databaseName
* @param {number} version
* @param {import('database').StructureDefinition<TObjectStoreName>[]} structure
@@ -51,6 +53,7 @@ export class Database {
}
/**
+ * Closes the DB.
* @throws {Error}
*/
close() {
@@ -63,6 +66,7 @@ export class Database {
}
/**
+ * Returns true if DB opening is in process.
* @returns {boolean}
*/
isOpening() {
@@ -70,6 +74,7 @@ export class Database {
}
/**
+ * Returns true if the DB is open.
* @returns {boolean}
*/
isOpen() {
@@ -77,6 +82,7 @@ export class Database {
}
/**
+ * Returns a new transaction with the given mode ("readonly" or "readwrite") and scope which can be a single object store name or an array of names.
* @param {string[]} storeNames
* @param {IDBTransactionMode} mode
* @returns {IDBTransaction}
@@ -90,10 +96,12 @@ export class Database {
}
/**
+ * Add items in bulk to the object store.
+ * count items will be added beginning from start index of items list.
* @param {TObjectStoreName} objectStoreName
- * @param {unknown[]} items
- * @param {number} start
- * @param {number} count
+ * @param {unknown[]} items List of items to add.
+ * @param {number} start Start index. Added items begin at items[start].
+ * @param {number} count Count of items to add.
* @returns {Promise<void>}
*/
bulkAdd(objectStoreName, items, start, count) {
@@ -244,6 +252,7 @@ export class Database {
}
/**
+ * Deletes records in store with the given key or in the given key range in query.
* @param {TObjectStoreName} objectStoreName
* @param {IDBValidKey|IDBKeyRange} key
* @returns {Promise<void>}
@@ -258,6 +267,7 @@ export class Database {
}
/**
+ * Delete items in bulk from the object store.
* @param {TObjectStoreName} objectStoreName
* @param {?string} indexName
* @param {IDBKeyRange} query
@@ -291,6 +301,9 @@ export class Database {
}
/**
+ * Attempts to delete the named database.
+ * If the database already exists and there are open connections that don't close in response to a versionchange event, the request will be blocked until all they close.
+ * If the request is successful request's result will be null.
* @param {string} databaseName
* @returns {Promise<void>}
*/