A concise, progressive README: start simple, then add more detail. Use the sections below as your guide from quick setup to advanced development.
- Purpose: unified data + UI toolkit for full-stack apps.
- Core pieces:
idae-api,idae-db,idae-idbql,idae-query,idae-socket, UI libs.
- Install dependencies:
pnpm install- Build all packages:
pnpm run package- Run API package tests (example):
pnpm --filter idae-api test- Create a client and call a collection (example):
import { IdaeApiClient, IdaeApiClientConfig } from '@medyll/idae-api';
IdaeApiClientConfig.setOptions({ host: 'localhost', port: 3000, method: 'http', defaultDb: 'app' });
const client = new IdaeApiClient();
const users = client.collection('users');
await users.find({ query: { active: true } });- Common client collection methods (align with
idae-dbinterface):find(params)— query recordsfindById(id)— read single by idcreate(body)— insertupdate(id, body)— update by iddeleteById(id)— remove by idupdateWhere(params, update)— update by filter (client may issue multiple requests)deleteWhere(params)— delete by filter (client may issue multiple requests)
- Sync:
idae-socketrelays backend changes to frontends. - Local first:
idae-idbqlprovides a Mongo-like local query layer backed by IndexedDB andidae-queryfor in-memory operations. - Adapters:
idae-dbdefines adapters (Mongo, MySQL, SQLite, etc.) and a common adapter interface.
- Run package tests selectively to speed iterations. Examples:
pnpm --filter idae-api test:unit
pnpm --filter idae-idbql test:unit- Type checks / lint / format:
pnpm run lint
pnpm run format
pnpm run check- Follow repo coding style (Prettier + ESLint). Use
pnpm --filter <pkg> run buildfor package-level builds. - Add tests for new behavior. Run
pnpm run checkbefore pushing.
- API server:
packages/idae-api/src - DB adapters:
packages/idae-db/src - IndexedDB + local queries:
packages/idae-idbql/src - Query engine:
packages/idae-query/src
If you want a longer README section (examples, diagrams, or reference tables), tell me which parts to expand and I will add them in order of complexity.