domco
Version:
Minimal Full-Stack JavaScript
42 lines (41 loc) • 1.22 kB
JavaScript
import { adapterPlugin } from "./adapter/index.js";
import { configPlugin } from "./config/index.js";
import { configureServerPlugin } from "./configure-server/index.js";
import { lifecyclePlugin } from "./lifecycle/index.js";
import { pagePlugin } from "./page/index.js";
import { scriptPlugin } from "./script/index.js";
import { ssrReloadPlugin } from "./ssr-reload/index.js";
/**
* Creates domco Vite plugin.
*
* Add to your `plugins` array within your `vite.config` to start using domco.
*
* @param domcoConfig domco config object
* @returns domco Vite plugin
*
* @example
*
* ```ts
* // vite.config.ts
* import { defineConfig } from "vite";
* import { domco } from "domco";
*
* export default defineConfig({
* plugins: [domco()],
* });
* ```
*/
export const domco = async (domcoConfig = {}) => {
if (domcoConfig.adapter instanceof Promise) {
domcoConfig.adapter = await domcoConfig.adapter;
}
return Promise.all([
configPlugin(domcoConfig),
configureServerPlugin(domcoConfig.adapter),
ssrReloadPlugin(),
pagePlugin(),
scriptPlugin(),
lifecyclePlugin(domcoConfig.adapter),
adapterPlugin(domcoConfig.adapter),
]);
};