Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 1 commit into from Oct 20, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 4 additions & 0 deletions packages/docusaurus/bin/docusaurus.mjs
Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions packages/docusaurus/src/commands/swizzle/common.ts
Expand Up @@ -67,6 +67,7 @@ export type SwizzleCLIOptions = {
list: boolean;
wrap: boolean;
eject: boolean;
config?: string;
};

export function normalizeOptions(
Expand All @@ -78,6 +79,7 @@ export function normalizeOptions(
list: options.list ?? false,
wrap: options.wrap ?? false,
eject: options.eject ?? false,
config: options.config ?? undefined,
};
}

Expand Down
5 changes: 3 additions & 2 deletions packages/docusaurus/src/commands/swizzle/context.ts
Expand Up @@ -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);

Expand Down
2 changes: 1 addition & 1 deletion packages/docusaurus/src/commands/swizzle/index.ts
Expand Up @@ -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) {
Expand Down
19 changes: 10 additions & 9 deletions website/docs/cli.md
Expand Up @@ -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

Expand Down