one
Version:
One is a React framework for web, iOS, and Android apps.
35 lines (32 loc) • 1.3 kB
JavaScript
import { createRequire } from "node:module";
import { buildOneBabelPlugins } from "../babel-preset/index.mjs";
import { buildOneMetroResolverOverrides } from "./buildOneMetroResolverOverrides.mjs";
function getViteMetroPluginOptions({ projectRoot, relativeRouterRoot, ignoredRouteFiles, linking, userDefaultConfigOverrides, setupFile }) {
const require2 = createRequire(projectRoot + "/");
try {
require2.resolve("babel-preset-expo");
} catch {
throw new Error(`[one] Metro requires babel-preset-expo in the app at ${projectRoot}. Install it with your package manager, or remove native.bundler: 'metro' to use One's default native bundler.`);
}
const applyOneResolverOverrides = buildOneMetroResolverOverrides({ projectRoot });
return {
oneViteMetroBabelConfig: true,
defaultConfigOverrides: (defaultConfig) => {
let config = applyOneResolverOverrides(defaultConfig);
if (typeof userDefaultConfigOverrides === "function") {
config = userDefaultConfigOverrides(config);
}
return config;
},
babelConfig: { plugins: buildOneBabelPlugins({
projectRoot,
relativeRouterRoot,
ignoredRouteFiles,
linking,
setupFile,
includeImportMetaEnv: false
}) }
};
}
export { getViteMetroPluginOptions };
//# sourceMappingURL=getViteMetroPluginOptions.mjs.map