vuepress-plugin-netlify-functions
Version:
The Plugin for VuePress 2, Support Netlify Functions
28 lines (27 loc) • 1.18 kB
JavaScript
import { path } from 'vuepress/utils';
import * as cpx2 from 'cpx2';
import { getOptions, netlifyFunctionsPlugin } from './plugin.js';
export function useNetlifyFunctionsPlugin(app, options) {
if (typeof options === 'undefined')
throw new Error('useNetlifyFunctionsPlugin [options] argument not found.');
if (typeof options.directory !== 'string' || !options.directory) {
throw new Error(`useNetlifyFunctionsPlugin [options.directory] must be a string\n exp: path.join(__dirname, 'functions')`);
}
const plugins = app.pluginApi.plugins;
if (!plugins.some((plugin) => plugin.name === 'vuepress-plugin-netlify-functions')) {
app.use(netlifyFunctionsPlugin());
}
const { proxyPrefix, directory } = getOptions();
const source = path.join(options.directory, '**/*.js');
function preparePluginFunctions() {
if (!app.env.isBuild) {
cpx2.watch(source, directory.temp, {
ignore: ['!**/*.d.js'],
});
}
}
function generatePluginFunctions() {
cpx2.copy(source, directory.dest);
}
return { proxyPrefix, preparePluginFunctions, generatePluginFunctions };
}