UNPKG

vite-plugin-react-server

Version:
92 lines (89 loc) 11.1 kB
/** * vite-plugin-react-server * Copyright (c) Nico Brinkkemper * MIT License */ import { createLogger } from 'vite'; import { resolveOptions } from '../config/resolveOptions.js'; import { resolveUserConfig } from '../config/resolveUserConfig.js'; import { resolveAutoDiscover } from '../config/autoDiscover/resolveAutoDiscover.js'; import { handleError } from '../error/handleError.js'; import { assertNonReactServer } from '../config/getCondition.js'; assertNonReactServer(); const reactClientPlugin = function _reactClientPlugin(options) { let userConfig; let configEnv; let autoDiscoveredFiles; let resolvedConfig = null; let logger; let implicitSsr = void 0; const resolvedOptions = resolveOptions(options); if (resolvedOptions.type === "error") { if (resolvedOptions.error != null) { throw resolvedOptions.error; } throw new Error("Failed to resolve options"); } const currentUserOptions = resolvedOptions.userOptions; return { name: "vite:plugin-react-server/client", enforce: "post", async config(config, viteConfigEnv) { configEnv = viteConfigEnv; if (configEnv.command !== "build") { return; } if (typeof config?.build?.ssr === "boolean" || typeof config?.build?.ssr === "string") { implicitSsr = Boolean(config?.build?.ssr); } else if (implicitSsr === void 0) { implicitSsr = configEnv.isSsrBuild; } const logger2 = config.customLogger || createLogger(); const autoDiscoverResult = await resolveAutoDiscover({ config, configEnv, userOptions: currentUserOptions, logger: logger2 }); if (autoDiscoverResult.type === "error") { const panicError = handleError({ error: autoDiscoverResult.error, logger: logger2, panicThreshold: currentUserOptions.panicThreshold}); if (panicError != null) { throw panicError; } return; } autoDiscoveredFiles = autoDiscoverResult.autoDiscoveredFiles; if (!autoDiscoveredFiles) { throw new Error("Failed to find autoDiscoveredFiles"); } const resolvedConfig2 = resolveUserConfig({ condition: "react-client", config, configEnv, userOptions: currentUserOptions, autoDiscoveredFiles, ssr: implicitSsr }); if (resolvedConfig2.type === "error") { if (resolvedConfig2.error != null) { throw resolvedConfig2.error; } throw new Error("Failed to resolve config"); } userConfig = resolvedConfig2.userConfig; return userConfig; }, configResolved(viteResolvedConfig) { if (currentUserOptions.verbose) { logger?.info("configResolved"); } resolvedConfig = viteResolvedConfig; logger = resolvedConfig.customLogger || resolvedConfig.logger; } }; }; export { reactClientPlugin }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmNsaWVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGx1Z2luL3JlYWN0LWNsaWVudC9wbHVnaW4uY2xpZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNyZWF0ZUxvZ2dlcixcbiAgdHlwZSBDb25maWdFbnYsXG4gIHR5cGUgUmVzb2x2ZWRDb25maWcsXG4gIHR5cGUgTG9nZ2VyLFxufSBmcm9tIFwidml0ZVwiO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvRGlzY292ZXJlZEZpbGVzLFxuICBSZXNvbHZlZFVzZXJDb25maWcsXG4gIFZpdGVQbHVnaW5Gbixcbn0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyByZXNvbHZlT3B0aW9ucyB9IGZyb20gXCIuLi9jb25maWcvcmVzb2x2ZU9wdGlvbnMuanNcIjtcbmltcG9ydCB7IHJlc29sdmVVc2VyQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9yZXNvbHZlVXNlckNvbmZpZy5qc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZUF1dG9EaXNjb3ZlciB9IGZyb20gXCIuLi9jb25maWcvYXV0b0Rpc2NvdmVyL3Jlc29sdmVBdXRvRGlzY292ZXIuanNcIjtcbmltcG9ydCB7IGhhbmRsZUVycm9yIH0gZnJvbSBcIi4uL2Vycm9yL2hhbmRsZUVycm9yLmpzXCI7XG5pbXBvcnQgeyBhc3NlcnROb25SZWFjdFNlcnZlciB9IGZyb20gXCIuLi9jb25maWcvZ2V0Q29uZGl0aW9uLmpzXCI7XG5cbmFzc2VydE5vblJlYWN0U2VydmVyKCk7XG5cbi8qKlxuICogTWFpbiBlbnRyeSBmb3IgYHJlYWN0LWNsaWVudGAgYmVoYXZpb3IuIFRoaXMgcGx1Z2luIGlzIGltcG9ydGVkIHdoZW4gdGhlIHBsdWdpbiBpcyBpbXBvcnRlZCBmcm9tIHRoZSBtYWluXG4gKiBlbnRyeXBvaW50IGFuZCB0aGUgY29uZGl0aW9uIGlzIG5vdCBgcmVhY3Qtc2VydmVyYC5cbiAqXG4gKiBUaGlzIHBsdWdpbiBpcyByZXNwb25zaWJsZSBmb3I6XG4gKiAgRGV2IG1vZGUgdW5kZXIgbm9uLXJlYWN0LXNlcnZlciBjb25kaXRpb25zOlxuICogLSBEaXNhYmxlZCwgdXNlciByZWFjdC1zZXJ2ZXIvcGx1Z2luLmNsaWVudC50cyBpbnN0ZWFkXG4gKiBCdWlsZCBtb2RlIHVuZGVyIG5vbi1yZWFjdC1zZXJ2ZXIgY29uZGl0aW9uczpcbiAqIC0gQ29uZmlndXJlIHRoZSBjb25maWcgZm9yIHRoZSBjbGllbnQgYm91bmRhcnkgYnVpbGRcbiAqIEBwYXJhbSBvcHRpb25zXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgY29uc3QgcmVhY3RDbGllbnRQbHVnaW46IFZpdGVQbHVnaW5GbiA9IGZ1bmN0aW9uIF9yZWFjdENsaWVudFBsdWdpbihcbiAgb3B0aW9uc1xuKSB7XG4gIGxldCB1c2VyQ29uZmlnOiBSZXNvbHZlZFVzZXJDb25maWc7XG4gIGxldCBjb25maWdFbnY6IENvbmZpZ0VudjtcbiAgbGV0IGF1dG9EaXNjb3ZlcmVkRmlsZXM6IEF1dG9EaXNjb3ZlcmVkRmlsZXM7XG5cbiAgbGV0IHJlc29sdmVkQ29uZmlnOiBSZXNvbHZlZENvbmZpZyB8IG51bGwgPSBudWxsO1xuICBsZXQgbG9nZ2VyOiBMb2dnZXI7XG4gIGxldCBpbXBsaWNpdFNzcjogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAvLyBJbml0aWFsIG9wdGlvbnMgcmVzb2x1dGlvblxuICBjb25zdCByZXNvbHZlZE9wdGlvbnMgPSByZXNvbHZlT3B0aW9ucyhvcHRpb25zKTtcbiAgaWYgKHJlc29sdmVkT3B0aW9ucy50eXBlID09PSBcImVycm9yXCIpIHtcbiAgICBpZiAocmVzb2x2ZWRPcHRpb25zLmVycm9yICE9IG51bGwpIHtcbiAgICAgIHRocm93IHJlc29sdmVkT3B0aW9ucy5lcnJvcjtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRmFpbGVkIHRvIHJlc29sdmUgb3B0aW9uc1wiKTtcbiAgfVxuICBjb25zdCBjdXJyZW50VXNlck9wdGlvbnMgPSByZXNvbHZlZE9wdGlvbnMudXNlck9wdGlvbnM7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBcInZpdGU6cGx1Z2luLXJlYWN0LXNlcnZlci9jbGllbnRcIixcbiAgICBlbmZvcmNlOiBcInBvc3RcIixcbiAgICBhc3luYyBjb25maWcoY29uZmlnLCB2aXRlQ29uZmlnRW52KSB7XG4gICAgICBcbiAgICAgIGNvbmZpZ0VudiA9IHZpdGVDb25maWdFbnY7XG4gICAgICBpZiAoY29uZmlnRW52LmNvbW1hbmQgIT09IFwiYnVpbGRcIikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBcbiAgICAgIFxuICAgICAgXG4gICAgICBpZih0eXBlb2YgY29uZmlnPy5idWlsZD8uc3NyID09PSBcImJvb2xlYW5cIiB8fCB0eXBlb2YgY29uZmlnPy5idWlsZD8uc3NyID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGltcGxpY2l0U3NyID0gQm9vbGVhbihjb25maWc/LmJ1aWxkPy5zc3IpO1xuICAgICAgICBcbiAgICAgIH0gZWxzZSBpZihpbXBsaWNpdFNzciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGltcGxpY2l0U3NyID0gY29uZmlnRW52LmlzU3NyQnVpbGQ7XG4gICAgICB9XG4gICAgICBcbiAgICAgIFxuICAgICAgY29uc3QgbG9nZ2VyID0gY29uZmlnLmN1c3RvbUxvZ2dlciB8fCBjcmVhdGVMb2dnZXIoKTtcbiAgICAgIGNvbnN0IGF1dG9EaXNjb3ZlclJlc3VsdCA9IGF3YWl0IHJlc29sdmVBdXRvRGlzY292ZXIoe1xuICAgICAgICBjb25maWcsXG4gICAgICAgIGNvbmZpZ0VudixcbiAgICAgICAgdXNlck9wdGlvbnM6IGN1cnJlbnRVc2VyT3B0aW9ucyxcbiAgICAgICAgbG9nZ2VyLFxuICAgICAgfSk7XG4gICAgICBpZiAoYXV0b0Rpc2NvdmVyUmVzdWx0LnR5cGUgPT09IFwiZXJyb3JcIikge1xuICAgICAgICBjb25zdCBwYW5pY0Vycm9yID0gaGFuZGxlRXJyb3Ioe1xuICAgICAgICAgIGVycm9yOiBhdXRvRGlzY292ZXJSZXN1bHQuZXJyb3IsXG4gICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgIHBhbmljVGhyZXNob2xkOiBjdXJyZW50VXNlck9wdGlvbnMucGFuaWNUaHJlc2hvbGQsXG4gICAgICAgICAgY29udGV4dDogXCJjb25maWcoYXV0b0Rpc2NvdmVyKVwiLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHBhbmljRXJyb3IgIT0gbnVsbCkge1xuICAgICAgICAgIHRocm93IHBhbmljRXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgYXV0b0Rpc2NvdmVyZWRGaWxlcyA9IGF1dG9EaXNjb3ZlclJlc3VsdC5hdXRvRGlzY292ZXJlZEZpbGVzO1xuICAgICAgaWYgKCFhdXRvRGlzY292ZXJlZEZpbGVzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkZhaWxlZCB0byBmaW5kIGF1dG9EaXNjb3ZlcmVkRmlsZXNcIik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc29sdmVkQ29uZmlnID0gcmVzb2x2ZVVzZXJDb25maWcoe1xuICAgICAgICBjb25kaXRpb246IFwicmVhY3QtY2xpZW50XCIsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgY29uZmlnRW52LFxuICAgICAgICB1c2VyT3B0aW9uczogY3VycmVudFVzZXJPcHRpb25zLFxuICAgICAgICBhdXRvRGlzY292ZXJlZEZpbGVzLFxuICAgICAgICBzc3I6IGltcGxpY2l0U3NyLFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChyZXNvbHZlZENvbmZpZy50eXBlID09PSBcImVycm9yXCIpIHtcbiAgICAgICAgaWYgKHJlc29sdmVkQ29uZmlnLmVycm9yICE9IG51bGwpIHtcbiAgICAgICAgICB0aHJvdyByZXNvbHZlZENvbmZpZy5lcnJvcjtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJGYWlsZWQgdG8gcmVzb2x2ZSBjb25maWdcIik7XG4gICAgICB9XG5cbiAgICAgIHVzZXJDb25maWcgPSByZXNvbHZlZENvbmZpZy51c2VyQ29uZmlnO1xuICAgICAgcmV0dXJuIHVzZXJDb25maWc7XG4gICAgfSxcbiAgICBjb25maWdSZXNvbHZlZCh2aXRlUmVzb2x2ZWRDb25maWcpIHtcbiAgICAgIGlmIChjdXJyZW50VXNlck9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICBsb2dnZXI/LmluZm8oXCJjb25maWdSZXNvbHZlZFwiKTtcbiAgICAgIH1cbiAgICAgIHJlc29sdmVkQ29uZmlnID0gdml0ZVJlc29sdmVkQ29uZmlnO1xuICAgICAgbG9nZ2VyID0gcmVzb2x2ZWRDb25maWcuY3VzdG9tTG9nZ2VyIHx8IHJlc29sdmVkQ29uZmlnLmxvZ2dlcjtcbiAgICB9LFxuICB9O1xufTtcbiJdLCJuYW1lcyI6WyJsb2dnZXIiLCJyZXNvbHZlZENvbmZpZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBaUJBLG9CQUFxQixFQUFBO0FBY1IsTUFBQSxpQkFBQSxHQUFrQyxTQUFTLGtCQUFBLENBQ3RELE9BQ0EsRUFBQTtBQUNBLEVBQUksSUFBQSxVQUFBO0FBQ0osRUFBSSxJQUFBLFNBQUE7QUFDSixFQUFJLElBQUEsbUJBQUE7QUFFSixFQUFBLElBQUksY0FBd0MsR0FBQSxJQUFBO0FBQzVDLEVBQUksSUFBQSxNQUFBO0FBQ0osRUFBQSxJQUFJLFdBQW1DLEdBQUEsTUFBQTtBQUd2QyxFQUFNLE1BQUEsZUFBQSxHQUFrQixlQUFlLE9BQU8sQ0FBQTtBQUM5QyxFQUFJLElBQUEsZUFBQSxDQUFnQixTQUFTLE9BQVMsRUFBQTtBQUNwQyxJQUFJLElBQUEsZUFBQSxDQUFnQixTQUFTLElBQU0sRUFBQTtBQUNqQyxNQUFBLE1BQU0sZUFBZ0IsQ0FBQSxLQUFBO0FBQUE7QUFFeEIsSUFBTSxNQUFBLElBQUksTUFBTSwyQkFBMkIsQ0FBQTtBQUFBO0FBRTdDLEVBQUEsTUFBTSxxQkFBcUIsZUFBZ0IsQ0FBQSxXQUFBO0FBRTNDLEVB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