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
93 lines
2.3 KiB
TypeScript
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
|
|
}
|