plugins
plugins copied to clipboard
🧩 logseq.App.getInfo
This is not available in 0.0.17.
- How to check the version of Logseq (DB model or file-based model, DB graph), for TypeScript
let logseqVersion: string = ""
let logseqMdModel: boolean = false
let logseqDbGraph: boolean = false
export const getLogseqVersion = () => logseqVersion
const replaceLogseqVersion = (version: string) => logseqVersion = version
export const booleanLogseqMdModel = () => logseqMdModel
const replaceLogseqMdModel = (mdModel: boolean) => logseqMdModel = mdModel
export const booleanDbGraph = () => logseqDbGraph
const replaceLogseqDbGraph = (dbGraph: boolean) => logseqDbGraph = dbGraph
const main = async () => {
const [logseqDbGraph, logseqMdModel] = await logseqModelCheck()
}
// Check if the model is Markdown-based. Returns false for DB models.
const checkLogseqVersion = async (): Promise<boolean> => {
const logseqInfo = (await logseq.App.getInfo("version")) as AppInfo | any
// The version format is like "0.11.0" or "0.11.0-alpha+nightly.20250427".
// Extract the first three numeric parts (1-digit, 2-digit, 2-digit) using a regular expression.
const version = logseqInfo.match(/(\d+)\.(\d+)\.(\d+)/)
if (version) {
replaceLogseqVersion(version[0]) // Update the version
// If the version is 0.10.* or lower, set logseqVersionMd to true.
if (version[0].match(/0\.([0-9]|10)\.\d+/)) {
return true
}
} else {
replaceLogseqVersion("0.0.0") // Update the version
}
return false
}
// Check if the graph is a DB graph. Returns true only for DB graphs.
const checkLogseqDbGraph = async (): Promise<boolean> => (logseq.App as any).checkCurrentIsDbGraph() as boolean || false
/**
* Checks the Logseq model type (Markdown or DB graph) and handles related state and UI updates.
* @returns Promise<boolean[]> - [isDbGraph, isMdModel]
*/
export const logseqModelCheck = async (): Promise<boolean[]> => {
const logseqMdModel = await checkLogseqVersion() // Check if it's an MD model
replaceLogseqMdModel(logseqMdModel)
const logseqDbGraph = logseqMdModel === true ?
false
: await checkLogseqDbGraph() // Check if it's a DB graph
replaceLogseqDbGraph(logseqDbGraph)
// Wait for 100ms
await new Promise(resolve => setTimeout(resolve, 100))
if (logseqDbGraph === true) {
// Not supported for DB graph
}
logseq.App.onCurrentGraphChanged(async () => { // Callback when the graph changes
const logseqDbGraph = await checkLogseqDbGraph()
if (logseqDbGraph === true) {
// Not supported for DB graph
} else {
}
})
return [logseqDbGraph, logseqMdModel] // Return [isDbGraph, isMdModel]
}
https://github.com/YU000jp/logseq-plugin-sample-kit-typescript/blob/main/src/logseqModelCheck.ts
Now logseq.App.getInfo() returns an object:
{
version: string
supportDb: boolean
}