JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 22
  • Score
    100M100P100Q79600F
  • License MIT

Package Exports

  • @geenius/adapters
  • @geenius/adapters/convex
  • @geenius/adapters/convex/api
  • @geenius/adapters/react
  • @geenius/adapters/react-css
  • @geenius/adapters/shared
  • @geenius/adapters/shared/react
  • @geenius/adapters/shared/solidjs
  • @geenius/adapters/solidjs
  • @geenius/adapters/solidjs-css

Readme

@geenius/adapters

Adapter contracts, local-first prototype adapters, framework bindings, and Convex schema helpers for the Geenius ecosystem.

Install

pnpm add @geenius/adapters

Add the peers you actually use:

  • react and react-dom for @geenius/adapters/react or @geenius/adapters/react-css
  • solid-js for @geenius/adapters/solidjs or @geenius/adapters/solidjs-css
  • convex for @geenius/adapters/convex

Available Exports

import { configureAdapters, createLocalStorageDbAdapter } from '@geenius/adapters'
import { useAdapters } from '@geenius/adapters/shared/react'
import { createAdapters } from '@geenius/adapters/shared/solidjs'
import { AdapterProvider, useDb } from '@geenius/adapters/react'
import { AdapterProvider as CssProvider } from '@geenius/adapters/react-css'
import { AdapterProvider as SolidProvider } from '@geenius/adapters/solidjs'
import { AdapterProvider as SolidCssProvider } from '@geenius/adapters/solidjs-css'
import { createConvexAdapter, schema } from '@geenius/adapters/convex'

What This Package Owns

@geenius/adapters is the contract layer for six infrastructure domains:

  • db
  • auth
  • payments
  • ai
  • storage
  • admin

It ships:

  • shared TypeScript interfaces and typed error classes
  • a provider registry and tier-gating helpers
  • localStorage-backed prototype adapters for rapid setup
  • React hooks/providers and SolidJS primitives/providers
  • Tailwind and vanilla CSS UI variants
  • Convex schema and mutation/query helpers for adapter registry storage

Production provider implementations live in the domain packages such as @geenius/db, @geenius/auth, @geenius/payments, and @geenius/ai.

Basic Usage

import {
  configureAdapters,
  createLocalStorageAuthAdapter,
  createLocalStorageDbAdapter,
} from '@geenius/adapters'

configureAdapters({
  db: { provider: 'localStorage' },
  auth: { provider: 'localStorage' },
})

export const adapters = {
  db: createLocalStorageDbAdapter(),
  auth: createLocalStorageAuthAdapter(),
}
import { AdapterProvider, useDb } from '@geenius/adapters/react'
import { adapters } from './adapters'

function Dashboard() {
  const db = useDb()

  void db.list('users')

  return null
}

export function App() {
  return (
    <AdapterProvider adapters={adapters} healthCheck>
      <Dashboard />
    </AdapterProvider>
  )
}

Local Prototype Adapters

The shared entrypoint exposes prototype factories for every supported domain:

import {
  createLocalStorageAdminAdapter,
  createLocalStorageAiAdapter,
  createLocalStorageAuthAdapter,
  createLocalStorageDbAdapter,
  createLocalStorageFileAdapter,
  createLocalStoragePaymentsAdapter,
  createNoopPaymentsAdapter,
} from '@geenius/adapters'

These factories are intended for local development, Storybook review, and Pronto-tier bootstrapping. Swapping to a production provider should not change the consuming component API.

Errors

Adapter failures are surfaced as typed error classes:

  • AdapterError
  • DbError
  • AuthError
  • AiError
  • StorageError
  • PaymentsError
  • AdminError
  • AdapterConfigurationError
  • AdapterResolutionError
  • AdapterContextError
  • AdapterInvariantError

Consumers should catch these exported classes instead of vendor-specific exceptions.

Storybook Review Apps

The repository includes React and SolidJS review apps that exercise both the Tailwind and vanilla CSS variants:

pnpm --filter ./apps/storybook-react build
pnpm --filter ./apps/storybook-solidjs build

License

MIT