UNPKG

unified-query

Version:

Composable search input with autocompletion and a rich query-language parser for the Unified Data System

53 lines (52 loc) 2.38 kB
/* -------------------------------------------------------------------------- */ /* Individual analysers */ /* -------------------------------------------------------------------------- */ import { analyzeArchived } from './archived.js'; import { analyzeChanged } from './changed.js'; import { analyzeDone } from './done.js'; import { analyzeContent } from './content.js'; import { analyzeCreated } from './created.js'; import { analyzeDate } from './date.js'; import { analyzeDeleted } from './deleted.js'; import { analyzeId } from './id.js'; import { analyzeIn } from './in.js'; import { analyzeName } from './name.js'; import { analyzeTime } from './time.js'; import { analyzeUpdated } from './updated.js'; import { analyzeSort } from './sort.js'; import { analyzeDraft } from './draft.js'; import { analyzeTodo } from './todo.js'; import { KINDS, analyzeKind } from './kind.js'; import { createUtilAnalyzer } from './utilAnalyzer.js'; import { analyzeBy } from './by.js'; /* -------------------------------------------------------------------------- */ /* Central dispatch table: keyword → analyser */ /* -------------------------------------------------------------------------- */ export const registry = { /* identity / meta ------------------------------------------------------- */ id: analyzeId, name: analyzeName, content: analyzeContent, /* relation -------------------------------------------------------------- */ in: analyzeIn, by: analyzeBy, /* timestamps ------------------------------------------------------------ */ created: analyzeCreated, updated: analyzeUpdated, changed: analyzeChanged, deleted: analyzeDeleted, archived: analyzeArchived, date: analyzeDate, // TODO: depracate — no longer in the spec time: analyzeTime, /* workflow -------------------------------------------------------------- */ done: analyzeDone, sort: analyzeSort, draft: analyzeDraft, todo: analyzeTodo, kind: analyzeKind, // TODO: add @limit analyzer /* utilities -------------------------------------------------------------- */ today: createUtilAnalyzer('today'), yesterday: createUtilAnalyzer('yesterday'), ...Object.fromEntries(KINDS.map(kind => [kind, createUtilAnalyzer(kind)])), };