Files
fresh/tests/fixture_plugin/utils/js-inject-plugin.ts
Luca Casonato fd4e2bbe17 feat: add initial plugin support (#512)
This commit adds initial support for fresh "plugins". These are bundles
of functionality that can be added to a fresh plugin through a simple
addition in the `main.ts` file.

Right now plugins are only able to hook into the render steps. This
means that they can inject styling and scripts. They can not yet hook
into routing.

Things that I think should be possible now:
- styling integrations for twind, unocss, and probably a few other tools

Things that are not possible yet:
- google analytics middleware
- database connectors
- CMS connectors

The routing additions to plugins can be added in a follow-up though.
2022-08-09 21:27:58 +02:00

16 lines
363 B
TypeScript

import { Plugin } from "$fresh/server.ts";
export default {
name: "js-inject",
entrypoints: {
"main": new URL("./js-inject-main.ts", import.meta.url).href,
},
render(ctx) {
const res = ctx.render();
if (res.requiresHydration) {
return { scripts: [{ entrypoint: "main", state: "JS injected!" }] };
}
return {};
},
} as Plugin;