create-nx-workspace
Version:
29 lines (28 loc) • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPackageNameFromThirdPartyPreset = getPackageNameFromThirdPartyPreset;
const validate_npm_package_1 = require("../validate-npm-package");
const preset_1 = require("./preset");
/**
* This function is used to check if a preset is a third party preset.
* @param preset
* @returns
* - undefined if the preset is a known Nx preset or invalid.
* - packageName if the preset is a third party preset.
* - throws an error if the preset is invalid.
*/
function getPackageNameFromThirdPartyPreset(preset) {
if (!preset || (0, preset_1.isKnownPreset)(preset)) {
return;
}
// extract the package name from the preset
const packageName = preset.match(/.+@/)
? preset[0] + preset.substring(1).split('@')[0]
: preset;
const validateResult = (0, validate_npm_package_1.validateNpmPackage)(packageName);
if (!validateResult.validForNewPackages) {
throw new Error(`Invalid preset npm package ${packageName}. There was an error with the preset npm package you provided: ` +
(validateResult.errors ?? []).join('\n'));
}
return packageName;
}