netzo / fresh-netzo

Full-stack Deno Fresh meta-framework for building business web apps like internal tools, dashboards, admin panels and automated workflows.
https://netzo.io
MIT License
52 stars 2 forks source link

[plugins] add `components` plugin to auto-import components/islands #61

Closed miguelrk closed 7 months ago

miguelrk commented 10 months ago

Now that plugins can add islands (see @denoland/fresh PR 1472), a plugin should be implemented to make working with netzo/components easier:

Usage

import { defineNetzoConfig } from 'netzo/config.ts'
import { components } from 'netzo/plugins/components/mod.ts'
export default defineNetzoConfig({
  plugins: [
    components({
      baseLocation: import.meta.url,
      paths: ["./sample_islands/IslandFromPlugin.tsx"],
    })
  ]
})

Implementation

export type ComponentsOptions = {
  paths: string[]
};

export type ComponentsState = {};

export const components = (options: Options): Plugin<NetzoState> => {
  return {
    name: "components",
    islands: {
      baseLocation: import.meta.url,
      paths: options.paths,
    },
  };
}
miguelrk commented 7 months ago

Closing as done.