73 lines
1.7 KiB
TypeScript
73 lines
1.7 KiB
TypeScript
import * as path from 'path';
|
|
import { getPackageConfigurations } from './get-package-configurations';
|
|
import { generateFile, getNxPackageDependencies } from './utils';
|
|
import { dedent } from 'tslint/lib/utils';
|
|
|
|
getPackageConfigurations().forEach(({ framework, configs }) => {
|
|
let template = dedent`
|
|
# API
|
|
|
|
Here is the list of all the available packages inside the Nx ecosystem. You
|
|
can see, for each package its dependencies.
|
|
|
|
| PackageName | Dependencies | PeerDependencies |
|
|
| ----------- | ------------ | ---------------- |
|
|
`;
|
|
|
|
const imagesTemplate = dedent`
|
|
## Angular
|
|

|
|
|
|
## React
|
|

|
|
|
|
## Nest
|
|

|
|
|
|
## Express
|
|

|
|
|
|
## Node
|
|

|
|
|
|
## Cypress
|
|

|
|
|
|
## Jest
|
|

|
|
|
|
## Web
|
|

|
|
`;
|
|
|
|
configs
|
|
.filter(item => item.hasBuilders || item.hasSchematics)
|
|
.map(item => {
|
|
const dependencies = getNxPackageDependencies(
|
|
path.join(item.root, 'package.json')
|
|
);
|
|
|
|
const data = Object.assign(
|
|
{},
|
|
{
|
|
hasBuilders: item.hasBuilders,
|
|
hasSchematics: item.hasSchematics
|
|
},
|
|
dependencies
|
|
);
|
|
|
|
template += dedent`| ${data.name} | ${data.dependencies.join(
|
|
', '
|
|
)} | ${data.peerDependencies.join(', ')} |\n`;
|
|
});
|
|
|
|
// Adding images of dependency graphs
|
|
template += imagesTemplate;
|
|
|
|
generateFile(path.join(__dirname, '../../docs', framework, 'api'), {
|
|
name: 'home',
|
|
template
|
|
});
|
|
});
|
|
console.log('Done generating API Home Documentation');
|