@rstest/core
Version:
The Rsbuild-based test tool.
49 lines (48 loc) • 2.66 kB
JavaScript
import 'module';
/*#__PURE__*/ import.meta.url;
import { __webpack_require__ } from "./rslib-runtime.js";
import "./2672.js";
import { createRequire } from "./4881.js";
import { pathToFileURL } from "./6198.js";
import "./1157.js";
import { logger as logger_logger } from "./3278.js";
const picocolors = __webpack_require__("../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js");
var picocolors_default = /*#__PURE__*/ __webpack_require__.n(picocolors);
async function loadBrowserModule(options = {}) {
const coreVersion = "0.7.9";
const { projectRoots = [] } = options;
let browserModule;
let browserVersion;
const resolutionBases = [
...projectRoots.map((projectRoot)=>pathToFileURL(`${projectRoot}/package.json`).href),
pathToFileURL(`${process.cwd()}/package.json`).href,
import.meta.url
];
const uniqueBases = [
...new Set(resolutionBases)
];
for (const base of uniqueBases)try {
const userRequire = createRequire(base);
const browserPath = userRequire.resolve('@rstest/browser');
const browserPkgPath = userRequire.resolve('@rstest/browser/package.json');
browserModule = await import(pathToFileURL(browserPath).href);
const browserPkg = userRequire(browserPkgPath);
browserVersion = browserPkg.version;
if (browserVersion !== coreVersion) {
logger_logger.error(`\n${picocolors_default().red('Error:')} Version mismatch between ${picocolors_default().cyan('@rstest/core')} and ${picocolors_default().cyan('@rstest/browser')}.\n`);
logger_logger.error(` @rstest/core version: ${picocolors_default().yellow(coreVersion)}\n @rstest/browser version: ${picocolors_default().yellow(browserVersion)}\n`);
logger_logger.error(`Please ensure both packages have the same version:\n\n ${picocolors_default().cyan(`npm install @rstest/browser@${coreVersion}`)}\n`);
process.exit(1);
}
return browserModule;
} catch (error) {
const err = error;
if ('ERR_MODULE_NOT_FOUND' === err.code || 'MODULE_NOT_FOUND' === err.code) continue;
throw error;
}
logger_logger.error(`\n${picocolors_default().red('Error:')} Browser mode requires ${picocolors_default().cyan('@rstest/browser')} to be installed.\n`);
logger_logger.error(`Please install it with:\n\n ${picocolors_default().cyan(`npm install @rstest/browser@${coreVersion}`)}\n`);
logger_logger.error(`Or if using pnpm:\n\n ${picocolors_default().cyan(`pnpm add @rstest/browser@${coreVersion}`)}\n`);
process.exit(1);
}
export { loadBrowserModule };