UNPKG

@o3r/schematics

Version:

Schematics module of the Otter framework

83 lines 4.51 kB
import { logging } from '@angular-devkit/core'; import { NodeDependency, NodeDependencyType } from '@schematics/angular/utility/dependencies'; import type { PackageJson } from 'type-fest'; import { DependencyInManifest, DependencyToAdd } from '../interfaces/dependencies'; /** * Method to extract the provided package version range from a package.json file * Look for the range based on this order of priority: * - generatorDependencies * - peerDependencies * - dependencies * - devDependencies * @param packageNames list of package we want to retrieve the version * @param packageJsonPath Path to the package.json to refer to * @param logger logger * @returns The version range value retrieved from the provided package.json file */ export declare function getExternalDependenciesVersionRange<T extends string>(packageNames: T[], packageJsonPath: string, logger: logging.LoggerApi): Record<T, string>; /** * Replace the caret ranges by tilde ranges * @param range Range to replace */ export declare const enforceTildeRange: (range?: string) => string | undefined; /** * Return true if B is a subset of A or if minVersion of A is greater than minVersion of B * @param rangeA * @param rangeB */ export declare function isRangeGreater(rangeA: string, rangeB: string): boolean; /** * Compute the version range for a package based on the less restrictive version declared in the package.json. * If the versions declared in the package.json do not intersect, take the highest version. * @param packageName * @param packageJsonContent * @param isTildeEnforced */ export declare function getDependencyMaximumVersionRange(packageName: string, packageJsonContent: PackageJson, isTildeEnforced?: boolean): string; /** * Find the range for this package based on the generatorDependency object of the package.json * If there are no specified generator dependency, look for the range with the highest minimum or the widest range * @param packageName * @param packageJsonPath * @param isTildeEnforced */ export declare function getVersionToInstallFromPackageJson(packageName: string, packageJsonPath: string, isTildeEnforced?: boolean): string | undefined; /** * Check if a dependency has already been installed for the requested range * @param depName * @param packageJson * @param root0 * @param root0.range * @param root0.types */ export declare function isDependencyAlreadyInstalled(depName: string, packageJson: PackageJson, { range, types }: Required<DependencyInManifest>): boolean; /** * Method used to build the list of node dependencies to be installed * @param dependenciesVersions map of dependency and its associated required version * @param type node type of the dependency * @returns the list of node dependencies to be installed */ export declare function getNodeDependencyList<T extends string>(dependenciesVersions: Record<T, string>, type: NodeDependencyType): NodeDependency[]; /** * Retrieves information about external dependencies (peer and dev) for a given project. * @template T - Type of the dependency names. * @template U - Type of the dev dependency names. * @param params - The parameters object. * @param params.dependenciesToInstall - Array of external peer dependency names. * @param params.devDependenciesToInstall - Array of external dev dependency names. * @param params.o3rPackageJsonPath - The path to the o3r `package.json` file. * @param params.projectPackageJson - The path to the package json of the project where the dependencies will be installed. * @param params.projectType - The angular type of the project, either 'application' or 'library'. * @param params.rootPackageJsonPath - Path to the root of the repository where the dependency will be installed * @param logger - The logger instance for logging information. * @param isInstallRequired - Whether the package should be installed or not. By default, return true. */ export declare function getExternalDependenciesInfo<T extends string, U extends string>({ dependenciesToInstall, devDependenciesToInstall, o3rPackageJsonPath, projectPackageJson, projectType, rootPackageJsonPath }: { dependenciesToInstall: T[]; devDependenciesToInstall: U[]; o3rPackageJsonPath: string; projectPackageJson: PackageJson; projectType?: 'application' | 'library'; rootPackageJsonPath?: string; }, logger?: logging.LoggerApi, isInstallRequired?: (_: string) => undefined | boolean): Record<T | U, DependencyToAdd>; //# sourceMappingURL=dependencies.d.ts.map