@-xun/common-dummies
Version:
A collection of dummy projects, packages, and other testable structures
29 lines (28 loc) • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getDummyPackage = getDummyPackage;
var _nodeAssert = _interopRequireDefault(require("node:assert"));
var _fs = require("@-xun/fs");
var _namedAppErrors = require("named-app-errors");
var _error = require("./error.js");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const DUMMY_PACKAGE_DIR = (0, _fs.toAbsolutePath)(__dirname, '..', 'dummies', 'packages');
function getDummyPackage(id, options = {}) {
const pkg = {};
pkg.path = id === 'root' ? DUMMY_PACKAGE_DIR : (0, _fs.toPath)(DUMMY_PACKAGE_DIR, 'node_modules', `dummy-${id}-pkg`);
pkg.packageJson = require(`${pkg.path}/package.json`);
(0, _nodeAssert.default)(pkg.packageJson.name, makeDummyPackageError(_error.ErrorMessage.PackageMissingField('name')));
pkg.name = pkg.packageJson.name;
if (options.requireObjectImports && (!pkg.packageJson.imports || typeof pkg.packageJson.imports === 'string' || Array.isArray(pkg.packageJson.imports))) {
throw makeDummyPackageError(_error.ErrorMessage.PackageInvalidImportExportField('imports'));
}
if (options.requireObjectExports && (!pkg.packageJson.exports || typeof pkg.packageJson.exports === 'string' || Array.isArray(pkg.packageJson.exports))) {
throw makeDummyPackageError(_error.ErrorMessage.PackageInvalidImportExportField('exports'));
}
return pkg;
function makeDummyPackageError(error) {
return new _namedAppErrors.TrialError(_error.ErrorMessage.PackageUnresolvable(id, error));
}
}