@gscdump/engine-sqlite
v0.8.2
Published
SQLite / D1 engine adapter for @gscdump/analysis — typed analytics over sqlite-proxy executors (Cloudflare D1, libsql).
Readme
@gscdump/engine-sqlite
SQLite / D1 engine adapter for
@gscdump/analysis— typed analytics over sqlite-proxy executors (Cloudflare D1, libsql).
Wraps any sqlite-proxy executor ((sql, params) => rows) as a SqlQuerySource bound to a tenant siteId. Driver glue only; the typed builder + raw-SQL plumbing lives in @gscdump/engine/resolver.
Bundle: 5.3 kB / 1.4 kB gzipped.
Install
npm install @gscdump/engine-sqlite @gscdump/engine drizzle-ormUsage
import {
aggClicks,
aggCtr,
aggImpressions,
aggPosition,
compileSqlite,
createSqliteInsightRunner,
gsc_keywords,
sql,
} from '@gscdump/engine-sqlite'
const queryExpr = sql`
SELECT ${gsc_keywords.query} as keyword,
SUM(${gsc_keywords.clicks}) as clicks,
${aggCtr(gsc_keywords)} as ctr
FROM ${gsc_keywords}
WHERE ${gsc_keywords.site_id} = ${siteId}
GROUP BY ${gsc_keywords.query}
`
const { sql: compiledSql, params } = compileSqlite(queryExpr)
const rows = await executor(compiledSql, params) // queryUserD1, libsql, ...Engine source for analyzer dispatch
import { createEngine } from '@gscdump/engine-sqlite'
const source = createEngine({
executor, // (sql, params, mode) => { rows }
siteId,
regex: true, // hosts that expose REGEXP (D1, libsql, sqlite3+regexp)
})Always import sql from @gscdump/engine-sqlite — not drizzle-orm directly — so consumers bind to the package's drizzle-orm instance and avoid cross-install SQL<unknown> mismatches.
Exports
createEngine({ executor, siteId, regex? })— builds aSqlQuerySource.createSqliteInsightRunner({ executor })— sqlite-proxy drizzle adapter.compileSqlite(sql)— compile to{ sql, params }for any HTTP executor.aggClicks/aggImpressions/aggCtr/aggPosition— aggregate helpers.scopeFor(table, { siteId, window })/mergeScope()— tenant scope predicates.gsc_pages/gsc_keywords/gsc_page_keywords/gsc_countries/gsc_devices/schema— drizzle schema mirroringgscdump/analyticsSCHEMAS.sqliteResolverAdapter/createSqliteResolverAdapter/probeSqliteRegex— dialect adapter for the resolver kit.resolveWindow(re-exported from@gscdump/engine/period).
Related
@gscdump/engine— Storage contracts + dialect-neutral resolver.@gscdump/analysis— Analyzer registry + dispatcher.@gscdump/engine-duckdb-node— Node DuckDB counterpart.@gscdump/engine-duckdb-wasm— Browser DuckDB-WASM counterpart.
