Skip to content

Instantly share code, notes, and snippets.

@gpleiss
Created May 22, 2015 00:42
Show Gist options
  • Save gpleiss/830369c52689e00233ed to your computer and use it in GitHub Desktop.
Save gpleiss/830369c52689e00233ed to your computer and use it in GitHub Desktop.
The magic
import fs from 'fs-promise';
import DAG from 'dag-map';
import glob from 'glob';
import promisify from 'es6-promisify';
const promisedGlob = promisify(glob);
(async function() {
const dag = new DAG();
const allPackageFilePaths = await promisedGlob('**/node_modules/*/package.json');
const packages = (await * allPackageFilePaths.map(filePath => fs.readFile(filePath)))
.map(JSON.parse)
.filter(pkg => Boolean(pkg.style));
const packageNames = packages.map(pkg => pkg.name);
for (const packageName of packageNames) {
dag.add(packageName);
}
for (const pkg of packages) {
const styleDependencies = Object.keys(pkg.dependencies || {})
.filter(dependency => packageNames.includes(dependency));
for (const styleDependency of styleDependencies) {
dag.addEdge(styleDependency, pkg.name);
}
}
const orderedPackageNames = [];
dag.topsort(function(vertex, path){
orderedPackageNames.push(vertex.name);
});
return orderedPackageNames;
})();
@gpleiss
Copy link
Author

gpleiss commented May 22, 2015

Package: pui-css-alerts, dependencies: pui-css-bootstrap,pui-css-typography
Package: pui-css-alignment, dependencies:
Package: pui-css-avatars, dependencies: pui-css-bootstrap
Package: pui-css-back-to-top, dependencies: pui-css-bootstrap,pui-css-links,pui-css-iconography
Package: pui-css-backgrounds, dependencies:
Package: pui-css-bootstrap, dependencies:
Package: pui-css-buttons, dependencies: pui-css-bootstrap,pui-css-typography
Package: pui-css-code, dependencies: pui-css-iconography
Package: pui-css-collapse, dependencies: pui-css-bootstrap
Package: pui-css-colors, dependencies:
Package: pui-css-deprecated, dependencies:
Package: pui-css-dividers, dependencies:
Package: pui-css-dropdowns, dependencies: pui-css-bootstrap
Package: pui-css-ellipsis, dependencies:
Package: pui-css-embeds, dependencies: pui-css-bootstrap
Package: pui-css-forms, dependencies: pui-css-bootstrap
Package: pui-css-google-maps, dependencies:
Package: pui-css-grids, dependencies: pui-css-bootstrap
Package: pui-css-hoverable, dependencies:
Package: pui-css-iconography, dependencies: pui-css-typography
Package: pui-css-images, dependencies: pui-css-bootstrap
Package: pui-css-labels, dependencies: pui-css-bootstrap
Package: pui-css-links, dependencies: pui-css-bootstrap
Package: pui-css-lists, dependencies: pui-css-bootstrap,pui-css-typography
Package: pui-css-media, dependencies: pui-css-bootstrap
Package: pui-css-modals, dependencies: pui-css-bootstrap
Package: pui-css-panels, dependencies: pui-css-bootstrap
Package: pui-css-panes, dependencies: pui-css-bootstrap
Package: pui-css-progress-bars, dependencies: pui-css-bootstrap
Package: pui-css-react-animations, dependencies:
Package: pui-css-ribbons, dependencies:
Package: pui-css-spinners, dependencies: pui-css-iconography
Package: pui-css-tables, dependencies: pui-css-bootstrap
Package: pui-css-tabs, dependencies: pui-css-bootstrap
Package: pui-css-tooltips, dependencies: pui-css-typography
Package: pui-css-typography, dependencies: pui-css-bootstrap
Package: pui-css-vertical-alignment, dependencies:
Package: pui-css-whitespace, dependencies:

@gpleiss
Copy link
Author

gpleiss commented May 22, 2015

'pui-css-alignment',
'pui-css-backgrounds',
'pui-css-alerts',
'pui-css-avatars',
'pui-css-back-to-top',
'pui-css-buttons',
'pui-css-collapse',
'pui-css-dropdowns',
'pui-css-embeds',
'pui-css-forms',
'pui-css-grids',
'pui-css-images',
'pui-css-labels',
'pui-css-links',
'pui-css-lists',
'pui-css-media',
'pui-css-modals',
'pui-css-panels',
'pui-css-panes',
'pui-css-progress-bars',
'pui-css-tables',
'pui-css-tabs',
'pui-css-code',
'pui-css-spinners',
'pui-css-iconography',
'pui-css-tooltips',
'pui-css-typography',
'pui-css-bootstrap',
'pui-css-colors',
'pui-css-deprecated',
'pui-css-dividers',
'pui-css-ellipsis',
'pui-css-google-maps',
'pui-css-hoverable',
'pui-css-react-animations',
'pui-css-ribbons',
'pui-css-vertical-alignment',
'pui-css-whitespace'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment