@@ -14,38 +14,39 @@ const fsp = require("fs").promises;
14
14
const path = require ( "path" ) ;
15
15
const depSolver = require ( "dependency-solver" ) ;
16
16
17
- /*
18
- Given a package path, get its dependencies
19
-
20
- @param {string } packages - package directory
21
-
22
- @return {Object } An object mapping the package name to its dependencies, or null if no dependencies
23
- */
17
+ /**
18
+ * Given a package path, get its dependencies
19
+ * @param {string } packages - package directory
20
+ * @return {Object } An object mapping the package name to its dependencies, or null if no dependencies
21
+ */
24
22
async function getDependencies ( package ) {
25
- let pkg = JSON . parse ( await fsp . readFile ( path . join ( package , "package.json" ) ) ) ;
26
- let dependencies = [ ] ;
27
-
28
- if ( pkg . devDependencies ) {
29
- dependencies = Object . keys ( pkg . devDependencies ) . filter ( ( dep ) => {
30
- return (
31
- dep . indexOf ( "@spectrum-css" ) === 0 &&
32
- dep !== "@spectrum-css/bundle-builder" &&
33
- dep !== "@spectrum-css/component-builder" &&
34
- dep !== "@spectrum-css/component-builder-simple"
35
- ) ;
36
- } ) ;
37
- }
38
-
39
- return { name : pkg . name , dependencies : dependencies } ;
23
+ const {
24
+ name,
25
+ peerDependencies = { } ,
26
+ dependencies = { } ,
27
+ devDependencies = { }
28
+ } = await fsp . readFile ( path . join ( package , "package.json" ) ) . then ( JSON . parse ) ;
29
+
30
+ return {
31
+ name,
32
+ dependencies : [ ...new Set ( [
33
+ ...Object . keys ( peerDependencies ) ,
34
+ ...Object . keys ( dependencies ) ,
35
+ ...Object . keys ( devDependencies ) ,
36
+ ] ) ] . filter ( ( dep ) => (
37
+ dep . indexOf ( "@spectrum-css" ) === 0 &&
38
+ dep !== "@spectrum-css/bundle-builder" &&
39
+ dep !== "@spectrum-css/component-builder" &&
40
+ dep !== "@spectrum-css/component-builder-simple"
41
+ ) )
42
+ } ;
40
43
}
41
44
42
- /*
43
- Given a list of package paths, solve the dependency order
44
-
45
- @param {string[] } packages - package directories
46
-
47
- @return {string[] } The solved dependency order
48
- */
45
+ /**
46
+ * Given a list of package paths, solve the dependency order
47
+ * @param {string[] } packages - package directories
48
+ * @return {string[] } The solved dependency order
49
+ */
49
50
async function solveDependencies ( packages ) {
50
51
async function getDependenciesForSolver ( package ) {
51
52
let { name, dependencies } = await getDependencies ( package ) ;
@@ -69,30 +70,25 @@ async function solveDependencies(packages) {
69
70
return depSolver . solve ( dependencies ) ;
70
71
}
71
72
72
- /*
73
- Get the list of all packages in given directory
74
-
75
- @param {string } packageDir - package directory
76
-
77
- @return {Object } An array of package names in dependency order
78
- */
73
+ /**
74
+ * Get the list of all packages in given directory
75
+ * @param {string } packageDir - package directory
76
+ * @return {Object } An array of package names in dependency order
77
+ */
79
78
async function getPackageDependencyOrder ( packageDir ) {
80
- let { dependencies } = await getDependencies ( packageDir ) ;
81
-
79
+ const { dependencies } = await getDependencies ( packageDir ) ;
82
80
return solveDependencies (
83
81
dependencies . map ( ( dep ) =>
84
82
path . dirname ( require . resolve ( path . join ( dep , "package.json" ) ) )
85
83
)
86
84
) ;
87
85
}
88
86
89
- /*
90
- Get the list of all packages in given directory
91
-
92
- @param {string } packagesDir - directory of packages
93
-
94
- @return {Object } An array of package names in dependency order
95
- */
87
+ /**
88
+ * Get the list of all packages in given directory
89
+ * @param {string } packagesDir - directory of packages
90
+ * @return {Object } An array of package names in dependency order
91
+ */
96
92
async function getFolderDependencyOrder ( packagesDir ) {
97
93
// Get list of all packages
98
94
let packages = ( await fsp . readdir ( packagesDir , { withFileTypes : true } ) )
0 commit comments