Giper Baza é um projeto separado e opcional — não faz parte integrante do $mol. Seus autores o descrevem como um banco de dados descentralizado e de alta disponibilidade com sincronização em tempo real sem conflitos: um armazenamento CRDT que persiste localmente e replica entre clientes sem servidor central, com assinaturas digitais e criptografia de ponta a ponta. Você nunca precisa dele para construir um app $mol; recorra a ele apenas quando vários clientes ou dispositivos precisarem compartilhar os mesmos dados ao vivo.Só quer que seu app continue funcionando sem rede? Isso é offline puro, e o $mol cuida disso com um service worker — veja Offline. Giper Baza vai um passo além: sincronizar dados entre clientes, não armazenar em cache os recursos de um único cliente.Quando você de fato modela dados com ele, as entidades parecem propriedades reativas comuns, e a replicação simplesmente acontece.Esta página introduz o formato da API. Giper Baza é um tópico extenso — trate isto como um mapa, não o território completo.
Uma entidade é um esquema puro — um conjunto de campos tipados. Mantenha o comportamento de fora; faça a leitura e a escrita nas suas vistas.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}Cada campo é um átomo — uma célula sincronizada com um valor tipado.
Obtenha o armazenamento, alcance uma lista de entidades e percorra-as de forma reativa: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}Ler Done()?.val() dá o valor atual; escrever Done(null)!.val(next) o define. Qualquer vista que lê o átomo renderiza de novo quando ela — ou um par remoto — o altera.