one
Version:
One is a React framework for web, iOS, and Android apps.
82 lines (79 loc) • 3.5 kB
JavaScript
import module from "module";
import path from "path";
import { absorbedPackageAliases } from "../utils/absorbedPackages.native.js";
function buildOneMetroResolverOverrides(param) {
var { projectRoot } = param;
var require2 = module.createRequire(projectRoot + "/");
var emptyPath = require2.resolve("@vxrn/vite-plugin-metro/empty", { paths: [projectRoot] });
var projectPackagePath = path.join(projectRoot, "package.json");
var absorbed = absorbedPackageAliases(projectRoot, "native");
return function(defaultConfig) {
var _ref;
var _defaultConfig_resolver, _defaultConfig_resolver1, _defaultConfig_resolver2;
var resolver = {
...defaultConfig === null || defaultConfig === void 0 ? void 0 : defaultConfig.resolver,
assetExts: [.../* @__PURE__ */ new Set([...(_ref = defaultConfig === null || defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver = defaultConfig.resolver) === null || _defaultConfig_resolver === void 0 ? void 0 : _defaultConfig_resolver.assetExts) !== null && _ref !== void 0 ? _ref : [], "txt"])],
extraNodeModules: { ...defaultConfig === null || defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver1 = defaultConfig.resolver) === null || _defaultConfig_resolver1 === void 0 ? void 0 : _defaultConfig_resolver1.extraNodeModules },
nodeModulesPaths: defaultConfig === null || defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver2 = defaultConfig.resolver) === null || _defaultConfig_resolver2 === void 0 ? void 0 : _defaultConfig_resolver2.nodeModulesPaths,
resolveRequest: function resolveRequest(context, moduleName, platform) {
var _defaultConfig_resolver3;
var defaultResolveRequest = (defaultConfig === null || defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver3 = defaultConfig.resolver) === null || _defaultConfig_resolver3 === void 0 ? void 0 : _defaultConfig_resolver3.resolveRequest) || context.resolveRequest;
if (moduleName === "react-native-worklets" || moduleName.startsWith("react-native-worklets/")) {
return defaultResolveRequest({
...context,
originModulePath: projectPackagePath
}, moduleName, platform);
}
if (moduleName in absorbed) {
return {
type: "sourceFile",
filePath: absorbed[moduleName]
};
}
if (moduleName.endsWith(".css")) {
return {
type: "sourceFile",
filePath: emptyPath
};
}
if (/_middleware.tsx?$/.test(moduleName)) {
return {
type: "sourceFile",
filePath: emptyPath
};
}
if (/\.server(\.[jt]sx?)?$/.test(moduleName)) {
return {
type: "sourceFile",
filePath: emptyPath
};
}
if (moduleName === "react-native-svg") {
var res = defaultResolveRequest(context, moduleName, platform);
var svgSrcSuffix = `${path.sep}src${path.sep}index.ts`;
if (res && "filePath" in res && res.filePath.includes(svgSrcSuffix)) {
return {
...res,
filePath: res.filePath.replace(svgSrcSuffix, `${path.sep}lib${path.sep}commonjs${path.sep}index.js`)
};
}
return res;
}
var res1 = defaultResolveRequest(context, moduleName, platform);
if (res1 && "filePath" in res1 && /\.server\.[jt]sx?$/.test(res1.filePath)) {
return {
type: "sourceFile",
filePath: emptyPath
};
}
return res1;
}
};
return {
...defaultConfig,
resolver
};
};
}
export { buildOneMetroResolverOverrides };
//# sourceMappingURL=buildOneMetroResolverOverrides.native.js.map