vite-plugin-custom-functions-metadata
Version:
Vite plugin to generate metadata for custom excel functions
45 lines (38 loc) • 1.18 kB
text/typescript
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);
},
};
}