@pnpm/workspace.read-manifest
Version:
Reads a workspace manifest file
46 lines • 2.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.assertValidWorkspaceManifestCatalog = assertValidWorkspaceManifestCatalog;
exports.assertValidWorkspaceManifestCatalogs = assertValidWorkspaceManifestCatalogs;
const InvalidWorkspaceManifestError_1 = require("./errors/InvalidWorkspaceManifestError");
function assertValidWorkspaceManifestCatalog(manifest) {
if (manifest.catalog == null) {
return;
}
if (Array.isArray(manifest.catalog)) {
throw new InvalidWorkspaceManifestError_1.InvalidWorkspaceManifestError('Expected catalog field to be an object, but found - array');
}
if (typeof manifest.catalog !== 'object') {
throw new InvalidWorkspaceManifestError_1.InvalidWorkspaceManifestError(`Expected catalog field to be an object, but found - ${typeof manifest.catalog}`);
}
for (const [alias, specifier] of Object.entries(manifest.catalog)) {
if (typeof specifier !== 'string') {
throw new InvalidWorkspaceManifestError_1.InvalidWorkspaceManifestError(`Invalid catalog entry for ${alias}. Expected string, but found: ${typeof specifier}`);
}
}
}
function assertValidWorkspaceManifestCatalogs(manifest) {
if (manifest.catalogs == null) {
return;
}
if (Array.isArray(manifest.catalogs)) {
throw new InvalidWorkspaceManifestError_1.InvalidWorkspaceManifestError('Expected catalogs field to be an object, but found - array');
}
if (typeof manifest.catalogs !== 'object') {
throw new InvalidWorkspaceManifestError_1.InvalidWorkspaceManifestError(`Expected catalogs field to be an object, but found - ${typeof manifest.catalogs}`);
}
for (const [catalogName, catalog] of Object.entries(manifest.catalogs)) {
if (Array.isArray(catalog)) {
throw new InvalidWorkspaceManifestError_1.InvalidWorkspaceManifestError(`Expected named catalog ${catalogName} to be an object, but found - array`);
}
if (typeof catalog !== 'object') {
throw new InvalidWorkspaceManifestError_1.InvalidWorkspaceManifestError(`Expected named catalog ${catalogName} to be an object, but found - ${typeof catalog}`);
}
for (const [alias, specifier] of Object.entries(catalog)) {
if (typeof specifier !== 'string') {
throw new InvalidWorkspaceManifestError_1.InvalidWorkspaceManifestError(`Catalog '${catalogName}' has invalid entry '${alias}'. Expected string specifier, but found: ${typeof specifier}`);
}
}
}
}
//# sourceMappingURL=catalogs.js.map