From c132c7445fbd74c0df1aba5a39c13350cec646dd Mon Sep 17 00:00:00 2001 From: endiliey Date: Sat, 15 Sep 2018 15:15:30 +0800 Subject: [PATCH] chore: naming consistency --- lib/core/App.js | 6 +++--- lib/load/docs/index.js | 31 +++++++++++++++++-------------- lib/load/index.js | 19 ++++++++++--------- lib/load/pages.js | 4 ++-- lib/load/routes.js | 6 +++--- lib/theme/Docs/index.js | 10 +++++----- lib/theme/Layout/index.js | 6 +++--- lib/webpack/server.js | 6 +++--- test/load/config.test.js | 2 ++ test/load/docs/index.test.js | 16 ++++++++-------- test/load/pages.test.js | 12 ++++++------ 11 files changed, 62 insertions(+), 56 deletions(-) diff --git a/lib/core/App.js b/lib/core/App.js index c2970e4d3f..1de9335253 100644 --- a/lib/core/App.js +++ b/lib/core/App.js @@ -1,9 +1,9 @@ import {renderRoutes} from 'react-router-config'; import routes from '@generated/routes'; // eslint-disable-line -import docsMetadata from '@generated/docsMetadata'; // eslint-disable-line -import pagesMetadata from '@generated/pagesMetadata'; // eslint-disable-line +import docsMetadatas from '@generated/docsMetadatas'; // eslint-disable-line +import pagesMetadatas from '@generated/pagesMetadatas'; // eslint-disable-line import siteConfig from '@generated/siteConfig'; //eslint-disable-line export default () => - renderRoutes(routes, {docsMetadata, pagesMetadata, siteConfig}); + renderRoutes(routes, {docsMetadatas, pagesMetadatas, siteConfig}); diff --git a/lib/load/docs/index.js b/lib/load/docs/index.js index 6c4fcef18a..9cd9ad496d 100644 --- a/lib/load/docs/index.js +++ b/lib/load/docs/index.js @@ -7,10 +7,10 @@ const {getSubFolder, idx} = require('../utils'); async function loadDocs({siteDir, docsDir, env, siteConfig}) { // @tested - load all sidebars including versioned sidebars - const allSidebars = loadSidebars({siteDir, env}); + const docsSidebars = loadSidebars({siteDir, env}); // @tested - build the docs ordering such as next, previous, category and sidebar - const order = createOrder(allSidebars); + const order = createOrder(docsSidebars); /* Settle versions & translations from environment */ const translationEnabled = idx(env, ['translation', 'enabled']); @@ -24,7 +24,7 @@ async function loadDocs({siteDir, docsDir, env, siteConfig}) { (versioningEnabled && idx(env, ['versioning', 'versions'])) || []; /* Prepare metadata container */ - const metadatas = {}; + const docsMetadatas = {}; /* metadata for default docs files */ const docsFiles = await globby(['**/*.md'], { @@ -49,7 +49,7 @@ async function loadDocs({siteDir, docsDir, env, siteConfig}) { order, siteConfig ); - metadatas[metadata.id] = metadata; + docsMetadatas[metadata.id] = metadata; }) ); @@ -80,7 +80,7 @@ async function loadDocs({siteDir, docsDir, env, siteConfig}) { order, siteConfig ); - metadatas[metadata.id] = metadata; + docsMetadatas[metadata.id] = metadata; }) ); @@ -98,27 +98,30 @@ async function loadDocs({siteDir, docsDir, env, siteConfig}) { order, siteConfig ); - metadatas[metadata.id] = metadata; + docsMetadatas[metadata.id] = metadata; }) ); /* Get the titles of the previous and next ids so that we can use them */ - Object.keys(metadatas).forEach(currentID => { - const previousID = idx(metadatas, [currentID, 'previous']); + Object.keys(docsMetadatas).forEach(currentID => { + const previousID = idx(docsMetadatas, [currentID, 'previous']); if (previousID) { - const previousTitle = idx(metadatas, [previousID, 'title']); - metadatas[currentID].previous_title = previousTitle || 'Previous'; + const previousTitle = idx(docsMetadatas, [previousID, 'title']); + docsMetadatas[currentID].previous_title = previousTitle || 'Previous'; } - const nextID = idx(metadatas, [currentID, 'next']); + const nextID = idx(docsMetadatas, [currentID, 'next']); if (nextID) { - const nextTitle = idx(metadatas, [nextID, 'title']); - metadatas[currentID].next_title = nextTitle || 'Next'; + const nextTitle = idx(docsMetadatas, [nextID, 'title']); + docsMetadatas[currentID].next_title = nextTitle || 'Next'; } }); - return metadatas; + return { + docsSidebars, + docsMetadatas + }; } module.exports = loadDocs; diff --git a/lib/load/index.js b/lib/load/index.js index 691e1a1232..9be4bbc8a2 100644 --- a/lib/load/index.js +++ b/lib/load/index.js @@ -20,15 +20,15 @@ module.exports = async function load(siteDir) { // docs const docsDir = path.resolve(siteDir, '..', siteConfig.customDocsPath); - const docsMetadata = await loadDocs({siteDir, docsDir, env, siteConfig}); + const {docsMetadatas, docsSidebars} = await loadDocs({siteDir, docsDir, env, siteConfig}); await generate( - 'docsMetadata.js', - `export default ${JSON.stringify(docsMetadata, null, 2)};` + 'docsMetadatas.js', + `export default ${JSON.stringify(docsMetadatas, null, 2)};` ); /* Create source to metadata mapping */ const sourceToMetadata = {}; - Object.values(docsMetadata).forEach( + Object.values(docsMetadatas).forEach( ({source, version, permalink, language}) => { sourceToMetadata[source] = { version, @@ -40,10 +40,10 @@ module.exports = async function load(siteDir) { // pages const pagesDir = path.resolve(siteDir, 'pages'); - const pagesMetadata = await loadPages(pagesDir); + const pagesMetadatas = await loadPages(pagesDir); await generate( - 'pagesMetadata.js', - `export default ${JSON.stringify(pagesMetadata, null, 2)};` + 'pagesMetadatas.js', + `export default ${JSON.stringify(pagesMetadatas, null, 2)};` ); // resolve outDir @@ -60,10 +60,11 @@ module.exports = async function load(siteDir) { siteConfig, siteDir, docsDir, - docsMetadata, + docsMetadatas, + docsSidebars, env, pagesDir, - pagesMetadata, + pagesMetadatas, outDir, themePath, baseUrl, diff --git a/lib/load/pages.js b/lib/load/pages.js index e0e373647a..5c1b46f6da 100644 --- a/lib/load/pages.js +++ b/lib/load/pages.js @@ -6,13 +6,13 @@ async function loadPages(pagesDir) { cwd: pagesDir }); - const pagesMetadata = await Promise.all( + const pagesMetadatas = await Promise.all( pagesFiles.map(async source => ({ path: encodePath(fileToPath(source)), source })) ); - return pagesMetadata; + return pagesMetadatas; } module.exports = loadPages; diff --git a/lib/load/routes.js b/lib/load/routes.js index a3476c5327..2c63a747d3 100644 --- a/lib/load/routes.js +++ b/lib/load/routes.js @@ -1,4 +1,4 @@ -async function genRoutesConfig({docsMetadata = {}, pagesMetadata = []}) { +async function genRoutesConfig({docsMetadatas = {}, pagesMetadatas = []}) { function genDocsRoute(metadata) { const {permalink, source} = metadata; return ` @@ -38,7 +38,7 @@ async function genRoutesConfig({docsMetadata = {}, pagesMetadata = []}) { component: NotFound }`; - const docsRoutes = Object.values(docsMetadata) + const docsRoutes = Object.values(docsMetadatas) .map(genDocsRoute) .join(','); @@ -48,7 +48,7 @@ async function genRoutesConfig({docsMetadata = {}, pagesMetadata = []}) { `import Loading from '@theme/Loading';\n` + `import Docs from '@theme/Docs';\n` + `import NotFound from '@theme/NotFound';\n` + - `const routes = [${docsRoutes},${pagesMetadata + `const routes = [${docsRoutes},${pagesMetadatas .map(genPagesRoute) .join(',')}${notFoundRoute}\n];\n` + `export default routes;\n` diff --git a/lib/theme/Docs/index.js b/lib/theme/Docs/index.js index 0be8baf454..6b9a4eec8a 100644 --- a/lib/theme/Docs/index.js +++ b/lib/theme/Docs/index.js @@ -7,7 +7,7 @@ import Layout from '@theme/Layout'; // eslint-disable-line export default class Docs extends React.Component { render() { - const {route, siteConfig, docsMetadata, metadata} = this.props; + const {route, siteConfig, docsMetadatas, metadata} = this.props; return ( @@ -15,16 +15,16 @@ export default class Docs extends React.Component {
{metadata.previous && - docsMetadata[metadata.previous] && ( - + docsMetadatas[metadata.previous] && ( + ← {metadata.previous_title} )}
{metadata.next && - docsMetadata[metadata.next] && ( - + docsMetadatas[metadata.next] && ( + {metadata.next_title} → )} diff --git a/lib/theme/Layout/index.js b/lib/theme/Layout/index.js index e3e29ac8ad..d96ab6d10c 100644 --- a/lib/theme/Layout/index.js +++ b/lib/theme/Layout/index.js @@ -5,11 +5,11 @@ import styles from './styles.css'; /* eslint-disable react/prefer-stateless-function */ export default class Layout extends React.Component { render() { - const {children, pagesMetadata, docsMetadata = {}, location} = this.props; - const docsLinks = Object.values(docsMetadata).map(data => ({ + const {children, pagesMetadatas, docsMetadatas = {}, location} = this.props; + const docsLinks = Object.values(docsMetadatas).map(data => ({ path: `${data.permalink}` })); - const routeLinks = [...pagesMetadata, ...docsLinks].map( + const routeLinks = [...pagesMetadatas, ...docsLinks].map( data => data.path !== location.pathname && (
  • diff --git a/lib/webpack/server.js b/lib/webpack/server.js index cbdf7bb744..f6aacc1c22 100644 --- a/lib/webpack/server.js +++ b/lib/webpack/server.js @@ -14,13 +14,13 @@ module.exports = function createServerConfig(props) { // Workaround for Webpack 4 Bug (https://github.com/webpack/webpack/issues/6522) config.output.globalObject('this'); - const {siteConfig, docsMetadata, pagesMetadata} = props; + const {siteConfig, docsMetadatas, pagesMetadatas} = props; // static site generator webpack plugin - const docsLinks = Object.values(docsMetadata).map(data => ({ + const docsLinks = Object.values(docsMetadatas).map(data => ({ path: `${data.permalink}` })); - const paths = [...docsLinks, ...pagesMetadata].map(data => data.path); + const paths = [...docsLinks, ...pagesMetadatas].map(data => data.path); config.plugin('siteGenerator').use(staticSiteGenerator, [ { entry: 'main', diff --git a/test/load/config.test.js b/test/load/config.test.js index 41d1ed0fc6..0288acfe39 100644 --- a/test/load/config.test.js +++ b/test/load/config.test.js @@ -8,6 +8,8 @@ describe('loadConfig', () => { expect(config).toEqual({ baseUrl: '/', organizationName: 'endiliey', + customDocsPath: 'docs', + docsUrl: 'docs', projectName: 'hello', tagline: 'Hello World', title: 'Hello' diff --git a/test/load/docs/index.test.js b/test/load/docs/index.test.js index c90ebb4beb..cca7155674 100644 --- a/test/load/docs/index.test.js +++ b/test/load/docs/index.test.js @@ -5,28 +5,28 @@ describe('loadDocs', () => { test('simple website', async () => { const props = await loadSetup('simple'); const {siteDir, docsDir, env, siteConfig} = props; - const docsMetadata = await loadDocs({siteDir, docsDir, env, siteConfig}); - expect(docsMetadata).toMatchSnapshot(); + const {docsMetadatas} = await loadDocs({siteDir, docsDir, env, siteConfig}); + expect(docsMetadatas).toMatchSnapshot(); }); test('versioned website', async () => { const props = await loadSetup('versioned'); const {siteDir, docsDir, env, siteConfig} = props; - const docsMetadata = await loadDocs({siteDir, docsDir, env, siteConfig}); - expect(docsMetadata).toMatchSnapshot(); + const {docsMetadatas} = await loadDocs({siteDir, docsDir, env, siteConfig}); + expect(docsMetadatas).toMatchSnapshot(); }); test('versioned & translated website', async () => { const props = await loadSetup('transversioned'); const {siteDir, docsDir, env, siteConfig} = props; - const docsMetadata = await loadDocs({siteDir, docsDir, env, siteConfig}); - expect(docsMetadata).toMatchSnapshot(); + const {docsMetadatas} = await loadDocs({siteDir, docsDir, env, siteConfig}); + expect(docsMetadatas).toMatchSnapshot(); }); test('translated website', async () => { const props = await loadSetup('translated'); const {siteDir, docsDir, env, siteConfig} = props; - const docsMetadata = await loadDocs({siteDir, docsDir, env, siteConfig}); - expect(docsMetadata).toMatchSnapshot(); + const {docsMetadatas} = await loadDocs({siteDir, docsDir, env, siteConfig}); + expect(docsMetadatas).toMatchSnapshot(); }); }); diff --git a/test/load/pages.test.js b/test/load/pages.test.js index 90a01c22b7..4f43cf2779 100644 --- a/test/load/pages.test.js +++ b/test/load/pages.test.js @@ -4,9 +4,9 @@ import path from 'path'; describe('loadPages', () => { test('valid pages', async () => { const pagesDir = path.join(__dirname, '__fixtures__', 'simple-pages'); - const pagesMetadata = await loadPages(pagesDir); - pagesMetadata.sort((a, b) => a.path > b.path); // because it was unordered - expect(pagesMetadata).toEqual([ + const pagesMetadatas = await loadPages(pagesDir); + pagesMetadatas.sort((a, b) => a.path > b.path); // because it was unordered + expect(pagesMetadatas).toEqual([ { path: '/', source: 'index.js' @@ -24,12 +24,12 @@ describe('loadPages', () => { source: 'foo/index.js' } ]); - expect(pagesMetadata).not.toBeNull(); + expect(pagesMetadatas).not.toBeNull(); }); test('invalid pages', async () => { const nonExistingDir = path.join(__dirname, '__fixtures__', 'nonExisting'); - const pagesMetadata = await loadPages(nonExistingDir); - expect(pagesMetadata).toEqual([]); + const pagesMetadatas = await loadPages(nonExistingDir); + expect(pagesMetadatas).toEqual([]); }); });