New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

lex-gql-sqlite

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

lex-gql-sqlite

SQLite adapter for lex-gql

latest
npmnpm
Version
0.2.1
Version published
Maintainers
1
Created
Source

lex-gql-sqlite

SQLite adapter for lex-gql.

Installation

npm install lex-gql-sqlite lex-gql better-sqlite3

Usage

import Database from 'better-sqlite3';
import { createAdapter, parseLexicon } from 'lex-gql';
import { createSqliteAdapter, createWriter, setupSchema } from 'lex-gql-sqlite';

const db = new Database('./data.db');
setupSchema(db);

const query = createSqliteAdapter(db);
const adapter = createAdapter(lexicons, { query });

const result = await adapter.execute(`
  query {
    appBskyFeedPost(first: 10) {
      edges { node { text } }
    }
  }
`);

API

setupSchema(db)

Creates the required database tables and indexes.

createSqliteAdapter(db)

Returns a query function compatible with lex-gql's adapter interface. Supports cross-collection URI resolution (collection: '*') for forward join batching.

buildWhere(where)

Builds SQL WHERE clause from lex-gql where conditions. Supports:

  • All comparison operators: eq, gt, gte, lt, lte
  • Array operators: in
  • Text operators: contains
  • Logical operators: nested AND/OR

buildOrderBy(sort)

Builds SQL ORDER BY clause from lex-gql sort conditions.

createWriter(db)

Creates a writer with prepared statements for efficient writes.

const writer = createWriter(db);

// Insert or replace a record
writer.insertRecord({
  uri: 'at://did:plc:alice/app.bsky.feed.post/1',
  did: 'did:plc:alice',
  collection: 'app.bsky.feed.post',
  rkey: '1',
  cid: 'bafycid123',          // optional
  record: { text: 'Hello!' }, // object or JSON string
  indexedAt: '2024-01-15T12:00:00Z', // optional, defaults to now
});

// Delete a record
writer.deleteRecord('at://did:plc:alice/app.bsky.feed.post/1');

// Insert or update an actor
writer.upsertActor('did:plc:alice', 'alice.bsky.social');

Schema

The adapter expects this schema (created by setupSchema):

CREATE TABLE records (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  uri TEXT UNIQUE NOT NULL,
  did TEXT NOT NULL,
  collection TEXT NOT NULL,
  rkey TEXT NOT NULL,
  cid TEXT,
  record TEXT NOT NULL,
  indexed_at TEXT NOT NULL
);

CREATE TABLE actors (
  did TEXT PRIMARY KEY,
  handle TEXT NOT NULL
);

License

MIT

Keywords

graphql

FAQs

Package last updated on 19 Jan 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts