UNPKG

vite-plugin-custom-functions-metadata

Version:

Vite plugin to generate metadata for custom excel functions

45 lines (38 loc) 1.18 kB
import { Plugin, ResolvedConfig } from "vite"; import { generateCustomFunctionsMetadata } from "custom-functions-metadata"; import { writeFileSync } from "fs"; interface Configuration { inputFile: string; outputFile: string; } export default function customFunctionsMetadata(config: Configuration): Plugin { let viteConfig: ResolvedConfig; const { inputFile, outputFile } = config; const generateMetadata = async (input: string, output: string) => { const results = await generateCustomFunctionsMetadata(input); if (results.errors.length === 0) { try { writeFileSync(output, results.metadataJson); } catch { throw new Error(`Cannot write metadata to file: ${output}`); } } }; return { name: "custom-function-metadata", configResolved(config) { viteConfig = config; }, async buildStart() { generateMetadata(inputFile, outputFile); }, configureServer(server) { const listener = async (filePath: string) => { if (filePath === inputFile) { generateMetadata(inputFile, outputFile); } }; server.watcher.on("change", listener); }, }; }