@siteping/adapter-memory
v0.4.4
Published
In-memory adapter for Siteping — zero dependencies, works everywhere
Maintainers
Readme
@siteping/adapter-memory
In-memory adapter for Siteping — zero dependencies, works everywhere.
Part of the @siteping monorepo.
Install
npm install @siteping/adapter-memoryUsage
With the HTTP handler (server-side)
import { createSitepingHandler } from '@siteping/adapter-prisma'
import { MemoryStore } from '@siteping/adapter-memory'
const store = new MemoryStore()
export const { GET, POST, PATCH, DELETE, OPTIONS } = createSitepingHandler({ store })With the widget directly (client-side, no server)
import { initSiteping } from '@siteping/widget'
import { MemoryStore } from '@siteping/adapter-memory'
const store = new MemoryStore()
initSiteping({
store,
projectName: 'my-project',
})API
new MemoryStore()
Creates a new in-memory store. Data lives in a plain array — lost on process restart.
store.clear()
Remove all data and reset the ID counter.
Use Cases
- Testing — fast, isolated store for unit and integration tests
- Demos — lightweight store that needs no database or localStorage
- Prototyping — get started without any infrastructure
- Reference implementation — simplest possible adapter for contributors
Creating Your Own Adapter
MemoryStore is the simplest reference implementation of the SitepingStore interface. To create a new adapter (e.g. Drizzle, Supabase):
- Implement the
SitepingStoreinterface (6 methods) - Throw
StoreNotFoundErroron missing records inupdateFeedback/deleteFeedback - Validate with the conformance test suite:
import { testSitepingStore } from '@siteping/core/testing'
import { MyStore } from '../src/index.js'
testSitepingStore(() => new MyStore())Related Packages
| Package | Description |
|---------|-------------|
| @siteping/widget | Browser feedback widget |
| @siteping/adapter-prisma | Server-side Prisma adapter |
| @siteping/adapter-localstorage | Client-side localStorage adapter |
| @siteping/cli | CLI for project setup |
