UNPKG

@nx/js

Version:

The JS plugin for Nx contains executors and generators that provide the best experience for developing JavaScript and TypeScript projects.

42 lines (41 loc) 1.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isLocallyLinkedPackageVersion = isLocallyLinkedPackageVersion; const devkit_1 = require("@nx/devkit"); // import { lt } from 'semver'; let pm; // let pmVersion: string | undefined; const localPackageProtocols = [ 'file:', // all package managers 'workspace:', // not npm // TODO: Support portal protocol at the project graph level before enabling here // 'portal:', // modern yarn only ]; function isLocallyLinkedPackageVersion(version) { // Not using a supported local protocol if (!localPackageProtocols.some((protocol) => version.startsWith(protocol))) { return false; } // Supported by all package managers if (version.startsWith('file:')) { return true; } // Determine specific package manager in use if (!pm) { pm = (0, devkit_1.detectPackageManager)(); // pmVersion = getPackageManagerVersion(pm); } if (pm === 'npm' && version.startsWith('workspace:')) { throw new Error(`The "workspace:" protocol is not yet supported by npm (https://github.com/npm/rfcs/issues/765). Please ensure you have a valid setup according to your package manager before attempting to release packages.`); } // TODO: Support portal protocol at the project graph level before enabling here // if ( // version.startsWith('portal:') && // (pm !== 'yarn' || lt(pmVersion, '2.0.0')) // ) { // throw new Error( // `The "portal:" protocol is only supported by yarn@2.0.0 and above. Please ensure you have a valid setup according to your package manager before attempting to release packages.` // ); // } return true; }