Files
upstream-mirror a774ac673a
Some checks failed
Deploy analytics worker / Deploy analytics worker to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
i18n upload strings / Upload latest strings (push) Failing after 1s
Deploy bemo / Deploy bemo to ${{ (github.ref == 'refs/heads/bemo-production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
Deploy grafana resources / ${{ github.event_name == 'push' && 'Deploy grafana resources' || 'Validate grafana resources (dry run)' }} (push) Failing after 0s
End to end tests (dotcom) / Check for relevant changes (push) Failing after 0s
End to end tests (examples) / Check for relevant changes (push) Failing after 0s
End to end tests (mermaid readability) / Check for relevant changes (push) Failing after 1s
End to end tests (perf) / Check for relevant changes (push) Failing after 0s
Publish editor extensions / Publish editor extensions (push) Failing after 1s
Publish SDK packages / Remove the publish-packages label (push) Has been skipped
Checks / Tests & checks (push) Has been cancelled
Checks / Build all projects (push) Has been cancelled
Deploy templates / Deploy templates (push) Has been cancelled
End to end tests (dotcom) / End to end tests (dotcom) (push) Has been cancelled
End to end tests (mermaid readability) / End to end tests (mermaid readability) (push) Has been cancelled
End to end tests (perf) / End to end tests (perf) (push) Has been cancelled
Deploy .com / Deploy dotcom to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Has been cancelled
End to end tests (examples) / End to end tests (examples) (push) Has been cancelled
Publish SDK packages / Publish SDK packages (push) Has been cancelled
Publish SDK packages / Tell user released version (push) Has been cancelled
Publish SDK packages / Publishes code templates to separate repositories (push) Has been cancelled
Publish SDK packages / Deploys the template demos with the new SDK version (push) Has been cancelled
snapshot of https://github.com/tldraw/tldraw.git (main, 2026-09-23; blobs > 131072B omitted)
2026-09-23 16:12:52 +05:00

93 lines
2.3 KiB
TypeScript

import path from 'path'
import { open } from 'sqlite'
import sqlite3 from 'sqlite3'
export async function connect(opts: { reset?: boolean; mode: 'readonly' | 'readwrite' }) {
const db = await open({
filename: path.join(process.cwd(), 'content.db'),
driver: sqlite3.Database,
mode:
opts.mode === 'readonly'
? sqlite3.OPEN_READONLY
: sqlite3.OPEN_CREATE | sqlite3.OPEN_READWRITE,
})
if (opts.reset) {
// Create the sections table if it does not exist
await db.run(`DROP TABLE IF EXISTS sections`)
await db.run(`CREATE TABLE sections (
id TEXT PRIMARY KEY,
idx INTEGER NOT NULL,
title TEXT NOT NULL,
path TEXT NOT NULL,
description TEXT,
sidebar_behavior TEXT
)`)
// Create the categories table if it does not exist
await db.run(`DROP TABLE IF EXISTS categories`)
await db.run(`CREATE TABLE IF NOT EXISTS categories (
id TEXT PRIMARY KEY,
title TEXT NOT NULL,
description TEXT,
sectionId TEXT NOT NULL,
sectionIndex INTEGER NOT NULL,
path TEXT,
FOREIGN KEY (id) REFERENCES sections(id)
)`)
// Create the articles table if it does not exist
// drop the table if it exists
await db.run(`DROP TABLE IF EXISTS articles`)
await db.run(`CREATE TABLE IF NOT EXISTS articles (
id TEXT PRIMARY KEY,
groupIndex INTEGER NOT NULL,
categoryIndex INTEGER NOT NULL,
priority INTEGER,
sectionIndex INTEGER NOT NULL,
groupId TEXT,
categoryId TEXT NOT NULL,
sectionId TEXT NOT NULL,
authorId TEXT NOT NULL,
title TEXT NOT NULL,
sidebarTitle TEXT,
description TEXT,
hero TEXT,
thumbnail TEXT,
socialImage TEXT,
status TEXT NOT NULL,
date TEXT,
sourceUrl TEXT,
componentCode TEXT,
componentCodeFilename TEXT,
componentCodeFiles TEXT,
keywords TEXT,
apiTags TEXT,
content TEXT NOT NULL,
path TEXT,
githubLink TEXT,
embed TEXT,
FOREIGN KEY (sectionId) REFERENCES sections(id),
FOREIGN KEY (categoryId) REFERENCES categories(id)
)`)
await db.run(`DROP TABLE IF EXISTS headings`)
await db.run(`CREATE TABLE IF NOT EXISTS headings (
id INTEGER PRIMARY KEY AUTOINCREMENT,
idx INTEGER NOT NULL,
articleId TEXT NOT NULL,
level INTEGER NOT NULL,
title TEXT NOT NULL,
slug TEXT NOT NULL,
path TEXT NOT NULL,
FOREIGN KEY (articleId) REFERENCES articles(id)
)`)
}
return db
}