UNPKG

penframe

Version:

A lightweight DSL-based wireframe and UI structure visualization tool.

60 lines (53 loc) 1.5 kB
const parser = require('./dist/parser'); const astToSvg = require('./src/svg/astToSvg'); const { astToPng, astToPngFile } = require('./src/svg/astToPng'); /** * Parse PenFrame DSL to AST * @param {string} dslCode - PenFrame DSL code * @returns {Object} AST object */ function parse(dslCode) { return parser.parse(dslCode); } /** * Convert PenFrame DSL directly to SVG * @param {string} dslCode - PenFrame DSL code * @returns {string} SVG content */ function penframeToSvg(dslCode) { const ast = parse(dslCode); return astToSvg(ast); } /** * Convert PenFrame DSL directly to PNG buffer * @param {string} dslCode - PenFrame DSL code * @param {Object} options - PNG conversion options * @returns {Promise<Buffer>} PNG buffer */ async function penframeToPng(dslCode, options = {}) { const ast = parse(dslCode); return await astToPng(ast, options); } /** * Convert PenFrame DSL directly to PNG file * @param {string} dslCode - PenFrame DSL code * @param {string} outputPath - Output PNG file path * @param {Object} options - PNG conversion options */ async function penframeToPngFile(dslCode, outputPath, options = {}) { const ast = parse(dslCode); return await astToPngFile(ast, outputPath, options); } module.exports = { // Main API functions parse, penframeToSvg, penframeToPng, penframeToPngFile, // Lower-level functions astToSvg, astToPng, astToPngFile, // Parser parser };