mirror of
https://github.com/angular/angular-cli.git
synced 2025-05-24 16:16:27 +08:00
50 lines
1.3 KiB
TypeScript
50 lines
1.3 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright Google LLC All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.io/license
|
|
*/
|
|
|
|
import { join, normalize } from '@angular-devkit/core';
|
|
import { Rule } from '@angular-devkit/schematics';
|
|
import {
|
|
NodeDependencyType,
|
|
addPackageJsonDependency,
|
|
removePackageJsonDependency,
|
|
} from '../../utility/dependencies';
|
|
import { getWorkspace } from '../../utility/workspace';
|
|
import { ProjectType } from '../../utility/workspace-models';
|
|
|
|
export default function (): Rule {
|
|
return async (host) => {
|
|
const workspace = await getWorkspace(host);
|
|
|
|
for (const [, project] of workspace.projects) {
|
|
if (project.extensions.projectType !== ProjectType.Library) {
|
|
// Only interested in library projects
|
|
continue;
|
|
}
|
|
|
|
const packageJsonPath = join(normalize(project.root), 'package.json');
|
|
if (!host.exists(packageJsonPath)) {
|
|
continue;
|
|
}
|
|
|
|
// Remove tslib from any type of dependency
|
|
removePackageJsonDependency(host, 'tslib', packageJsonPath);
|
|
|
|
// Add tslib as a direct dependency
|
|
addPackageJsonDependency(
|
|
host,
|
|
{
|
|
name: 'tslib',
|
|
version: '^2.0.0',
|
|
type: NodeDependencyType.Default,
|
|
},
|
|
packageJsonPath,
|
|
);
|
|
}
|
|
};
|
|
}
|