UNPKG

vite-plugin-react-server

Version:
88 lines (85 loc) 9.56 kB
/** * vite-plugin-react-server * Copyright (c) Nico Brinkkemper * MIT License */ import { createLogger } from 'vite'; const createElementWithReact = function _createElementWithReact(React, { HtmlComponent, PageComponent, RootComponent, pageProps, moduleBase, moduleBaseURL, moduleBasePath, moduleRootPath, cssFiles = /* @__PURE__ */ new Map(), globalCss = /* @__PURE__ */ new Map(), route, manifest, projectRoot, url, as = "div", verbose = false, logger = createLogger("info", { prefix: "vite:plugin-react-server/helpers/createElementWithReact" }) }) { if (verbose) { logger?.info( `[createElementWithReact] Creating element for route: ${route}` ); logger?.info( `[createElementWithReact] CSS files: ${cssFiles?.size || 0} files` ); logger?.info( `[createElementWithReact] Global CSS: ${globalCss?.size || 0} files` ); } if (HtmlComponent != null && HtmlComponent !== React.Fragment && HtmlComponent !== void 0) { if (verbose) { logger?.info(`[createElementWithReact] Returning Full HTML structure`); } return /* @__PURE__ */ React.createElement( HtmlComponent, { moduleBase, moduleBaseURL, moduleBasePath, moduleRootPath, projectRoot, url: url || "", route, pageProps, cssFiles, globalCss, Root: RootComponent ? RootComponent : React.Fragment, manifest, Page: PageComponent ? PageComponent : React.Fragment, as } ); } else if (RootComponent != null && RootComponent !== React.Fragment) { if (verbose) { logger?.info(`[createElementWithReact] Returning Root only`); } return /* @__PURE__ */ React.createElement( RootComponent, { key: route, as: React.Fragment, cssFiles, pageProps, Page: PageComponent ? PageComponent : React.Fragment } ); } else if (PageComponent != null && PageComponent !== React.Fragment) { if (verbose) { logger?.info(`[createElementWithReact] Returning Page only`); } return /* @__PURE__ */ React.createElement(PageComponent, { ...pageProps }); } return null; }; export { createElementWithReact }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlRWxlbWVudFdpdGhSZWFjdC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGx1Z2luL2hlbHBlcnMvY3JlYXRlRWxlbWVudFdpdGhSZWFjdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlTG9nZ2VyIH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB0eXBlIHsgQ3JlYXRlSGFuZGxlck9wdGlvbnMgfSBmcm9tIFwiLi4vdHlwZXMuanNcIjtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlRWxlbWVudFdpdGhSZWFjdE9wdGlvbnMgPSBQaWNrPFxuICBDcmVhdGVIYW5kbGVyT3B0aW9ucyxcbiAgfCBcIkh0bWxDb21wb25lbnRcIlxuICB8IFwiUGFnZUNvbXBvbmVudFwiXG4gIHwgXCJSb290Q29tcG9uZW50XCJcbiAgfCBcInBhZ2VQcm9wc1wiXG4gIHwgXCJtb2R1bGVCYXNlXCJcbiAgfCBcIm1vZHVsZVJvb3RQYXRoXCJcbiAgfCBcIm1vZHVsZUJhc2VQYXRoXCJcbiAgfCBcIm1vZHVsZUJhc2VVUkxcIlxuICB8IFwiY3NzRmlsZXNcIlxuICB8IFwiZ2xvYmFsQ3NzXCJcbiAgfCBcInJvdXRlXCJcbiAgfCBcIm1hbmlmZXN0XCJcbiAgfCBcInByb2plY3RSb290XCJcbiAgfCBcInVybFwiXG4gIHwgXCJhc1wiXG4+ICZcbiAgUGFydGlhbDxQaWNrPENyZWF0ZUhhbmRsZXJPcHRpb25zLCBcInZlcmJvc2VcIiB8IFwibG9nZ2VyXCI+PjtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlRWxlbWVudFdpdGhSZWFjdEZOID0gPFxuICBSIGV4dGVuZHMge1xuICAgIEZyYWdtZW50OiBhbnk7XG4gICAgdXNlOiBhbnk7XG4gICAgaXNWYWxpZEVsZW1lbnQ6IChlbGVtZW50OiBhbnkpID0+IGJvb2xlYW47XG4gIH0sXG4gIFJldHVyblR5cGUgPSBSZWFjdC5SZWFjdEVsZW1lbnQsXG4gIE9wdCBleHRlbmRzIENyZWF0ZUVsZW1lbnRXaXRoUmVhY3RPcHRpb25zID0gQ3JlYXRlRWxlbWVudFdpdGhSZWFjdE9wdGlvbnNcbj4oXG4gIFJlYWN0OiBSLFxuICBvcHRpb25zOiBPcHRcbikgPT4gUmV0dXJuVHlwZTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUVsZW1lbnRXaXRoUmVhY3Q6IENyZWF0ZUVsZW1lbnRXaXRoUmVhY3RGTiA9XG4gIGZ1bmN0aW9uIF9jcmVhdGVFbGVtZW50V2l0aFJlYWN0KFxuICAgIFJlYWN0LFxuICAgIHtcbiAgICAgIEh0bWxDb21wb25lbnQsXG4gICAgICBQYWdlQ29tcG9uZW50LFxuICAgICAgUm9vdENvbXBvbmVudCxcbiAgICAgIHBhZ2VQcm9wcyxcbiAgICAgIG1vZHVsZUJhc2UsXG4gICAgICBtb2R1bGVCYXNlVVJMLFxuICAgICAgbW9kdWxlQmFzZVBhdGgsXG4gICAgICBtb2R1bGVSb290UGF0aCxcbiAgICAgIGNzc0ZpbGVzID0gbmV3IE1hcCgpLFxuICAgICAgZ2xvYmFsQ3NzID0gbmV3IE1hcCgpLFxuICAgICAgcm91dGUsXG4gICAgICBtYW5pZmVzdCxcbiAgICAgIHByb2plY3RSb290LFxuICAgICAgdXJsLFxuICAgICAgYXMgPSBcImRpdlwiLFxuICAgICAgdmVyYm9zZSA9IGZhbHNlLFxuICAgICAgbG9nZ2VyID0gY3JlYXRlTG9nZ2VyKFwiaW5mb1wiLCB7XG4gICAgICAgIHByZWZpeDogXCJ2aXRlOnBsdWdpbi1yZWFjdC1zZXJ2ZXIvaGVscGVycy9jcmVhdGVFbGVtZW50V2l0aFJlYWN0XCIsXG4gICAgICB9KSxcbiAgICB9XG4gICkge1xuICAgIC8vIEFkZCBkZWJ1ZyBsb2dnaW5nXG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIGxvZ2dlcj8uaW5mbyhcbiAgICAgICAgYFtjcmVhdGVFbGVtZW50V2l0aFJlYWN0XSBDcmVhdGluZyBlbGVtZW50IGZvciByb3V0ZTogJHtyb3V0ZX1gXG4gICAgICApO1xuICAgICAgbG9nZ2VyPy5pbmZvKFxuICAgICAgICBgW2NyZWF0ZUVsZW1lbnRXaXRoUmVhY3RdIENTUyBmaWxlczogJHtjc3NGaWxlcz8uc2l6ZSB8fCAwfSBmaWxlc2BcbiAgICAgICk7XG4gICAgICBsb2dnZXI/LmluZm8oXG4gICAgICAgIGBbY3JlYXRlRWxlbWVudFdpdGhSZWFjdF0gR2xvYmFsIENTUzogJHtnbG9iYWxDc3M/LnNpemUgfHwgMH0gZmlsZXNgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIEh0bWxDb21wb25lbnQgIT0gbnVsbCAmJlxuICAgICAgSHRtbENvbXBvbmVudCAhPT0gUmVhY3QuRnJhZ21lbnQgJiZcbiAgICAgIEh0bWxDb21wb25lbnQgIT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgbG9nZ2VyPy5pbmZvKGBbY3JlYXRlRWxlbWVudFdpdGhSZWFjdF0gUmV0dXJuaW5nIEZ1bGwgSFRNTCBzdHJ1Y3R1cmVgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxIdG1sQ29tcG9uZW50XG4gICAgICAgICAgbW9kdWxlQmFzZT17bW9kdWxlQmFzZX1cbiAgICAgICAgICBtb2R1bGVCYXNlVVJMPXttb2R1bGVCYXNlVVJMfVxuICAgICAgICAgIG1vZHVsZUJhc2VQYXRoPXttb2R1bGVCYXNlUGF0aH1cbiAgICAgICAgICBtb2R1bGVSb290UGF0aD17bW9kdWxlUm9vdFBhdGh9XG4gICAgICAgICAgcHJvamVjdFJvb3Q9e3Byb2plY3RSb290fVxuICAgICAgICAgIHVybD17dXJsIHx8IFwiXCJ9XG4gICAgICAgICAgcm91dGU9e3JvdXRlfVxuICAgICAgICAgIHBhZ2VQcm9wcz17cGFnZVByb3BzfVxuICAgICAgICAgIGNzc0ZpbGVzPXtjc3NGaWxlc31cbiAgICAgICAgICBnbG9iYWxDc3M9e2dsb2JhbENzc31cbiAgICAgICAgICBSb290PXtSb290Q29tcG9uZW50ID8gUm9vdENvbXBvbmVudCA6IFJlYWN0LkZyYWdtZW50fVxuICAgICAgICAgIG1hbmlmZXN0PXttYW5pZmVzdH1cbiAgICAgICAgICBQYWdlPXtQYWdlQ29tcG9uZW50ID8gUGFnZUNvbXBvbmVudCA6IFJlYWN0LkZyYWdtZW50fVxuICAgICAgICAgIGFzPXthc31cbiAgICAgICAgLz5cbiAgICAgICkgYXMgbmV2ZXI7XG4gICAgfSBlbHNlIGlmIChSb290Q29tcG9uZW50ICE9IG51bGwgJiYgUm9vdENvbXBvbmVudCAhPT0gUmVhY3QuRnJhZ21lbnQpIHtcbiAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgIGxvZ2dlcj8uaW5mbyhgW2NyZWF0ZUVsZW1lbnRXaXRoUmVhY3RdIFJldHVybmluZyBSb290IG9ubHlgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxSb290Q29tcG9uZW50XG4gICAgICAgICAga2V5PXtyb3V0ZX1cbiAgICAgICAgICBhcz17UmVhY3QuRnJhZ21lbnR9XG4gICAgICAgICAgY3NzRmlsZXM9e2Nzc0ZpbGVzfVxuICAgICAgICAgIHBhZ2VQcm9wcz17cGFnZVByb3BzfVxuICAgICAgICAgIFBhZ2U9e1BhZ2VDb21wb25lbnQgPyBQYWdlQ29tcG9uZW50IDogUmVhY3QuRnJhZ21lbnR9XG4gICAgICAgIC8+XG4gICAgICApIGFzIG5ldmVyO1xuICAgIH0gZWxzZSBpZiAoUGFnZUNvbXBvbmVudCAhPSBudWxsICYmIFBhZ2VDb21wb25lbnQgIT09IFJlYWN0LkZyYWdtZW50KSB7XG4gICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICBsb2dnZXI/LmluZm8oYFtjcmVhdGVFbGVtZW50V2l0aFJlYWN0XSBSZXR1cm5pbmcgUGFnZSBvbmx5YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gKDxQYWdlQ29tcG9uZW50IHsuLi5wYWdlUHJvcHN9IC8+KSBhcyBuZXZlcjtcbiAgICB9XG4gICAgcmV0dXJuIG51bGwgYXMgbmV2ZXI7XG4gIH07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQW9DYSxNQUFBLHNCQUFBLEdBQ1gsU0FBUyx1QkFBQSxDQUNQLEtBQ0EsRUFB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