refactor(content-docs): move isCategoriesShorthand to utils (#5962)

This commit is contained in:
Armano 2021-11-18 01:25:07 +01:00 committed by GitHub
parent ac1df888ae
commit 2f7d6fea1e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 39 additions and 29 deletions

View file

@ -15,7 +15,7 @@ import {
} from '../docs'; } from '../docs';
import {loadSidebars} from '../sidebars'; import {loadSidebars} from '../sidebars';
import {readVersionsMetadata} from '../versions'; import {readVersionsMetadata} from '../versions';
import { import type {
DocFile, DocFile,
DocMetadataBase, DocMetadataBase,
MetadataOptions, MetadataOptions,
@ -24,7 +24,7 @@ import {
EditUrlFunction, EditUrlFunction,
DocNavLink, DocNavLink,
} from '../types'; } from '../types';
import {LoadContext} from '@docusaurus/types'; import type {LoadContext} from '@docusaurus/types';
import {DEFAULT_PLUGIN_ID} from '@docusaurus/core/lib/constants'; import {DEFAULT_PLUGIN_ID} from '@docusaurus/core/lib/constants';
import {DEFAULT_OPTIONS} from '../options'; import {DEFAULT_OPTIONS} from '../options';
import {Optional} from 'utility-types'; import {Optional} from 'utility-types';

View file

@ -14,7 +14,7 @@ import fs from 'fs-extra';
import pluginContentDocs from '../index'; import pluginContentDocs from '../index';
import {loadContext} from '@docusaurus/core/src/server/index'; import {loadContext} from '@docusaurus/core/src/server/index';
import {applyConfigureWebpack} from '@docusaurus/core/src/webpack/utils'; import {applyConfigureWebpack} from '@docusaurus/core/src/webpack/utils';
import {RouteConfig} from '@docusaurus/types'; import type {RouteConfig} from '@docusaurus/types';
import {posixPath} from '@docusaurus/utils'; import {posixPath} from '@docusaurus/utils';
import {sortConfig} from '@docusaurus/core/src/server/plugins'; import {sortConfig} from '@docusaurus/core/src/server/plugins';
import {DEFAULT_PLUGIN_ID} from '@docusaurus/core/lib/constants'; import {DEFAULT_PLUGIN_ID} from '@docusaurus/core/lib/constants';

View file

@ -15,7 +15,7 @@ import {
import {DEFAULT_OPTIONS} from '../options'; import {DEFAULT_OPTIONS} from '../options';
import {DEFAULT_PLUGIN_ID} from '@docusaurus/core/lib/constants'; import {DEFAULT_PLUGIN_ID} from '@docusaurus/core/lib/constants';
import {PluginOptions, VersionMetadata} from '../types'; import {PluginOptions, VersionMetadata} from '../types';
import {I18n} from '@docusaurus/types'; import type {I18n} from '@docusaurus/types';
const DefaultI18N: I18n = { const DefaultI18N: I18n = {
currentLocale: 'en', currentLocale: 'en',

View file

@ -12,7 +12,7 @@ import {
FrontMatterTOCHeadingLevels, FrontMatterTOCHeadingLevels,
validateFrontMatter, validateFrontMatter,
} from '@docusaurus/utils-validation'; } from '@docusaurus/utils-validation';
import {DocFrontMatter} from './types'; import type {DocFrontMatter} from './types';
// NOTE: we don't add any default value on purpose here // NOTE: we don't add any default value on purpose here
// We don't want default values to magically appear in doc metadata and props // We don't want default values to magically appear in doc metadata and props

View file

@ -19,7 +19,7 @@ import {
Globby, Globby,
normalizeFrontMatterTags, normalizeFrontMatterTags,
} from '@docusaurus/utils'; } from '@docusaurus/utils';
import {LoadContext} from '@docusaurus/types'; import type {LoadContext} from '@docusaurus/types';
import {getFileLastUpdate} from './lastUpdate'; import {getFileLastUpdate} from './lastUpdate';
import { import {

View file

@ -5,7 +5,12 @@
* LICENSE file in the root directory of this source tree. * LICENSE file in the root directory of this source tree.
*/ */
import {DocMetadata, GlobalDoc, LoadedVersion, GlobalVersion} from './types'; import type {
DocMetadata,
GlobalDoc,
LoadedVersion,
GlobalVersion,
} from './types';
export function toGlobalDataDoc(doc: DocMetadata): GlobalDoc { export function toGlobalDataDoc(doc: DocMetadata): GlobalDoc {
return { return {

View file

@ -20,7 +20,7 @@ import {
addTrailingPathSeparator, addTrailingPathSeparator,
createAbsoluteFilePathMatcher, createAbsoluteFilePathMatcher,
} from '@docusaurus/utils'; } from '@docusaurus/utils';
import {LoadContext, Plugin, RouteConfig} from '@docusaurus/types'; import type {LoadContext, Plugin, RouteConfig} from '@docusaurus/types';
import {loadSidebars} from './sidebars'; import {loadSidebars} from './sidebars';
import {CategoryMetadataFilenamePattern} from './sidebars/generator'; import {CategoryMetadataFilenamePattern} from './sidebars/generator';
import {readVersionDocs, processDocMetadata, handleNavigation} from './docs'; import {readVersionDocs, processDocMetadata, handleNavigation} from './docs';
@ -39,7 +39,7 @@ import {
DocsMarkdownOption, DocsMarkdownOption,
VersionTag, VersionTag,
} from './types'; } from './types';
import {RuleSetRule} from 'webpack'; import type {RuleSetRule} from 'webpack';
import {cliDocsVersionCommand} from './cli'; import {cliDocsVersionCommand} from './cli';
import {VERSIONS_JSON_FILE} from './constants'; import {VERSIONS_JSON_FILE} from './constants';
import {keyBy, mapValues} from 'lodash'; import {keyBy, mapValues} from 'lodash';

View file

@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree. * LICENSE file in the root directory of this source tree.
*/ */
import {NumberPrefixParser} from './types'; import type {NumberPrefixParser} from './types';
// Best-effort to avoid parsing some patterns as number prefix // Best-effort to avoid parsing some patterns as number prefix
const IgnoredPrefixPatterns = (function () { const IgnoredPrefixPatterns = (function () {

View file

@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the * This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree. * LICENSE file in the root directory of this source tree.
*/ */
import {PluginOptions} from './types'; import type {PluginOptions} from './types';
import { import {
Joi, Joi,
RemarkPluginsSchema, RemarkPluginsSchema,
@ -14,7 +14,10 @@ import {
} from '@docusaurus/utils-validation'; } from '@docusaurus/utils-validation';
import {GlobExcludeDefault} from '@docusaurus/utils'; import {GlobExcludeDefault} from '@docusaurus/utils';
import {OptionValidationContext, ValidationResult} from '@docusaurus/types'; import type {
OptionValidationContext,
ValidationResult,
} from '@docusaurus/types';
import chalk from 'chalk'; import chalk from 'chalk';
import admonitions from 'remark-admonitions'; import admonitions from 'remark-admonitions';
import {DefaultSidebarItemsGenerator} from './sidebars/generator'; import {DefaultSidebarItemsGenerator} from './sidebars/generator';

View file

@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree. * LICENSE file in the root directory of this source tree.
*/ */
import {LoadedVersion, VersionTag, DocMetadata} from './types'; import type {LoadedVersion, VersionTag, DocMetadata} from './types';
import type { import type {
SidebarItemDoc, SidebarItemDoc,
SidebarItemLink, SidebarItemLink,

View file

@ -6,7 +6,7 @@
*/ */
import type {SidebarOptions} from '../types'; import type {SidebarOptions} from '../types';
import { import type {
NormalizedSidebarItem, NormalizedSidebarItem,
NormalizedSidebar, NormalizedSidebar,
NormalizedSidebars, NormalizedSidebars,
@ -15,9 +15,9 @@ import {
SidebarItemConfig, SidebarItemConfig,
SidebarConfig, SidebarConfig,
SidebarsConfig, SidebarsConfig,
isCategoriesShorthand,
} from './types'; } from './types';
import {mapValues} from 'lodash'; import {mapValues} from 'lodash';
import {isCategoriesShorthand} from './utils';
function normalizeCategoriesShorthand( function normalizeCategoriesShorthand(
sidebar: SidebarCategoriesShorthand, sidebar: SidebarCategoriesShorthand,

View file

@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree. * LICENSE file in the root directory of this source tree.
*/ */
import {Optional} from 'utility-types'; import type {Optional} from 'utility-types';
import type { import type {
DocMetadataBase, DocMetadataBase,
VersionMetadata, VersionMetadata,
@ -56,12 +56,6 @@ export type SidebarCategoriesShorthand = {
[sidebarCategory: string]: SidebarItemConfig[]; [sidebarCategory: string]: SidebarItemConfig[];
}; };
export function isCategoriesShorthand(
item: SidebarItemConfig,
): item is SidebarCategoriesShorthand {
return typeof item !== 'string' && !item.type;
}
export type SidebarItemConfig = export type SidebarItemConfig =
| SidebarItemDoc | SidebarItemDoc
| SidebarItemLink | SidebarItemLink

View file

@ -13,10 +13,18 @@ import type {
SidebarItemLink, SidebarItemLink,
SidebarItemDoc, SidebarItemDoc,
SidebarItemType, SidebarItemType,
SidebarCategoriesShorthand,
SidebarItemConfig,
} from './types'; } from './types';
import {mapValues, difference} from 'lodash'; import {mapValues, difference} from 'lodash';
import {getElementsAround, toMessageRelativeFilePath} from '@docusaurus/utils'; import {getElementsAround, toMessageRelativeFilePath} from '@docusaurus/utils';
export function isCategoriesShorthand(
item: SidebarItemConfig,
): item is SidebarCategoriesShorthand {
return typeof item !== 'string' && !item.type;
}
export function transformSidebarItems( export function transformSidebarItems(
sidebar: Sidebar, sidebar: Sidebar,
updateFn: (item: SidebarItem) => SidebarItem, updateFn: (item: SidebarItem) => SidebarItem,

View file

@ -6,7 +6,7 @@
*/ */
import {Joi, URISchema} from '@docusaurus/utils-validation'; import {Joi, URISchema} from '@docusaurus/utils-validation';
import { import type {
SidebarItemConfig, SidebarItemConfig,
SidebarCategoriesShorthand, SidebarCategoriesShorthand,
SidebarItemBase, SidebarItemBase,
@ -15,8 +15,8 @@ import {
SidebarItemLink, SidebarItemLink,
SidebarItemCategoryConfig, SidebarItemCategoryConfig,
SidebarsConfig, SidebarsConfig,
isCategoriesShorthand,
} from './types'; } from './types';
import {isCategoriesShorthand} from './utils';
const sidebarItemBaseSchema = Joi.object<SidebarItemBase>({ const sidebarItemBaseSchema = Joi.object<SidebarItemBase>({
className: Joi.string(), className: Joi.string(),

View file

@ -15,7 +15,7 @@ import {
DefaultNumberPrefixParser, DefaultNumberPrefixParser,
stripPathNumberPrefixes, stripPathNumberPrefixes,
} from './numberPrefix'; } from './numberPrefix';
import {NumberPrefixParser} from './types'; import type {NumberPrefixParser} from './types';
export default function getSlug({ export default function getSlug({
baseID, baseID,

View file

@ -6,7 +6,7 @@
*/ */
import {groupTaggedItems} from '@docusaurus/utils'; import {groupTaggedItems} from '@docusaurus/utils';
import {VersionTags, DocMetadata} from './types'; import type {VersionTags, DocMetadata} from './types';
import {mapValues} from 'lodash'; import {mapValues} from 'lodash';
export function getVersionTags(docs: DocMetadata[]): VersionTags { export function getVersionTags(docs: DocMetadata[]): VersionTags {

View file

@ -14,7 +14,7 @@ import {
transformSidebarItems, transformSidebarItems,
collectSidebarLinks, collectSidebarLinks,
} from './sidebars/utils'; } from './sidebars/utils';
import { import type {
TranslationFileContent, TranslationFileContent,
TranslationFile, TranslationFile,
TranslationFiles, TranslationFiles,

View file

@ -7,7 +7,7 @@
import path from 'path'; import path from 'path';
import fs from 'fs-extra'; import fs from 'fs-extra';
import { import type {
PluginOptions, PluginOptions,
VersionBanner, VersionBanner,
VersionMetadata, VersionMetadata,
@ -22,7 +22,7 @@ import {
} from './constants'; } from './constants';
import {DEFAULT_PLUGIN_ID} from '@docusaurus/core/lib/constants'; import {DEFAULT_PLUGIN_ID} from '@docusaurus/core/lib/constants';
import {LoadContext} from '@docusaurus/types'; import type {LoadContext} from '@docusaurus/types';
import {getPluginI18nPath, normalizeUrl, posixPath} from '@docusaurus/utils'; import {getPluginI18nPath, normalizeUrl, posixPath} from '@docusaurus/utils';
import {difference} from 'lodash'; import {difference} from 'lodash';
import {resolveSidebarPathOption} from './sidebars'; import {resolveSidebarPathOption} from './sidebars';