From 043e2d8d2f1553926e4051db574a7ddb2437bb2d Mon Sep 17 00:00:00 2001 From: Adam Bradley Date: Wed, 5 Aug 2020 10:59:43 -0500 Subject: [PATCH] feat(docs): remove deprecated 'docs' type Use 'docs-readme' instead. --- src/compiler/config/outputs/validate-docs.ts | 16 ++------- .../config/test/validate-docs.spec.ts | 35 ++++++++----------- src/compiler/output-targets/output-utils.ts | 7 ++-- src/declarations/stencil-public-compiler.ts | 2 +- 4 files changed, 20 insertions(+), 40 deletions(-) diff --git a/src/compiler/config/outputs/validate-docs.ts b/src/compiler/config/outputs/validate-docs.ts index ccf47537389..d9a262fa65b 100644 --- a/src/compiler/config/outputs/validate-docs.ts +++ b/src/compiler/config/outputs/validate-docs.ts @@ -27,14 +27,14 @@ export const validateDocs = (config: d.Config, diagnostics: d.Diagnostic[], user if (config.flags.docs || config.flags.task === 'docs') { if (!userOutputs.some(isOutputTargetDocsReadme)) { // didn't provide a docs config, so let's add one - docsOutputs.push(validateReadmeOutputTarget(config, diagnostics, { type: 'docs-readme' })); + docsOutputs.push(validateReadmeOutputTarget(config, { type: 'docs-readme' })); } } // readme docs const readmeDocsOutputs = userOutputs.filter(isOutputTargetDocsReadme); readmeDocsOutputs.forEach(readmeDocsOutput => { - docsOutputs.push(validateReadmeOutputTarget(config, diagnostics, readmeDocsOutput)); + docsOutputs.push(validateReadmeOutputTarget(config, readmeDocsOutput)); }); // custom docs @@ -51,17 +51,7 @@ export const validateDocs = (config: d.Config, diagnostics: d.Diagnostic[], user return docsOutputs; }; -const validateReadmeOutputTarget = (config: d.Config, diagnostics: d.Diagnostic[], outputTarget: d.OutputTargetDocsReadme) => { - if (outputTarget.type === 'docs') { - diagnostics.push({ - type: 'config', - level: 'warn', - header: 'Deprecated "docs"', - messageText: `The output target { type: "docs" } has been deprecated, please use "docs-readme" instead.`, - absFilePath: config.configPath, - }); - outputTarget.type = 'docs-readme'; - } +const validateReadmeOutputTarget = (config: d.Config, outputTarget: d.OutputTargetDocsReadme) => { if (typeof outputTarget.dir !== 'string') { outputTarget.dir = config.srcDir; } diff --git a/src/compiler/config/test/validate-docs.spec.ts b/src/compiler/config/test/validate-docs.spec.ts index 648d258c2c9..65798110c1c 100644 --- a/src/compiler/config/test/validate-docs.spec.ts +++ b/src/compiler/config/test/validate-docs.spec.ts @@ -1,42 +1,35 @@ import * as d from '@stencil/core/declarations'; -import { mockLogger, mockStencilSystem } from '@stencil/core/testing'; +import { mockConfig } from '@stencil/core/testing'; import { validateConfig } from '../validate-config'; describe('validateDocs', () => { - let config: d.Config; - const logger = mockLogger(); - const sys = mockStencilSystem(); + let userConfig: d.Config; beforeEach(() => { - config = { - sys: sys, - logger: logger, - rootDir: '/User/some/path/', - flags: {}, - outputTargets: [{ type: 'www' }], - namespace: 'Testing', - }; + userConfig = mockConfig(); }); it('readme docs dir', () => { - config.flags.docs = true; - config.outputTargets.push({ - type: 'docs', - dir: 'my-dir', - } as d.OutputTargetDocsReadme); - validateConfig(config, [], false); + userConfig.flags.docs = true; + userConfig.outputTargets = [ + { + type: 'docs-readme', + dir: 'my-dir', + } as d.OutputTargetDocsReadme, + ]; + const { config } = validateConfig(userConfig); const o = config.outputTargets.find(o => o.type === 'docs-readme') as d.OutputTargetDocsReadme; expect(o.dir).toContain('my-dir'); }); it('default no docs, not remove docs output target', () => { - config.outputTargets.push({ type: 'docs' }); - validateConfig(config, [], false); + userConfig.outputTargets = [{ type: 'docs-readme' }]; + const { config } = validateConfig(userConfig); expect(config.outputTargets.some(o => o.type === 'docs-readme')).toBe(true); }); it('default no docs, no output target', () => { - validateConfig(config, [], false); + const { config } = validateConfig(userConfig); expect(config.outputTargets.some(o => o.type === 'docs-readme')).toBe(false); }); }); diff --git a/src/compiler/output-targets/output-utils.ts b/src/compiler/output-targets/output-utils.ts index bbeb8e5cae0..0775aa8523a 100644 --- a/src/compiler/output-targets/output-utils.ts +++ b/src/compiler/output-targets/output-utils.ts @@ -64,9 +64,9 @@ export const isOutputTargetHydrate = (o: d.OutputTarget): o is d.OutputTargetHyd export const isOutputTargetCustom = (o: d.OutputTarget): o is d.OutputTargetCustom => o.type === CUSTOM; export const isOutputTargetDocs = (o: d.OutputTarget): o is d.OutputTargetDocsJson | d.OutputTargetDocsReadme | d.OutputTargetDocsVscode | d.OutputTargetDocsCustom => - o.type === DOCS || o.type === DOCS_README || o.type === DOCS_JSON || o.type === DOCS_CUSTOM || o.type === DOCS_VSCODE; + o.type === DOCS_README || o.type === DOCS_JSON || o.type === DOCS_CUSTOM || o.type === DOCS_VSCODE; -export const isOutputTargetDocsReadme = (o: d.OutputTarget): o is d.OutputTargetDocsReadme => o.type === DOCS_README || o.type === DOCS; +export const isOutputTargetDocsReadme = (o: d.OutputTarget): o is d.OutputTargetDocsReadme => o.type === DOCS_README; export const isOutputTargetDocsJson = (o: d.OutputTarget): o is d.OutputTargetDocsJson => o.type === DOCS_JSON; @@ -110,7 +110,6 @@ export const DIST_LAZY = `dist-lazy`; export const DIST_LAZY_LOADER = `dist-lazy-loader`; export const DIST_SELF_CONTAINED = `dist-self-contained`; export const DIST_GLOBAL_STYLES = 'dist-global-styles'; -export const DOCS = `docs`; export const DOCS_CUSTOM = 'docs-custom'; export const DOCS_JSON = `docs-json`; export const DOCS_README = `docs-readme`; @@ -130,7 +129,6 @@ export const VALID_TYPES = [ DIST_HYDRATE_SCRIPT, DIST_LAZY, DIST_SELF_CONTAINED, - DOCS, DOCS_JSON, DOCS_README, DOCS_VSCODE, @@ -151,7 +149,6 @@ export const VALID_TYPES_NEXT = [ DIST_HYDRATE_SCRIPT, // DOCS - DOCS, DOCS_JSON, DOCS_README, DOCS_VSCODE, diff --git a/src/declarations/stencil-public-compiler.ts b/src/declarations/stencil-public-compiler.ts index a70d40ec25a..88a816a2f4c 100644 --- a/src/declarations/stencil-public-compiler.ts +++ b/src/declarations/stencil-public-compiler.ts @@ -1731,7 +1731,7 @@ export interface OutputTargetDocsVscode extends OutputTargetBase { } export interface OutputTargetDocsReadme extends OutputTargetBase { - type: 'docs-readme' | 'docs'; + type: 'docs-readme'; dir?: string; dependencies?: boolean; footer?: string;