OmniDataEditor API
    Preparing search index...

    OmniDataEditor API

    OmniDataEditor

    MIT license npm version jsDelivr monthly hits

    A framework independent TypeScript entity editing engine with immutable drafts, revision scoped validation, structured persistence and explicit concurrent change handling. Native dialog and inline presentations connect the same runtime to standalone interfaces, DataTables and Tabulator.

    OmniDataEditor provides editing behavior around existing interfaces and leaves sorting, filtering, pagination and server storage to the host application. The packages use synchronized 0.x versions; public interfaces may change between minor releases.

    Read the documentation for guides, package descriptions and integration requirements, or try the live playground. The documentation is also available online.

    Install the common entry point and the default theme as direct dependencies:

    pnpm add @omnidataeditor/editor @omnidataeditor/theme-default
    
    import { createEditor, textField, dialog } from '@omnidataeditor/editor';
    import '@omnidataeditor/theme-default/styles.css';

    type Person = { id: number; name: string };
    const fields = [textField<Person>('name', { label: 'Name', required: true })];
    const editor = createEditor<Person>({
    fields,
    identity: (entity) => entity.id,
    persistence: {
    async update({ candidate }) {
    return { ok: true, entity: candidate };
    },
    },
    });
    editor.use(dialog({ fields, title: 'Edit person' }));
    editor.edit({ id: 1, name: 'Ada' });

    Applications supply persistence and server concurrency preconditions. Canonical success commits before host reflection. Unknown results after dispatch require reconciliation. Batch editing returns per entity outcomes and preserves successful canonical data during selective retries.

    See the package overview to choose individual packages, and Contributing for local setup and verification commands.

    Licensed under MIT.