Skip to content

@vltpkg/query

query

The vlt query syntax engine.

Usage · Examples

Usage

import { Query } from '@vltpkg/query'
const query = new Query({ nodes, specOptions, securityArchive })
const res = await query.search(':root > *')

Examples

Querying against an ideal/virtual graph

import { ideal } from '@vltpkg/graph'
import { Query } from '@vltpkg/query'
import { PackageJson } from '@vltpkg/package-json'
const signal = new AbortController().signal
const projectRoot = process.cwd()
const packageJson = new PackageJson()
const graph = await ideal.build({ projectRoot, packageJson })
const query = new Query({ graph })
const res = await query.search(':root > *', { signal })

Querying against a local node_modules folder

import { actual } from '@vltpkg/graph'
import { Query } from '@vltpkg/query'
import { PackageJson } from '@vltpkg/package-json'
import { PathScurry } from 'path-scurry'
const signal = new AbortController().signal
const projectRoot = process.cwd()
const scurry = new PathScurry(projectRoot)
const packageJson = new PackageJson()
const graph = await actual.load({ projectRoot, packageJson, scurry })
const query = new Query({ graph })
const res = await query.search(':root > *', { signal })

Querying against a lockfile

import { lockfile } from '@vltpkg/graph'
import { Query } from '@vltpkg/query'
const signal = new AbortController().signal
const projectRoot = process.cwd()
const graph = await lockfile.load({
mainManifest: 'package.json',
projectRoot,
})
const query = new Query({ graph })
const res = await query.search(':root > *', { signal })