vite-plugin-symfony
Version: 
A Vite plugin to integrate easily Vite in your Symfony application
24 lines (19 loc) • 901 B
text/typescript
import { ImportedModule, ImportedModules } from "../types";
import { SvelteModule } from "./types";
let svelteImportedModules: ImportedModules<SvelteModule> = {};
export function registerSvelteControllerComponents(
  modules: ImportedModules<SvelteModule>,
  controllersDir = "./svelte/controllers",
) {
  svelteImportedModules = { ...svelteImportedModules, ...modules };
  window.resolveSvelteComponent = (name: string): ImportedModule<SvelteModule> => {
    const svelteModule = svelteImportedModules[`${controllersDir}/${name}.svelte`];
    if (typeof svelteModule === "undefined") {
      const possibleValues = Object.keys(svelteImportedModules).map((key) =>
        key.replace(`${controllersDir}/`, "").replace(".svelte", ""),
      );
      throw new Error(`Svelte controller "${name}" does not exist. Possible values: ${possibleValues.join(", ")}`);
    }
    return svelteModule;
  };
}