UNPKG

one

Version:

One is a new React Framework that makes Vite serve both native and web.

154 lines (146 loc) 5.83 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: !0 }); }, __copyProps = (to, from, except, desc) => { if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); return to; }; var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod); var virtualEntryPlugin_exports = {}; __export(virtualEntryPlugin_exports, { createVirtualEntry: () => createVirtualEntry }); module.exports = __toCommonJS(virtualEntryPlugin_exports); var import_compiler = require("@vxrn/compiler"), import_vxrn = require("vxrn"), import_glob_patterns = require("../../router/glob-patterns.native.js"), import_virtualEntryConstants = require("./virtualEntryConstants.native.js"); function normalizeSetupFile(setupFile) { if (!setupFile) return {}; if (typeof setupFile == "string") return { client: setupFile, server: setupFile, ios: setupFile, android: setupFile }; if ("native" in setupFile) return { client: setupFile.client, server: setupFile.server, ios: setupFile.native, android: setupFile.native }; var sf = setupFile; return { client: sf.client, server: sf.server, ios: sf.ios, android: sf.android }; } function getSetupFileImport(environmentName, setupFiles, useStaticImport) { var envMap = { client: "client", ssr: "server", ios: "ios", android: "android" }, key = envMap[environmentName]; if (!key) return { importStatement: "", promiseDeclaration: "", promiseVarName: "" }; var setupFile = setupFiles[key]; return setupFile ? useStaticImport ? { importStatement: `import ${JSON.stringify(setupFile)}`, promiseDeclaration: "", promiseVarName: "" } : { importStatement: "", promiseDeclaration: `const __oneSetupPromise = import(/* @vite-ignore */ ${JSON.stringify(setupFile)})`, promiseVarName: "__oneSetupPromise" } : { importStatement: "", promiseDeclaration: "", promiseVarName: "" }; } function createVirtualEntry(options) { var _options_router_ignoredRouteFiles, _options_router, routeGlobs = [`/${options.root}/${import_glob_patterns.ROUTE_GLOB_PATTERN}`, ...(((_options_router = options.router) === null || _options_router === void 0 || (_options_router_ignoredRouteFiles = _options_router.ignoredRouteFiles) === null || _options_router_ignoredRouteFiles === void 0 ? void 0 : _options_router_ignoredRouteFiles.map(function (pattern) { return `!/${options.root}/${pattern}`; })) || [])], apiRouteGlobs = `/${options.root}/${import_glob_patterns.API_ROUTE_GLOB_PATTERN}`, setupFiles = normalizeSetupFile(options.setupFile); return { name: "one-virtual-entry", enforce: "pre", resolveId(id) { if (id === import_virtualEntryConstants.virtualEntryId) return import_virtualEntryConstants.resolvedVirtualEntryId; if (id === import_virtualEntryConstants.virtualEntryIdNative) return import_virtualEntryConstants.resolvedVirtualEntryIdNative; }, load(id) { if (id === import_virtualEntryConstants.resolvedVirtualEntryId) { var isNative = (0, import_vxrn.isNativeEnvironment)(this.environment), setupResult = getSetupFileImport(this.environment.name, setupFiles, isNative), nativewindImport = import_compiler.configuration.enableNativewind ? "import 'react-native-css-interop/dist/runtime/components'" : "", setupPromiseArg = setupResult.promiseVarName ? `setupPromise: ${setupResult.promiseVarName},` : ""; return ` ${setupResult.importStatement} ${setupResult.promiseDeclaration} ${nativewindImport} import { createApp, registerPreloadedRoute as _registerPreloadedRoute } from 'one' // Export registerPreloadedRoute so preload files can import it from this bundle // Named export that wraps the original function export function registerPreloadedRoute(key, module) { return _registerPreloadedRoute(key, module) } // Also expose on window for debugging and to prevent tree-shaking if (typeof window !== 'undefined') { window.__oneRegisterPreloadedRoute = registerPreloadedRoute } // globbing ${JSON.stringify(routeGlobs)} export default createApp({ ${setupPromiseArg} routes: import.meta.glob(${JSON.stringify([...routeGlobs, ...import_glob_patterns.ROUTE_WEB_EXCLUSION_GLOB_PATTERNS.map(function (p) { return `!${p}`; })])}, { exhaustive: true }), routerRoot: ${JSON.stringify(options.root)}, flags: ${JSON.stringify(options.flags)}, }) `; } if (id === import_virtualEntryConstants.resolvedVirtualEntryIdNative) { var isNative1 = (0, import_vxrn.isNativeEnvironment)(this.environment), setupResult1 = getSetupFileImport(this.environment.name, setupFiles, isNative1); return ` ${setupResult1.importStatement} import { createApp } from 'one' // globbing ${JSON.stringify(routeGlobs)} export default createApp({ routes: import.meta.glob(${JSON.stringify([...routeGlobs, ...import_glob_patterns.ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS.map(function (p) { return `!${p}`; }), `!${apiRouteGlobs}`])}, { exhaustive: true }), routerRoot: ${JSON.stringify(options.root)}, flags: ${JSON.stringify(options.flags)}, }) `; } } }; } //# sourceMappingURL=virtualEntryPlugin.native.js.map