Giper Baza — це окремий, необов'язковий проєкт, а не вбудована частина $mol. Автори описують його як децентралізовану високодоступну базу даних із безконфліктною синхронізацією в реальному часі: CRDT-сховище, що зберігається локально й реплікується між клієнтами без центрального сервера, з цифровими підписами та наскрізним шифруванням. Для створення застосунку на $mol він ніколи не потрібен; звертайтеся до нього лише тоді, коли кільком клієнтам чи пристроям потрібно ділити ті самі живі дані.Просто хочете, щоб застосунок працював без мережі? Це звичайний офлайн, і $mol забезпечує його через service worker — див. Офлайн. Giper Baza — це наступний крок: синхронізація даних між клієнтами, а не кешування ресурсів одного клієнта.Коли ви таки моделюєте дані з ним, сутності виглядають як звичайні реактивні властивості, а реплікація просто відбувається.Ця сторінка знайомить із формою API. Giper Baza — велика тема; сприймайте це як карту, а не всю територію.
Сутність — це чиста схема, набір типізованих полів. Тримайте поведінку осторонь; читання й запис робіть у своїх поданнях.1namespace ${2export class $my_taskextends$giper_baza_entity.with({3Title:$giper_baza_atom_text,4Done:$giper_baza_atom_bool,5CreatedAt:$giper_baza_atom_time,6}){}7}Кожне поле — це атом, синхронізована комірка з типізованим значенням.
Отримайте сховище, дістаньтеся до списку сутностей і реактивно пройдіться по них:1@ $mol_mem2tasks(){3return this.tasks_list().remote_list()4}56@ $mol_mem_key7task_done(id:string,next?:boolean){8const task=this.task(id)9if(next!==undefined)task.Done(null)!.val(next)10return task.Done()?.val()??false11}Читання Done()?.val() дає поточне значення; запис Done(null)!.val(next) встановлює його. Будь-яке подання, що читає атом, перемальовується, коли воно — або віддалений вузол — його змінює.