MCPcopy
hub / github.com/angular/angularfire / addDependencies

Function addDependencies

src/schematics/common.ts:30–67  ·  view source on GitHub ↗
(
  host: Tree,
  deps: Record<string, { dev?: boolean, version: string }>,
  context: SchematicContext
)

Source from the content-addressed store, hash-verified

28}
29
30export const addDependencies = (
31 host: Tree,
32 deps: Record<string, { dev?: boolean, version: string }>,
33 context: SchematicContext
34) => {
35 const packageJson =
36 host.exists('package.json') && safeReadJSON('package.json', host);
37
38 if (packageJson === undefined) {
39 throw new SchematicsException('Could not locate package.json');
40 }
41
42 packageJson.devDependencies ??= {};
43 packageJson.dependencies ??= {};
44
45 Object.keys(deps).forEach(depName => {
46 const dep = deps[depName];
47 const existingDeps = dep.dev ? packageJson.devDependencies : packageJson.dependencies;
48 const existingVersion = existingDeps[depName];
49 if (existingVersion) {
50 try {
51 if (!semverIntersects(existingVersion, dep.version)) {
52 context.logger.warn(`⚠️ The ${depName} devDependency specified in your package.json (${existingVersion}) does not fulfill AngularFire's dependency (${dep.version})`);
53 // TODO offer to fix
54 }
55 } catch (e) {
56 if (existingVersion !== dep.version) {
57 context.logger.warn(`⚠️ The ${depName} devDependency specified in your package.json (${existingVersion}) does not fulfill AngularFire's dependency (${dep.version})`);
58 // TODO offer to fix
59 }
60 }
61 } else {
62 existingDeps[depName] = dep.version;
63 }
64 });
65
66 overwriteIfExists(host, 'package.json', stringifyFormatted(packageJson));
67};

Callers 1

ngAddFunction · 0.90

Calls 5

safeReadJSONFunction · 0.85
overwriteIfExistsFunction · 0.85
stringifyFormattedFunction · 0.85
existsMethod · 0.65
forEachMethod · 0.65

Tested by

no test coverage detected