one
Version:
One is a new React Framework that makes Vite serve both native and web.
35 lines (32 loc) • 1.48 kB
JavaScript
;
var import_fs = require("fs");
var import_url = require("url");
var import_vitest = require("vitest");
const import_meta = {};
function _type_of(obj) {
"@swc/helpers - typeof";
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
}
var packageDirectory = (0, import_url.fileURLToPath)(new import_url.URL("../", import_meta.url));
function collectExportTargets(value) {
if (typeof value === "string") {
return value.includes("*") ? [] : [value];
}
if (!value || (typeof value === "undefined" ? "undefined" : _type_of(value)) !== "object" || Array.isArray(value)) {
return [];
}
return Object.values(value).flatMap(collectExportTargets);
}
(0, import_vitest.describe)("package exports", function () {
(0, import_vitest.test)("all concrete targets exist in the built package", function () {
var packageJson = JSON.parse((0, import_fs.readFileSync)(`${packageDirectory}/package.json`, "utf8"));
if (!packageJson || (typeof packageJson === "undefined" ? "undefined" : _type_of(packageJson)) !== "object" || !("exports" in packageJson)) {
throw new Error("one package.json must define exports");
}
var missing = collectExportTargets(packageJson.exports).filter(function (target) {
return !(0, import_fs.existsSync)(`${packageDirectory}/${target}`);
});
(0, import_vitest.expect)(missing).toEqual([]);
});
});
//# sourceMappingURL=package-exports.test.native.js.map