addIgnoredField function infrastructure exported ✓ 85.7%
Last updated: 2026-02-24T21:07:57.585Z
Metrics
LOC: 34
Complexity: 4
Params: 3
Coverage: 85.7% (12/14 lines, 2x executed)
Signature
addIgnoredField(
field: Omit<IgnoredField, "id" | "createdAt">,
): : Promise<IgnoredField | null>
Summary
Adds a field to the ignored list. If a matching entry already exists (same URL pattern + selector), returns the existing entry instead.
Tags
#@param field - The field to ignore (without ID and createdAt)#@returns The created or existing `IgnoredField`, or `null` on failure
Source Code
export async function addIgnoredField(
field: Omit<IgnoredField, "id" | "createdAt">,
): Promise<IgnoredField | null> {
let resolvedField: IgnoredField | null = null;
await updateStorageAtomically(
STORAGE_KEYS.IGNORED_FIELDS,
[] as IgnoredField[],
(fields) => {
const existing = fields.find(
(f) =>
f.urlPattern === field.urlPattern && f.selector === field.selector,
);
if (existing) {
resolvedField = existing;
return fields;
}
const nextField: IgnoredField = {
...field,
id: `${Date.now()}-${Math.random().toString(36).slice(2, 9)}`,
createdAt: Date.now(),
};
resolvedField = nextField;
return [...fields, nextField];
},
);
if (!resolvedField) {
log.warn("Failed to resolve ignored field — returning null");
return null;
}
return resolvedField;
}
Dependencies (Outgoing)
| Target | Type |
|---|---|
| updateStorageAtomically | calls |