@minisylar/shopify-app-session-storage-better-sqlite
v1.1.0
Published
A session storage implementation for Shopify apps using better-sqlite3.
Readme
shopify-app-session-storage-better-sqlite
A drop‑in SQLite session storage implementation for Shopify apps.
Designed primarily to power the shopify-app-vue-template
during local development, this package implements the same interface used by
@shopify/shopify-app-session-storage but persists sessions to a lightweight
SQLite file. It's useful when you want minimal dependencies and don't need a
remote database in the early stages of building a Shopify app.
⚠️ For production use or more complex requirements consider one of the officially supported stores such as the Drizzle or Prisma adapters; they work well with hosted databases and scale more easily. This package is mainly for local demos, prototypes, or when you deliberately choose a self‑contained file‑based store.
Usage
import { SQLiteSessionStorage } from "shopify-app-session-storage-better-sqlite";
const storage = new SQLiteSessionStorage({
databasePath: "./sessions.sqlite", // or ':memory:' for in‑memory
});
// pass `storage` to whatever initializes your Shopify API clientRefer to the upstream @shopify/shopify-app-session-storage
readme for the full API – this module implements the same methods and behaviours.
Development
# install deps
pnpm install
# run unit tests (Vitest)
pnpm test
# build the package
pnpm run buildTests live under tests/ and use the *.test.ts suffix. They exercise the
storage class against a battery of session‑management scenarios and are
already passing.
Because the implementation now exists, running
pnpm testshould give you a clean green output.
Publishing
Releases are driven by semantic-release,
triggered by GitHub Actions. Pushing a vX.Y.Z tag to main will build,
update the changelog, create a GitHub release, and publish to npm. The
workflow is defined in .github/workflows/release.yml.
Feel free to use this store locally and swap to a different adapter later as your needs change. Happy building!
