importDatasetEntries function exported ✓ 100.0%

Last updated: 2026-02-24T21:07:57.500Z

Metrics

LOC: 37 Complexity: 9 Params: 3 Coverage: 100.0% (15/15 lines, 1x executed)

Signature

importDatasetEntries( entries: Array< Omit<DatasetEntry, "id" | "createdAt"> & { id?: string; createdAt?: number } >, ): : Promise<number>

Summary

Bulk-import entries (e.g. from JSON file). Deduplicates by signals+type. Returns the number of newly added entries.

Source Code

export async function importDatasetEntries(
  entries: Array<
    Omit<DatasetEntry, "id" | "createdAt"> & { id?: string; createdAt?: number }
  >,
): Promise<number> {
  const existing = await getDatasetEntries();
  const existingKeys = new Set(existing.map((e) => `${e.signals}::${e.type}`));

  let added = 0;
  const toAdd: DatasetEntry[] = [];

  for (const raw of entries) {
    const normalized = normalise(raw.signals);
    if (!normalized) continue;
    const key = `${normalized}::${raw.type}`;
    if (existingKeys.has(key)) continue;

    toAdd.push({
      id: raw.id ?? generateId(),
      signals: normalized,
      type: raw.type,
      source: raw.source ?? "imported",
      difficulty: raw.difficulty ?? "easy",
      createdAt: raw.createdAt ?? Date.now(),
    });
    existingKeys.add(key);
    added++;
  }

  if (added > 0) {
    await chrome.storage.local.set({
      [RUNTIME_DATASET_KEY]: [...existing, ...toAdd],
    });
  }

  return added;
}

Dependencies (Outgoing)

graph LR importDatasetEntries["importDatasetEntries"] getDatasetEntries["getDatasetEntries"] normalise["normalise"] generateId["generateId"] importDatasetEntries -->|calls| getDatasetEntries importDatasetEntries -->|calls| normalise importDatasetEntries -->|calls| generateId style importDatasetEntries fill:#dbeafe,stroke:#2563eb,stroke-width:2px click importDatasetEntries "15410f4dc7e3ba80.html" click getDatasetEntries "b570d56d841d1c94.html" click normalise "e25940e3db982f50.html" click generateId "b7d96ccd023f052f.html"
TargetType
getDatasetEntries calls
normalise calls
generateId calls

Impact (Incoming)

graph LR importDatasetEntries["importDatasetEntries"] handle["handle"] handle -->|uses| importDatasetEntries style importDatasetEntries fill:#dbeafe,stroke:#2563eb,stroke-width:2px click importDatasetEntries "15410f4dc7e3ba80.html" click handle "4ec56f844308ba0c.html"
SourceType
handle uses