UNPKG

@-xun/common-dummies

Version:

A collection of dummy projects, packages, and other testable structures

29 lines (28 loc) 1.55 kB
"use strict"; 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)); } }