@@ -14,38 +14,39 @@ const fsp = require("fs").promises;
1414const path = require ( "path" ) ;
1515const depSolver = require ( "dependency-solver" ) ;
1616
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+ */
2422async 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+ } ;
4043}
4144
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+ */
4950async function solveDependencies ( packages ) {
5051 async function getDependenciesForSolver ( package ) {
5152 let { name, dependencies } = await getDependencies ( package ) ;
@@ -69,30 +70,25 @@ async function solveDependencies(packages) {
6970 return depSolver . solve ( dependencies ) ;
7071}
7172
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+ */
7978async function getPackageDependencyOrder ( packageDir ) {
80- let { dependencies } = await getDependencies ( packageDir ) ;
81-
79+ const { dependencies } = await getDependencies ( packageDir ) ;
8280 return solveDependencies (
8381 dependencies . map ( ( dep ) =>
8482 path . dirname ( require . resolve ( path . join ( dep , "package.json" ) ) )
8583 )
8684 ) ;
8785}
8886
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+ */
9692async function getFolderDependencyOrder ( packagesDir ) {
9793 // Get list of all packages
9894 let packages = ( await fsp . readdir ( packagesDir , { withFileTypes : true } ) )
0 commit comments