one
Version:
One is a new React Framework that makes Vite serve both native and web.
71 lines (66 loc) • 3.1 kB
JavaScript
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_vxrn = require("vxrn"), import_virtualEntryConstants = require("./virtualEntryConstants"), import_glob_patterns = require("../../router/glob-patterns");
const USE_ONE_SETUP_FILE = `
if (process.env.ONE_SETUP_FILE) {
import(/* @vite-ignore */ process.env.ONE_SETUP_FILE)
}
`;
function createVirtualEntry(options) {
const routeGlobs = [
`/${options.root}/${import_glob_patterns.ROUTE_GLOB_PATTERN}`,
...options.router?.ignoredRouteFiles?.map((pattern) => `!/${options.root}/${pattern}`) || []
], apiRouteGlobs = `/${options.root}/${import_glob_patterns.API_ROUTE_GLOB_PATTERN}`;
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)
return `
${(0, import_vxrn.isNativeEnvironment)(this.environment) ? "" : USE_ONE_SETUP_FILE}
import { createApp } from 'one'
// globbing ${JSON.stringify(routeGlobs)}
export default createApp({
routes: import.meta.glob(${JSON.stringify([...routeGlobs, ...import_glob_patterns.ROUTE_WEB_EXCLUSION_GLOB_PATTERNS.map((p) => `!${p}`)])}, { exhaustive: true }),
routerRoot: ${JSON.stringify(options.root)},
flags: ${JSON.stringify(options.flags)},
})
`;
if (id === import_virtualEntryConstants.resolvedVirtualEntryIdNative)
return `
${(0, import_vxrn.isNativeEnvironment)(this.environment) ? "" : USE_ONE_SETUP_FILE}
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((p) => `!${p}`), `!${apiRouteGlobs}`])}, { exhaustive: true }),
routerRoot: ${JSON.stringify(options.root)},
flags: ${JSON.stringify(options.flags)},
})
`;
}
};
}
//# sourceMappingURL=virtualEntryPlugin.js.map