initial commit

This commit is contained in:
2026-04-05 16:08:59 +03:00
commit 75ab9bec9f
1117 changed files with 789034 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
import {resolve, dirname} from "path"
import {promises as fs} from "fs"
import {buildParserFile} from "./index.js"
export function lezer(config = {}) {
let built = Object.create(null)
return {
name: "rollup-plugin-lezer",
resolveId(source, importer) {
let m = /^([^\0].*\.grammar)(\.terms)?$/.exec(source)
if (!m) return null
let id = resolve(importer ? dirname(importer) : process.cwd(), m[1])
return m[2] ? `\0${id}.terms` : id
},
load(id) {
let m = /^\0?(.*\.grammar)(\.terms)?$/.exec(id)
if (!m) return null
if (!m[2]) this.addWatchFile(id)
let base = m[1]
let build = built[base] || (built[base] = fs.readFile(base, "utf8").then(code => buildParserFile(code, {
fileName: base,
moduleStyle: "es",
exportName: config.exportName,
warn: message => this.warn(message)
})))
return build.then(result => m[2] ? result.terms : result.parser)
},
watchChange(id) {
if (built[id]) built[id] = null
}
}
}
export const rollup = lezer