v1.6.1 · zero dependencies

Build the query.
Not the plumbing.

@qubeejs/core is a framework-agnostic query builder and paginator with pluggable drivers for 20 backend querying standards. It performs no I/O — you fetch however you like and hand the body back.

Get startedAPI reference$ npm i @qubeejs/core

Using React? Check the React adapter.

qubee

Agnostic by construction

No Angular, no React, no RxJS, no Signals. Plain TypeScript that returns a URI and parses a body.

2.7 kB gzipped

Import one driver and the other nineteen tree-shake out. Zero runtime dependencies, ever.

Fluent, chainable, typed

Filters, operators, sorting, field selection, includes, embeds and pagination in one chain.

Bring your own reactivity

QubeeStore speaks the useSyncExternalStore contract — each adapter supplies its own.

One chain in, a URI out

Pick a driver, describe the query, call generateUri(). Every driver speaks its own dialect of filters, sorts and pagination — the builder API stays identical.

importmingzip
STRAPI_DRIVER7.1 kB2.7 kB
DRIVERS (all 20)57 kB10.9 kB
articles.ts
import { createQubee, STRAPI_DRIVER, SortEnum } from '@qubeejs/core';

const { builder } = createQubee({ driver: STRAPI_DRIVER });

const uri = builder
  .setResource('articles')
  .addFilter('status', 'published')
  .addSort('createdAt', SortEnum.DESC)
  .setLimit(25)
  .generateUri();

// → /articles?filters[status][$eq]=published
//   &sort[0]=createdAt:desc
//   &pagination[page]=1&pagination[pageSize]=25

Twenty backends, one builder

Request + response strategies, capability-checked.