Skip to content
This repository was archived by the owner on Aug 26, 2021. It is now read-only.

Commit 187d23c

Browse files
author
Adam A. Zerella
committed
Reduced scope of generate-readme script to JUST generate README.md
Removed unused deps Made code neater
1 parent 71116d3 commit 187d23c

File tree

6 files changed

+91
-175
lines changed

6 files changed

+91
-175
lines changed

scripts/generate-readme/package-lock.json

-51
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

scripts/generate-readme/package.json

-5
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,14 @@
33
"version": "0.1.0",
44
"description": "",
55
"main": "src/index.js",
6-
"scripts": {
7-
"test": ""
8-
},
96
"author": "",
107
"license": "MIT",
118
"dependencies": {
129
"@babel/core": "^7.2.2",
1310
"@babel/preset-env": "^7.3.1",
1411
"@babel/preset-react": "^7.0.0",
1512
"jsdoc-to-markdown": "^4.0.1",
16-
"marked": "^0.6.0",
1713
"pkg-dep-tree": "^0.2.1",
18-
"prismjs": "^1.15.0",
1914
"react": "^16.8.2",
2015
"react-docgen": "^3.0.0",
2116
"react-dom": "^16.8.2"

scripts/generate-readme/src/config.js

-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
// Dependencies
21
const Path = require( 'path' );
3-
const Fs = require( 'fs' );
42

53
module.exports = {
64
"workspace": Path.join( __dirname, `/../../../components` ),
7-
"prismTheme": Fs.readFileSync( Path.join( __dirname, '/../node_modules/prismjs/themes/prism-dark.css' ), 'utf-8' )
85
}

scripts/generate-readme/src/helper.js

+29-14
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,43 @@
1-
// Dependencies
21
const Fs = require( 'fs' );
32
const Fsp = Fs.promises;
43

4+
55
/**
6-
* IsDirectory - Check if a location is a file or a directory
6+
* IsDirectory - Check if a path location is a directory.
77
*
88
* @param {string} source - The location of the file
99
*/
1010
const IsDirectory = ( source ) => {
11-
return Fs.lstatSync( source ).isDirectory();
11+
try {
12+
return Fs.lstatSync( source ).isDirectory();
13+
}
14+
catch( error ) {
15+
console.error( error );
16+
}
17+
return false;
1218
}
1319

20+
1421
/**
15-
* GetFolder - Gets all the folders inside a location
22+
* GetFolder - Gets all the folders inside a path location.
1623
*
17-
* @param {*} folderLocation - The location of the folder to get folders from
24+
* @param {string} folderLocation - The path location of the root folder.
1825
*/
19-
const GetFolders = async ( folderLocation ) => {
20-
// Get the contents inside the folder
21-
const folderContents = await Fsp.readdir( folderLocation, { withFileTypes: true } );
22-
23-
// Filter the contents and return only directories
24-
return folderContents.map( source => `${ folderLocation }/${ source.name }` ).filter( IsDirectory );
26+
const GetFolders = async ( folderLocation ) => {
27+
try{
28+
// Get the contents inside the folder
29+
const folderContents = await Fsp.readdir( folderLocation, { withFileTypes: true } );
30+
31+
// Filter the contents and return only directories
32+
return folderContents
33+
.map( source => `${ folderLocation }/${ source.name }` )
34+
.filter( IsDirectory );
35+
}
36+
catch( error ) {
37+
console.error( error );
38+
}
39+
40+
return [];
2541
}
2642

2743

@@ -35,12 +51,11 @@ const FileExists = async ( fileLocation ) => {
3551
return ( await Fsp.stat( fileLocation ) ).isFile()
3652
}
3753
catch( error ) {
38-
console.error( error );
54+
console.error( `❌ Bollocks! It looks like: ${ fileLocation } doesn't exist!` );
3955
}
4056
return false;
4157
}
4258

4359

44-
4560
module.exports.GetFolders = GetFolders;
46-
module.exports.FileExists = FileExists;
61+
module.exports.FileExists = FileExists;

scripts/generate-readme/src/index.js

+42-17
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,34 @@ const Path = require( 'path' );
55
const JSDoc = require( 'jsdoc-to-markdown' );
66
const { GetMonoDepTree, PrintTreeTrim } = require( 'pkg-dep-tree' );
77

8+
89
// Local Dependencies
9-
const { GetFolders } = require( './helper' );
10+
const { GetFolders, FileExists } = require( './helper' );
1011
const Config = require( './config' );
1112
const { RenderHTML, RenderReactPropsMarkdownTable } = require( './render' );
1213

1314

14-
// Start thing
15-
( async () => {
15+
// Start da fing
16+
( async () => {
1617
let components = await GetFolders( Config.workspace );
17-
18-
let packageMeta = JSON.parse( await Fsp.readFile( `${components[ 0 ]}/package.json` ) );
19-
let packageNamePlain = packageMeta.name.split('/')[1]
18+
// @todo - Test with a single component...
19+
let component = components[ 0 ];
2020

21-
let sourceFiles = { "files": `${ components[ 0 ] }/src/js/react.js` }
22-
let sourceFileContent = await Fsp.readFile( sourceFiles.files, `utf-8` );
21+
let hasJS = await FileExists( `${ component }/src/js/module.js` );
22+
let hasReact = await FileExists( `${ component }/src/js/react.js` );
23+
let hasJquery = await FileExists( `${ component }/src/js/jquery.js` );
2324

24-
// console.log( ReactDocs.parse( sourceFileContent ) );
25+
let packageMeta = JSON.parse( await Fsp.readFile( `${ component }/package.json` ) );
26+
let packageNamePlain = packageMeta.name.split('/')[1]
27+
28+
let sourceFiles;
29+
let sourceFileContent;
30+
31+
if ( hasReact ){
32+
sourceFiles = { "files": `${ component }/src/js/react.js` }
33+
sourceFileContent = await Fsp.readFile( sourceFiles.files, `utf-8` );
34+
}
35+
2536
let readme = `${packageMeta.name}
2637
---
2738
${packageMeta.description}
@@ -36,27 +47,41 @@ npm i ${packageMeta.name}
3647
\`\`\`
3748
3849
## Usage
39-
### HTML
50+
${ hasReact
51+
? `### HTML
4052
\`\`\`html
41-
${ RenderHTML( sourceFileContent ) }
53+
${ RenderHTML( sourceFileContent ) }todo
4254
\`\`\`
43-
4455
### React
4556
\`\`\`jsx
4657
todo
47-
\`\`\`
58+
\`\`\``
59+
: ``}
60+
61+
${ hasJquery
62+
? `### jQuery
63+
\`\`\`jsx
64+
todo
65+
\`\`\``
66+
: ``}
4867
4968
## Props
5069
${ await RenderReactPropsMarkdownTable( sourceFileContent ) }
5170
52-
## Dependency Graph
71+
## Dependency graph
5372
\`\`\`bash
5473
${ packageNamePlain }
5574
${ await( PrintTreeTrim( await GetMonoDepTree( Config.workspace, packageNamePlain, '@gov.au') ) ) }
5675
\`\`\`
5776
58-
## Test
59-
https://auds.service.gov.au/packages/${packageNamePlain}/tests/site/
77+
## Latest updates
78+
For the latest release notes, check out the [CHANGELOG.md](https://github.com/govau/design-system-components/blob/master/packages/${ packageNamePlain }/CHANGELOG.md) file.
79+
80+
## Test preview
81+
https://auds.service.gov.au/packages/${ packageNamePlain }/tests/site/
82+
83+
## License
84+
Copyright (c) Commonwealth of Australia. Licensed under [MIT](https://raw.githubusercontent.com/govau/design-system-components/packages/core/master/LICENSE).
6085
`
61-
await Fsp.writeFile( `${components[ 0 ]}/README-GEN.md`, readme )
86+
await Fsp.writeFile( `${ component }/README-GEN.md`, readme ) // @todo - Update output filename.
6287
})();

0 commit comments

Comments
 (0)