/
package-json.ts
61 lines (52 loc) · 1.45 KB
/
package-json.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import { TargetConfiguration } from '../config/workspace-json-project-json';
export type PackageJsonTargetConfiguration = Omit<
TargetConfiguration,
'executor'
>;
export interface NxProjectPackageJsonConfiguration {
targets?: Record<string, PackageJsonTargetConfiguration>;
}
export type PackageGroup =
| (string | { package: string; version: string })[]
| Record<string, string>;
export interface NxMigrationsConfiguration {
migrations?: string;
packageGroup?: PackageGroup;
}
export interface PackageJson {
// Generic Package.Json Configuration
name: string;
version: string;
scripts?: Record<string, string>;
dependencies?: Record<string, string>;
devDependencies?: Record<string, string>;
peerDependencies?: Record<string, string>;
workspaces?:
| string[]
| {
packages: string[];
};
// Nx Project Configuration
nx?: NxProjectPackageJsonConfiguration;
// Nx Plugin Configuration
generators?: string;
schematics?: string;
builders?: string;
executors?: string;
'nx-migrations'?: string | NxMigrationsConfiguration;
'ng-update'?: string | NxMigrationsConfiguration;
}
export function buildTargetFromScript(
script: string,
nx: NxProjectPackageJsonConfiguration
) {
const nxTargetConfiguration = nx?.targets?.[script] || {};
return {
...nxTargetConfiguration,
executor: '@nrwl/workspace:run-script',
options: {
...(nxTargetConfiguration.options || {}),
script,
},
};
}