feat(core): add --config param to swizzle command (#8210)

This commit is contained in:
evan 2022-10-20 09:11:39 -05:00 committed by GitHub
parent 308b5390b5
commit 7b3ebb7729
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 20 additions and 12 deletions

View file

@ -77,6 +77,10 @@ cli
'copy TypeScript theme files when possible (default: false)',
)
.option('--danger', 'enable swizzle for unsafe component of themes')
.option(
'--config <config>',
'path to Docusaurus config file (default: `[siteDir]/docusaurus.config.js`)',
)
.action(swizzle);
cli

View file

@ -67,6 +67,7 @@ export type SwizzleCLIOptions = {
list: boolean;
wrap: boolean;
eject: boolean;
config?: string;
};
export function normalizeOptions(
@ -78,6 +79,7 @@ export function normalizeOptions(
list: options.list ?? false,
wrap: options.wrap ?? false,
eject: options.eject ?? false,
config: options.config ?? undefined,
};
}

View file

@ -8,12 +8,13 @@
import {loadContext} from '../../server';
import {initPlugins} from '../../server/plugins/init';
import {loadPluginConfigs} from '../../server/plugins/configs';
import type {SwizzleContext} from './common';
import type {SwizzleCLIOptions, SwizzleContext} from './common';
export async function initSwizzleContext(
siteDir: string,
options: SwizzleCLIOptions,
): Promise<SwizzleContext> {
const context = await loadContext({siteDir});
const context = await loadContext({siteDir, config: options.config});
const plugins = await initPlugins(context);
const pluginConfigs = await loadPluginConfigs(context);

View file

@ -98,7 +98,7 @@ export async function swizzle(
const options = normalizeOptions(optionsParam);
const {list, danger, typescript} = options;
const {plugins} = await initSwizzleContext(siteDir);
const {plugins} = await initSwizzleContext(siteDir, options);
const themeNames = getThemeNames(plugins);
if (list && !themeNameParam) {

View file

@ -113,15 +113,16 @@ The swizzle CLI is interactive and will guide you through the whole [swizzle pro
#### Options {#options-swizzle}
| Name | Description |
| --------------- | ---------------------------------------------------- |
| `themeName` | The name of the theme to swizzle from. |
| `componentName` | The name of the theme component to swizzle. |
| `--list` | Display components available for swizzling |
| `--eject` | [Eject](./swizzling.md#ejecting) the theme component |
| `--wrap` | [Wrap](./swizzling.md#wrapping) the theme component |
| `--danger` | Allow immediate swizzling of unsafe components |
| `--typescript` | Swizzle the TypeScript variant component |
| Name | Description |
| --- | --- |
| `themeName` | The name of the theme to swizzle from. |
| `componentName` | The name of the theme component to swizzle. |
| `--list` | Display components available for swizzling |
| `--eject` | [Eject](./swizzling.md#ejecting) the theme component |
| `--wrap` | [Wrap](./swizzling.md#wrapping) the theme component |
| `--danger` | Allow immediate swizzling of unsafe components |
| `--typescript` | Swizzle the TypeScript variant component |
| `--config` | Path to docusaurus config file, default to `[siteDir]/docusaurus.config.js` |
:::caution