Обложка канала

Заметки про React

Короткие и полезные заметки про React

Заметки про React

3 года назад
Открыть в
Evolu – хуки для local-first разработки Библиотека для создания local-first приложений. Поддерживает синхронизацию со сквозным шифрованием с использованием CRDT. Для локального хранения данных использует SQLite WASM. Особенности: - Типизированная схема данных. - Реактивные запросы. - Работа в режиме реального времени: синхронизация при восстановление сети. - Вместо SQL запросов используется типобезопасный query builder. Описание схемы и создание хуков:
import * as S from "@effect/schema";
import * as E from "evolu";

const TodoId = E.id("Todo");
type TodoId = S.Infer<typeof TodoId>;

const TodoTable = S.struct({
  id: TodoId,
  title: E.NonEmptyString1000,
  isCompleted: E.SqliteBoolean,
});
type TodoTable = S.Infer<typeof TodoTable>;

const Database = S.struct({
  todo: TodoTable,
});

const { useQuery, useMutation, useOwner, useOwnerActions, useEvoluError } =
  E.createHooks(Database);
Выполнение запросов:
const { rows } = useQuery((db) =>
  db
    .selectFrom("todo")
    .select(["id", "title"])
    .orderBy("updatedAt"),
  // (row) => row
  ({ title, ...rest }) => title && { title, ...rest }
);
https://github.com/evoluhq/evolu
GitHub - evoluhq/evolu: React Hooks library for local-first apps with end-to-end encrypted backup and sync using SQLite and CRDT

React Hooks library for local-first apps with end-to-end encrypted backup and sync using SQLite and CRDT - GitHub - evoluhq/evolu: React Hooks library for local-first apps with end-to-end encrypted...

GitHub