refactor(v2): cli and loads (#1317)

* refactor(v2): cli, load

* nits
This commit is contained in:
Endilie Yacop Sucipto 2019-03-29 16:45:20 +07:00 committed by Yangshun Tay
parent d279836c40
commit f96ba2d381
5 changed files with 26 additions and 23 deletions

View file

@ -42,13 +42,11 @@ program
.command('build [siteDir]')
.description('Build website')
.option(
'-sic, --skip-image-compression <skipImageCompression>',
'Skip compression of image assets (default: false)',
'--skip-next-release',
'Skip documents from next release (default = false)',
)
.option('--skip-next-release', 'Skip documents from next release')
.action((siteDir = '.', {skipImageCompression, skipNextRelease}) => {
.action((siteDir = '.', {skipNextRelease}) => {
wrapCommand(build)(path.resolve(siteDir), {
skipImageCompression,
skipNextRelease,
});
});

View file

@ -38,11 +38,11 @@ function compile(config) {
});
}
module.exports = async function build(siteDir, options) {
module.exports = async function build(siteDir, cliOptions = {}) {
process.env.NODE_ENV = 'production';
console.log('Build command invoked ...');
const props = await load(siteDir, options.skipNextRelease);
const props = await load(siteDir, cliOptions);
// Apply user webpack config.
const {outDir, plugins} = props;

View file

@ -12,10 +12,13 @@ const createOrder = require('./order');
const loadSidebars = require('./sidebars');
const processMetadata = require('./metadata');
async function loadDocs(
{siteDir, docsDir, env, siteConfig},
async function loadDocs({
siteDir,
docsDir,
env,
siteConfig,
skipNextRelease = false,
) {
}) {
// @tested - load all sidebars including versioned sidebars
const docsSidebars = loadSidebars({siteDir, env});

View file

@ -17,7 +17,7 @@ const loadRoutes = require('./routes');
const loadPlugins = require('./plugins');
const constants = require('../constants');
module.exports = async function load(siteDir, skipNextRelease = false) {
module.exports = async function load(siteDir, cliOptions = {}) {
const generatedFilesDir = path.resolve(
siteDir,
constants.GENERATED_FILES_DIR_NAME,
@ -42,15 +42,14 @@ module.exports = async function load(siteDir, skipNextRelease = false) {
// Docs
const docsDir = path.resolve(siteDir, '..', siteConfig.customDocsPath);
const {docsMetadatas, docsSidebars} = await loadDocs(
{
const {skipNextRelease} = cliOptions;
const {docsMetadatas, docsSidebars} = await loadDocs({
siteDir,
docsDir,
env,
siteConfig,
},
skipNextRelease,
);
});
await generate(
generatedFilesDir,
'docsMetadatas.js',

View file

@ -177,10 +177,13 @@ describe('loadDocs', () => {
test('versioned website with skip next release', async () => {
const props = await loadSetup('versioned');
const {siteDir, docsDir, versionedDir, env, siteConfig} = props;
const {docsMetadatas} = await loadDocs(
{siteDir, docsDir, env, siteConfig},
true,
);
const {docsMetadatas} = await loadDocs({
siteDir,
docsDir,
env,
siteConfig,
skipNextRelease: true,
});
expect(docsMetadatas['version-1.0.0-foo/bar']).toEqual({
category: 'Test',
id: 'version-1.0.0-foo/bar',