UNPKG

@tanstack/solid-start

Version:

Modern and scalable routing for Solid applications

69 lines (68 loc) 2.32 kB
import { solidStartDefaultEntryPaths } from "./shared.js"; import { START_ENVIRONMENT_NAMES, tanStackStartVite } from "@tanstack/start-plugin-core/vite"; //#region src/plugin/vite.ts var SOLID_MANIFEST_ID = "virtual:solid-manifest"; var CLIENT_ASSETS_MANIFEST_STUB_RE = /solid-router\/(?:src|dist\/[^/]+)\/ssr\/clientAssetsManifest\.[cm]?[jt]sx?$/; function tanstackStart(options) { return [ { name: "tanstack-solid-start:config", config() { return { resolve: { dedupe: [ "solid-js", "@solidjs/web", "@solidjs/signals" ] }, ssr: { noExternal: [ "@tanstack/solid-router-ssr-query", "@tanstack/solid-query", "@tanstack/solid-query-devtools" ] } }; }, configEnvironment(environmentName, options) { return { build: environmentName === START_ENVIRONMENT_NAMES.client ? { manifest: true } : void 0, optimizeDeps: environmentName === START_ENVIRONMENT_NAMES.client || environmentName === START_ENVIRONMENT_NAMES.server && options.optimizeDeps?.noDiscovery === false ? { exclude: [ "@tanstack/solid-start", "@tanstack/solid-router", "@tanstack/start-static-server-functions" ] } : void 0 }; } }, { name: "tanstack-solid-start:client-assets-manifest", async load(id) { if (this.environment.name !== START_ENVIRONMENT_NAMES.server) return; const cleanId = id.split("?")[0]; if (!CLIENT_ASSETS_MANIFEST_STUB_RE.test(cleanId)) return; if (!await this.resolve(SOLID_MANIFEST_ID, id)) return; return `import manifest from '${SOLID_MANIFEST_ID}' const clientAssetsManifest = manifest && typeof manifest === 'object' && typeof manifest.resolve !== 'function' ? Object.fromEntries( Object.entries(manifest).map(([key, entry]) => entry && typeof entry === 'object' && entry.isEntry ? [key, { ...entry, isEntry: false }] : [key, entry], ), ) : manifest export default clientAssetsManifest `; } }, tanStackStartVite({ framework: "solid", defaultEntryPaths: solidStartDefaultEntryPaths, providerEnvironmentName: START_ENVIRONMENT_NAMES.server, ssrIsProvider: true, ssrResolverStrategy: { type: "default" } }, options) ]; } //#endregion export { tanstackStart }; //# sourceMappingURL=vite.js.map