@docusaurus/core 2.0.0-beta.15d451942 → 2.0.0-beta.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/beforeCli.mjs +136 -0
- package/bin/docusaurus.mjs +280 -0
- package/lib/babel/preset.d.ts +8 -3
- package/lib/babel/preset.js +8 -7
- package/lib/choosePort.js +32 -41
- package/lib/client/.eslintrc.js +0 -1
- package/lib/client/App.d.ts +1 -2
- package/lib/client/App.js +19 -24
- package/lib/client/LinksCollector.d.ts +3 -3
- package/lib/client/LinksCollector.js +5 -9
- package/lib/client/PendingNavigation.d.ts +24 -1
- package/lib/client/PendingNavigation.js +5 -7
- package/lib/client/baseUrlIssueBanner/BaseUrlIssueBanner.d.ts +13 -0
- package/lib/client/baseUrlIssueBanner/BaseUrlIssueBanner.js +15 -10
- package/lib/client/client-lifecycles-dispatcher.d.ts +2 -5
- package/lib/client/client-lifecycles-dispatcher.js +5 -9
- package/lib/client/clientEntry.js +11 -5
- package/lib/client/docusaurus.d.ts +6 -0
- package/lib/client/docusaurus.js +17 -23
- package/lib/client/exports/BrowserOnly.d.ts +2 -3
- package/lib/client/exports/BrowserOnly.js +14 -7
- package/lib/client/exports/ComponentCreator.d.ts +1 -2
- package/lib/client/exports/ComponentCreator.js +7 -6
- package/lib/client/exports/ErrorBoundary.d.ts +18 -0
- package/lib/client/exports/ErrorBoundary.js +36 -0
- package/lib/client/exports/Head.d.ts +2 -3
- package/lib/client/exports/Head.js +3 -4
- package/lib/client/exports/Interpolate.d.ts +1 -1
- package/lib/client/exports/Interpolate.js +15 -21
- package/lib/client/exports/Link.d.ts +11 -5
- package/lib/client/exports/Link.js +29 -17
- package/lib/client/exports/Translate.d.ts +3 -3
- package/lib/client/exports/Translate.js +15 -10
- package/lib/client/exports/browserContext.d.ts +11 -0
- package/lib/client/exports/browserContext.js +22 -0
- package/lib/client/exports/constants.js +1 -11
- package/lib/client/exports/docusaurusContext.d.ts +12 -0
- package/lib/client/exports/docusaurusContext.js +25 -0
- package/lib/client/exports/isInternalUrl.js +1 -1
- package/lib/client/exports/renderRoutes.d.ts +1 -2
- package/lib/client/exports/renderRoutes.js +1 -2
- package/lib/client/exports/router.d.ts +1 -1
- package/lib/client/exports/router.js +1 -1
- package/lib/client/exports/useBaseUrl.js +3 -5
- package/lib/client/exports/useDocusaurusContext.d.ts +2 -3
- package/lib/client/exports/useDocusaurusContext.js +3 -9
- package/lib/client/exports/useGlobalData.js +4 -8
- package/lib/{server/versions/__tests/index.test.d.ts → client/exports/useIsBrowser.d.ts} +1 -1
- package/lib/client/exports/useIsBrowser.js +11 -0
- package/lib/client/flat.d.ts +2 -2
- package/lib/client/flat.js +8 -11
- package/lib/client/normalizeLocation.d.ts +2 -5
- package/lib/client/normalizeLocation.js +1 -2
- package/lib/client/nprogress.css +2 -2
- package/lib/client/prefetch.d.ts +1 -2
- package/lib/client/prefetch.js +1 -3
- package/lib/client/preload.d.ts +3 -2
- package/lib/client/preload.js +2 -1
- package/lib/client/serverEntry.d.ts +10 -0
- package/lib/client/serverEntry.js +90 -142
- package/lib/client/theme-fallback/Error/index.d.ts +10 -0
- package/lib/client/theme-fallback/Error/index.js +39 -0
- package/lib/client/theme-fallback/Layout/index.d.ts +10 -0
- package/lib/client/theme-fallback/Layout/index.js +10 -19
- package/lib/client/theme-fallback/Loading/index.d.ts +9 -0
- package/lib/client/theme-fallback/Loading/index.js +47 -115
- package/lib/client/{exports/context.js → theme-fallback/NotFound/index.d.ts} +2 -2
- package/lib/client/theme-fallback/NotFound/index.js +9 -16
- package/lib/{webpack/sharedModuleAliases.d.ts → client/theme-fallback/Root/index.d.ts} +4 -4
- package/lib/client/theme-fallback/Root/index.js +2 -7
- package/lib/commands/build.d.ts +1 -1
- package/lib/commands/build.js +59 -61
- package/lib/commands/clear.d.ts +6 -0
- package/lib/commands/clear.js +32 -21
- package/lib/commands/commandUtils.d.ts +7 -1
- package/lib/commands/commandUtils.js +7 -7
- package/lib/commands/deploy.d.ts +4 -1
- package/lib/commands/deploy.js +115 -71
- package/lib/commands/external.d.ts +2 -2
- package/lib/commands/external.js +4 -4
- package/lib/commands/serve.d.ts +1 -1
- package/lib/commands/serve.js +30 -16
- package/lib/commands/start.d.ts +1 -1
- package/lib/commands/start.js +100 -89
- package/lib/commands/swizzle/actions.d.ts +23 -0
- package/lib/commands/swizzle/actions.js +102 -0
- package/lib/commands/swizzle/common.d.ts +33 -0
- package/lib/commands/swizzle/common.js +57 -0
- package/lib/commands/swizzle/components.d.ts +29 -0
- package/lib/commands/swizzle/components.js +165 -0
- package/lib/commands/swizzle/config.d.ts +10 -0
- package/lib/commands/swizzle/config.js +77 -0
- package/lib/{client/exports → commands/swizzle}/context.d.ts +2 -4
- package/lib/commands/swizzle/context.js +30 -0
- package/lib/commands/swizzle/index.d.ts +8 -0
- package/lib/commands/swizzle/index.js +115 -0
- package/lib/commands/swizzle/prompts.d.ts +12 -0
- package/lib/commands/swizzle/prompts.js +110 -0
- package/lib/commands/swizzle/tables.d.ts +9 -0
- package/lib/commands/swizzle/tables.js +116 -0
- package/lib/commands/swizzle/themes.d.ts +20 -0
- package/lib/commands/swizzle/themes.js +105 -0
- package/lib/commands/writeHeadingIds.d.ts +9 -6
- package/lib/commands/writeHeadingIds.js +44 -46
- package/lib/commands/writeTranslations.d.ts +2 -2
- package/lib/commands/writeTranslations.js +36 -14
- package/lib/index.d.ts +10 -9
- package/lib/index.js +20 -19
- package/lib/server/brokenLinks.d.ts +1 -1
- package/lib/server/brokenLinks.js +38 -33
- package/lib/server/client-modules/index.d.ts +1 -1
- package/lib/server/client-modules/index.js +1 -3
- package/lib/server/config.d.ts +2 -2
- package/lib/server/config.js +10 -7
- package/lib/server/configValidation.d.ts +4 -2
- package/lib/server/configValidation.js +63 -32
- package/lib/server/duplicateRoutes.d.ts +1 -1
- package/lib/server/duplicateRoutes.js +10 -6
- package/lib/server/html-tags/htmlTags.js +8 -9
- package/lib/server/html-tags/index.d.ts +2 -2
- package/lib/server/html-tags/index.js +3 -3
- package/lib/server/i18n.d.ts +1 -2
- package/lib/server/i18n.js +31 -46
- package/lib/server/index.d.ts +9 -2
- package/lib/server/index.js +165 -87
- package/lib/server/loadSetup.d.ts +2 -3
- package/lib/server/loadSetup.js +5 -5
- package/lib/server/moduleShorthand.d.ts +9 -0
- package/lib/server/moduleShorthand.js +46 -0
- package/lib/server/plugins/applyRouteTrailingSlash.d.ts +9 -0
- package/lib/server/plugins/applyRouteTrailingSlash.js +19 -0
- package/lib/server/plugins/index.d.ts +3 -4
- package/lib/server/plugins/index.js +53 -37
- package/lib/server/plugins/init.d.ts +11 -5
- package/lib/server/plugins/init.js +40 -47
- package/lib/server/plugins/pluginIds.d.ts +2 -2
- package/lib/server/plugins/pluginIds.js +8 -5
- package/lib/server/presets/index.d.ts +3 -3
- package/lib/server/presets/index.js +14 -14
- package/lib/server/routes.d.ts +1 -1
- package/lib/server/routes.js +51 -28
- package/lib/server/themes/alias.d.ts +3 -2
- package/lib/server/themes/alias.js +24 -15
- package/lib/server/themes/index.d.ts +6 -2
- package/lib/server/themes/index.js +36 -24
- package/lib/server/translations/translations.d.ts +10 -5
- package/lib/server/translations/translations.js +27 -35
- package/lib/server/translations/translationsExtractor.d.ts +9 -4
- package/lib/server/translations/translationsExtractor.js +160 -119
- package/lib/server/utils.d.ts +9 -3
- package/lib/server/utils.js +8 -10
- package/lib/server/versions/__fixtures__/dummy-plugin.d.ts +0 -0
- package/lib/server/versions/index.d.ts +3 -4
- package/lib/server/versions/index.js +22 -21
- package/lib/webpack/base.d.ts +4 -4
- package/lib/webpack/base.js +54 -38
- package/lib/webpack/client.d.ts +3 -3
- package/lib/webpack/client.js +15 -21
- package/lib/webpack/plugins/ChunkAssetPlugin.d.ts +13 -3
- package/lib/webpack/plugins/ChunkAssetPlugin.js +17 -10
- package/lib/webpack/plugins/CleanWebpackPlugin.d.ts +6 -6
- package/lib/webpack/plugins/CleanWebpackPlugin.js +10 -16
- package/lib/webpack/plugins/LogPlugin.d.ts +1 -1
- package/lib/webpack/plugins/LogPlugin.js +5 -6
- package/lib/webpack/plugins/WaitPlugin.d.ts +1 -1
- package/lib/webpack/plugins/WaitPlugin.js +4 -4
- package/lib/webpack/server.d.ts +3 -3
- package/lib/webpack/server.js +18 -11
- package/lib/{client → webpack}/templates/index.html.template.ejs +0 -0
- package/lib/webpack/templates/ssr.html.template.d.ts +8 -0
- package/lib/{client → webpack}/templates/ssr.html.template.js +5 -4
- package/lib/webpack/utils.d.ts +9 -30
- package/lib/webpack/utils.js +58 -171
- package/package.json +76 -69
- package/bin/docusaurus.js +0 -326
- package/lib/.tsbuildinfo +0 -5732
- package/lib/client/.tsbuildinfo +0 -4171
- package/lib/commands/buildRemoteBranchUrl.d.ts +0 -7
- package/lib/commands/buildRemoteBranchUrl.js +0 -27
- package/lib/commands/swizzle.d.ts +0 -9
- package/lib/commands/swizzle.js +0 -245
- package/lib/constants.d.ts +0 -18
- package/lib/constants.js +0 -23
- package/lib/server/versions/__tests/index.test.js +0 -25
- package/lib/webpack/react-dev-utils-webpack5/README.md +0 -11
- package/lib/webpack/react-dev-utils-webpack5/evalSourceMapMiddleware.js +0 -57
- package/lib/webpack/react-dev-utils-webpack5/formatWebpackMessages.js +0 -138
- package/lib/webpack/react-dev-utils-webpack5/webpackHotDevClient.js +0 -285
- package/lib/webpack/sharedModuleAliases.js +0 -18
- package/tsconfig.client.json +0 -13
- package/tsconfig.json +0 -13
package/lib/commands/serve.d.ts
CHANGED
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import { ServeCLIOptions } from '@docusaurus/types';
|
|
7
|
+
import type { ServeCLIOptions } from '@docusaurus/types';
|
|
8
8
|
export default function serve(siteDir: string, cliOptions: ServeCLIOptions): Promise<void>;
|
package/lib/commands/serve.js
CHANGED
|
@@ -7,40 +7,54 @@
|
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
const tslib_1 = require("tslib");
|
|
10
|
-
const http_1 = tslib_1.__importDefault(require("http"));
|
|
11
|
-
const serve_handler_1 = tslib_1.__importDefault(require("serve-handler"));
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const build_1 = tslib_1.__importDefault(require("./build"));
|
|
10
|
+
const http_1 = (0, tslib_1.__importDefault)(require("http"));
|
|
11
|
+
const serve_handler_1 = (0, tslib_1.__importDefault)(require("serve-handler"));
|
|
12
|
+
const logger_1 = (0, tslib_1.__importDefault)(require("@docusaurus/logger"));
|
|
13
|
+
const path_1 = (0, tslib_1.__importDefault)(require("path"));
|
|
14
|
+
const server_1 = require("../server");
|
|
15
|
+
const build_1 = (0, tslib_1.__importDefault)(require("./build"));
|
|
16
16
|
const commandUtils_1 = require("./commandUtils");
|
|
17
17
|
async function serve(siteDir, cliOptions) {
|
|
18
18
|
let dir = path_1.default.isAbsolute(cliOptions.dir)
|
|
19
19
|
? cliOptions.dir
|
|
20
20
|
: path_1.default.join(siteDir, cliOptions.dir);
|
|
21
21
|
if (cliOptions.build) {
|
|
22
|
-
dir = await build_1.default(siteDir, {
|
|
22
|
+
dir = await (0, build_1.default)(siteDir, {
|
|
23
23
|
config: cliOptions.config,
|
|
24
24
|
outDir: dir,
|
|
25
25
|
}, false);
|
|
26
26
|
}
|
|
27
|
-
const host = commandUtils_1.getCLIOptionHost(cliOptions.host);
|
|
28
|
-
const port = await commandUtils_1.getCLIOptionPort(cliOptions.port, host);
|
|
27
|
+
const host = (0, commandUtils_1.getCLIOptionHost)(cliOptions.host);
|
|
28
|
+
const port = await (0, commandUtils_1.getCLIOptionPort)(cliOptions.port, host);
|
|
29
29
|
if (port === null) {
|
|
30
30
|
process.exit();
|
|
31
31
|
}
|
|
32
|
+
const { siteConfig: { baseUrl, trailingSlash }, } = await (0, server_1.loadSiteConfig)({
|
|
33
|
+
siteDir,
|
|
34
|
+
customConfigFilePath: cliOptions.config,
|
|
35
|
+
});
|
|
36
|
+
const servingUrl = `http://${host}:${port}`;
|
|
32
37
|
const server = http_1.default.createServer((req, res) => {
|
|
33
|
-
|
|
38
|
+
var _a, _b;
|
|
39
|
+
// Automatically redirect requests to /baseUrl/
|
|
40
|
+
if (!((_a = req.url) === null || _a === void 0 ? void 0 : _a.startsWith(baseUrl))) {
|
|
41
|
+
res.writeHead(302, {
|
|
42
|
+
Location: baseUrl,
|
|
43
|
+
});
|
|
44
|
+
res.end();
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
// Remove baseUrl before calling serveHandler, because /baseUrl/ should
|
|
48
|
+
// serve /build/index.html, not /build/baseUrl/index.html (does not exist)
|
|
49
|
+
req.url = (_b = req.url) === null || _b === void 0 ? void 0 : _b.replace(baseUrl, '/');
|
|
50
|
+
(0, serve_handler_1.default)(req, res, {
|
|
34
51
|
cleanUrls: true,
|
|
35
52
|
public: dir,
|
|
53
|
+
trailingSlash,
|
|
54
|
+
directoryListing: false,
|
|
36
55
|
});
|
|
37
56
|
});
|
|
38
|
-
|
|
39
|
-
borderColor: 'green',
|
|
40
|
-
padding: 1,
|
|
41
|
-
margin: 1,
|
|
42
|
-
align: 'center',
|
|
43
|
-
}));
|
|
57
|
+
logger_1.default.success `Serving path=${cliOptions.dir} directory at path=${servingUrl + baseUrl}.`;
|
|
44
58
|
server.listen(port);
|
|
45
59
|
}
|
|
46
60
|
exports.default = serve;
|
package/lib/commands/start.d.ts
CHANGED
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import { StartCLIOptions } from '@docusaurus/types';
|
|
7
|
+
import type { StartCLIOptions } from '@docusaurus/types';
|
|
8
8
|
export default function start(siteDir: string, cliOptions: Partial<StartCLIOptions>): Promise<void>;
|
package/lib/commands/start.js
CHANGED
|
@@ -8,33 +8,28 @@
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
const tslib_1 = require("tslib");
|
|
10
10
|
const utils_1 = require("@docusaurus/utils");
|
|
11
|
-
const
|
|
12
|
-
const chokidar_1 = tslib_1.__importDefault(require("chokidar"));
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const openBrowser_1 = tslib_1.__importDefault(require("react-dev-utils/openBrowser"));
|
|
11
|
+
const logger_1 = (0, tslib_1.__importDefault)(require("@docusaurus/logger"));
|
|
12
|
+
const chokidar_1 = (0, tslib_1.__importDefault)(require("chokidar"));
|
|
13
|
+
const html_webpack_plugin_1 = (0, tslib_1.__importDefault)(require("html-webpack-plugin"));
|
|
14
|
+
const path_1 = (0, tslib_1.__importDefault)(require("path"));
|
|
15
|
+
const lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
|
|
16
|
+
const openBrowser_1 = (0, tslib_1.__importDefault)(require("react-dev-utils/openBrowser"));
|
|
18
17
|
const WebpackDevServerUtils_1 = require("react-dev-utils/WebpackDevServerUtils");
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const webpack_dev_server_1 = tslib_1.__importDefault(require("webpack-dev-server"));
|
|
24
|
-
const webpack_merge_1 = tslib_1.__importDefault(require("webpack-merge"));
|
|
25
|
-
const HotModuleReplacementPlugin_1 = tslib_1.__importDefault(require("webpack/lib/HotModuleReplacementPlugin"));
|
|
18
|
+
const evalSourceMapMiddleware_1 = (0, tslib_1.__importDefault)(require("react-dev-utils/evalSourceMapMiddleware"));
|
|
19
|
+
const webpack_1 = (0, tslib_1.__importDefault)(require("webpack"));
|
|
20
|
+
const webpack_dev_server_1 = (0, tslib_1.__importDefault)(require("webpack-dev-server"));
|
|
21
|
+
const webpack_merge_1 = (0, tslib_1.__importDefault)(require("webpack-merge"));
|
|
26
22
|
const server_1 = require("../server");
|
|
27
|
-
const
|
|
28
|
-
const client_1 = tslib_1.__importDefault(require("../webpack/client"));
|
|
23
|
+
const client_1 = (0, tslib_1.__importDefault)(require("../webpack/client"));
|
|
29
24
|
const utils_2 = require("../webpack/utils");
|
|
30
25
|
const commandUtils_1 = require("./commandUtils");
|
|
31
26
|
const translations_1 = require("../server/translations/translations");
|
|
32
27
|
async function start(siteDir, cliOptions) {
|
|
33
28
|
process.env.NODE_ENV = 'development';
|
|
34
29
|
process.env.BABEL_ENV = 'development';
|
|
35
|
-
|
|
30
|
+
logger_1.default.info('Starting the development server...');
|
|
36
31
|
function loadSite() {
|
|
37
|
-
return server_1.load(siteDir, {
|
|
32
|
+
return (0, server_1.load)(siteDir, {
|
|
38
33
|
customConfigFilePath: cliOptions.config,
|
|
39
34
|
locale: cliOptions.locale,
|
|
40
35
|
localizePath: undefined, // should this be configurable?
|
|
@@ -43,34 +38,34 @@ async function start(siteDir, cliOptions) {
|
|
|
43
38
|
// Process all related files as a prop.
|
|
44
39
|
const props = await loadSite();
|
|
45
40
|
const protocol = process.env.HTTPS === 'true' ? 'https' : 'http';
|
|
46
|
-
const host = commandUtils_1.getCLIOptionHost(cliOptions.host);
|
|
47
|
-
const port = await commandUtils_1.getCLIOptionPort(cliOptions.port, host);
|
|
41
|
+
const host = (0, commandUtils_1.getCLIOptionHost)(cliOptions.host);
|
|
42
|
+
const port = await (0, commandUtils_1.getCLIOptionPort)(cliOptions.port, host);
|
|
48
43
|
if (port === null) {
|
|
49
44
|
process.exit();
|
|
50
45
|
}
|
|
51
46
|
const { baseUrl, headTags, preBodyTags, postBodyTags } = props;
|
|
52
|
-
const urls = WebpackDevServerUtils_1.prepareUrls(protocol, host, port);
|
|
53
|
-
const openUrl = utils_1.normalizeUrl([urls.localUrlForBrowser, baseUrl]);
|
|
54
|
-
|
|
47
|
+
const urls = (0, WebpackDevServerUtils_1.prepareUrls)(protocol, host, port);
|
|
48
|
+
const openUrl = (0, utils_1.normalizeUrl)([urls.localUrlForBrowser, baseUrl]);
|
|
49
|
+
logger_1.default.success `Docusaurus website is running at path=${openUrl}.`;
|
|
55
50
|
// Reload files processing.
|
|
56
|
-
const reload = lodash_1.debounce(() => {
|
|
51
|
+
const reload = lodash_1.default.debounce(() => {
|
|
57
52
|
loadSite()
|
|
58
53
|
.then(({ baseUrl: newBaseUrl }) => {
|
|
59
|
-
const newOpenUrl = utils_1.normalizeUrl([urls.localUrlForBrowser, newBaseUrl]);
|
|
54
|
+
const newOpenUrl = (0, utils_1.normalizeUrl)([urls.localUrlForBrowser, newBaseUrl]);
|
|
60
55
|
if (newOpenUrl !== openUrl) {
|
|
61
|
-
|
|
56
|
+
logger_1.default.success `Docusaurus website is running at path=${newOpenUrl}.`;
|
|
62
57
|
}
|
|
63
58
|
})
|
|
64
59
|
.catch((err) => {
|
|
65
|
-
|
|
60
|
+
logger_1.default.error(err.stack);
|
|
66
61
|
});
|
|
67
62
|
}, 500);
|
|
68
63
|
const { siteConfig, plugins = [] } = props;
|
|
69
64
|
const normalizeToSiteDir = (filepath) => {
|
|
70
65
|
if (filepath && path_1.default.isAbsolute(filepath)) {
|
|
71
|
-
return utils_1.posixPath(path_1.default.relative(siteDir, filepath));
|
|
66
|
+
return (0, utils_1.posixPath)(path_1.default.relative(siteDir, filepath));
|
|
72
67
|
}
|
|
73
|
-
return utils_1.posixPath(filepath);
|
|
68
|
+
return (0, utils_1.posixPath)(filepath);
|
|
74
69
|
};
|
|
75
70
|
const pluginPaths = []
|
|
76
71
|
.concat(...plugins
|
|
@@ -80,25 +75,33 @@ async function start(siteDir, cliOptions) {
|
|
|
80
75
|
const pathsToWatch = [
|
|
81
76
|
...pluginPaths,
|
|
82
77
|
props.siteConfigPath,
|
|
83
|
-
translations_1.getTranslationsLocaleDirPath({
|
|
78
|
+
(0, translations_1.getTranslationsLocaleDirPath)({
|
|
84
79
|
siteDir,
|
|
85
80
|
locale: props.i18n.currentLocale,
|
|
86
81
|
}),
|
|
87
82
|
];
|
|
88
|
-
const
|
|
89
|
-
cwd: siteDir,
|
|
90
|
-
ignoreInitial: true,
|
|
83
|
+
const pollingOptions = {
|
|
91
84
|
usePolling: !!cliOptions.poll,
|
|
92
85
|
interval: Number.isInteger(cliOptions.poll)
|
|
93
86
|
? cliOptions.poll
|
|
94
87
|
: undefined,
|
|
88
|
+
};
|
|
89
|
+
const httpsConfig = await (0, utils_2.getHttpsConfig)();
|
|
90
|
+
const fsWatcher = chokidar_1.default.watch(pathsToWatch, {
|
|
91
|
+
cwd: siteDir,
|
|
92
|
+
ignoreInitial: true,
|
|
93
|
+
...{ pollingOptions },
|
|
95
94
|
});
|
|
96
95
|
['add', 'change', 'unlink', 'addDir', 'unlinkDir'].forEach((event) => fsWatcher.on(event, reload));
|
|
97
|
-
let config = webpack_merge_1.default(client_1.default(props), {
|
|
96
|
+
let config = (0, webpack_merge_1.default)(await (0, client_1.default)(props), {
|
|
97
|
+
infrastructureLogging: {
|
|
98
|
+
// Reduce log verbosity, see https://github.com/facebook/docusaurus/pull/5420#issuecomment-906613105
|
|
99
|
+
level: 'warn',
|
|
100
|
+
},
|
|
98
101
|
plugins: [
|
|
99
102
|
// Generates an `index.html` file with the <script> injected.
|
|
100
103
|
new html_webpack_plugin_1.default({
|
|
101
|
-
template: path_1.default.resolve(__dirname, '../
|
|
104
|
+
template: path_1.default.resolve(__dirname, '../webpack/templates/index.html.template.ejs'),
|
|
102
105
|
// So we can define the position where the scripts are injected.
|
|
103
106
|
inject: false,
|
|
104
107
|
filename: 'index.html',
|
|
@@ -107,8 +110,6 @@ async function start(siteDir, cliOptions) {
|
|
|
107
110
|
preBodyTags,
|
|
108
111
|
postBodyTags,
|
|
109
112
|
}),
|
|
110
|
-
// This is necessary to emit hot updates for webpack-dev-server.
|
|
111
|
-
new HotModuleReplacementPlugin_1.default(),
|
|
112
113
|
],
|
|
113
114
|
});
|
|
114
115
|
// Plugin Lifecycle - configureWebpack and configurePostCss.
|
|
@@ -116,75 +117,85 @@ async function start(siteDir, cliOptions) {
|
|
|
116
117
|
var _a;
|
|
117
118
|
const { configureWebpack, configurePostCss } = plugin;
|
|
118
119
|
if (configurePostCss) {
|
|
119
|
-
config = utils_2.applyConfigurePostCss(configurePostCss, config);
|
|
120
|
+
config = (0, utils_2.applyConfigurePostCss)(configurePostCss, config);
|
|
120
121
|
}
|
|
121
122
|
if (configureWebpack) {
|
|
122
|
-
config = utils_2.applyConfigureWebpack(configureWebpack.bind(plugin), // The plugin lifecycle may reference `this`.
|
|
123
|
-
config, false, (_a = props.siteConfig.webpack) === null || _a === void 0 ? void 0 : _a.jsLoader);
|
|
123
|
+
config = (0, utils_2.applyConfigureWebpack)(configureWebpack.bind(plugin), // The plugin lifecycle may reference `this`. // TODO remove this implicit api: inject in callback instead
|
|
124
|
+
config, false, (_a = props.siteConfig.webpack) === null || _a === void 0 ? void 0 : _a.jsLoader, plugin.content);
|
|
124
125
|
}
|
|
125
126
|
});
|
|
126
|
-
|
|
127
|
-
const devServerConfig = {
|
|
128
|
-
...{
|
|
129
|
-
compress: true,
|
|
130
|
-
clientLogLevel: 'error',
|
|
131
|
-
hot: true,
|
|
132
|
-
hotOnly: cliOptions.hotOnly,
|
|
133
|
-
// Use 'ws' instead of 'sockjs-node' on server since we're using native
|
|
134
|
-
// websockets in `webpackHotDevClient`.
|
|
135
|
-
transportMode: 'ws',
|
|
136
|
-
// Prevent a WS client from getting injected as we're already including
|
|
137
|
-
// `webpackHotDevClient`.
|
|
138
|
-
injectClient: false,
|
|
139
|
-
quiet: true,
|
|
140
|
-
https: utils_2.getHttpsConfig(),
|
|
141
|
-
headers: {
|
|
142
|
-
'access-control-allow-origin': '*',
|
|
143
|
-
},
|
|
144
|
-
publicPath: baseUrl,
|
|
145
|
-
watchOptions: {
|
|
146
|
-
ignored: /node_modules/,
|
|
147
|
-
poll: cliOptions.poll,
|
|
148
|
-
},
|
|
149
|
-
historyApiFallback: {
|
|
150
|
-
rewrites: [{ from: /\/*/, to: baseUrl }],
|
|
151
|
-
},
|
|
152
|
-
disableHostCheck: true,
|
|
153
|
-
// Disable overlay on browser since we use CRA's overlay error reporting.
|
|
154
|
-
overlay: false,
|
|
155
|
-
host,
|
|
156
|
-
before: (app, server) => {
|
|
157
|
-
app.use(baseUrl, express_1.default.static(path_1.default.resolve(siteDir, constants_1.STATIC_DIR_NAME)));
|
|
158
|
-
// This lets us fetch source contents from webpack for the error overlay.
|
|
159
|
-
app.use(evalSourceMapMiddleware_1.default(server));
|
|
160
|
-
// This lets us open files from the runtime error overlay.
|
|
161
|
-
app.use(errorOverlayMiddleware_1.default());
|
|
162
|
-
},
|
|
163
|
-
},
|
|
164
|
-
};
|
|
165
|
-
const compiler = webpack_1.default(config);
|
|
127
|
+
const compiler = (0, webpack_1.default)(config);
|
|
166
128
|
if (process.env.E2E_TEST) {
|
|
167
129
|
compiler.hooks.done.tap('done', (stats) => {
|
|
168
130
|
if (stats.hasErrors()) {
|
|
169
|
-
|
|
131
|
+
logger_1.default.error('E2E_TEST: Project has compiler errors.');
|
|
170
132
|
process.exit(1);
|
|
171
133
|
}
|
|
172
|
-
|
|
134
|
+
logger_1.default.success('E2E_TEST: Project can compile.');
|
|
173
135
|
process.exit(0);
|
|
174
136
|
});
|
|
175
137
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
138
|
+
// https://webpack.js.org/configuration/dev-server
|
|
139
|
+
const defaultDevServerConfig = {
|
|
140
|
+
hot: cliOptions.hotOnly ? 'only' : true,
|
|
141
|
+
liveReload: false,
|
|
142
|
+
client: {
|
|
143
|
+
progress: true,
|
|
144
|
+
overlay: {
|
|
145
|
+
warnings: false,
|
|
146
|
+
errors: true,
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
headers: {
|
|
150
|
+
'access-control-allow-origin': '*',
|
|
151
|
+
},
|
|
152
|
+
devMiddleware: {
|
|
153
|
+
publicPath: baseUrl,
|
|
154
|
+
// Reduce log verbosity, see https://github.com/facebook/docusaurus/pull/5420#issuecomment-906613105
|
|
155
|
+
stats: 'summary',
|
|
156
|
+
},
|
|
157
|
+
static: siteConfig.staticDirectories.map((dir) => ({
|
|
158
|
+
publicPath: baseUrl,
|
|
159
|
+
directory: path_1.default.resolve(siteDir, dir),
|
|
160
|
+
watch: {
|
|
161
|
+
// Useful options for our own monorepo using symlinks!
|
|
162
|
+
// See https://github.com/webpack/webpack/issues/11612#issuecomment-879259806
|
|
163
|
+
followSymlinks: true,
|
|
164
|
+
ignored: /node_modules\/(?!@docusaurus)/,
|
|
165
|
+
...{ pollingOptions },
|
|
166
|
+
},
|
|
167
|
+
})),
|
|
168
|
+
...(httpsConfig && {
|
|
169
|
+
server: typeof httpsConfig === 'object'
|
|
170
|
+
? {
|
|
171
|
+
type: 'https',
|
|
172
|
+
options: httpsConfig,
|
|
173
|
+
}
|
|
174
|
+
: 'https',
|
|
175
|
+
}),
|
|
176
|
+
historyApiFallback: {
|
|
177
|
+
rewrites: [{ from: /\/*/, to: baseUrl }],
|
|
178
|
+
},
|
|
179
|
+
allowedHosts: 'all',
|
|
180
|
+
host,
|
|
181
|
+
port,
|
|
182
|
+
setupMiddlewares: (middlewares, devServer) => {
|
|
183
|
+
// This lets us fetch source contents from webpack for the error overlay.
|
|
184
|
+
middlewares.unshift((0, evalSourceMapMiddleware_1.default)(devServer));
|
|
185
|
+
return middlewares;
|
|
186
|
+
},
|
|
187
|
+
};
|
|
188
|
+
// Allow plugin authors to customize/override devServer config
|
|
189
|
+
const devServerConfig = (0, webpack_merge_1.default)([defaultDevServerConfig, config.devServer].filter(Boolean));
|
|
190
|
+
const devServer = new webpack_dev_server_1.default(devServerConfig, compiler);
|
|
191
|
+
devServer.startCallback(() => {
|
|
181
192
|
if (cliOptions.open) {
|
|
182
|
-
openBrowser_1.default(openUrl);
|
|
193
|
+
(0, openBrowser_1.default)(openUrl);
|
|
183
194
|
}
|
|
184
195
|
});
|
|
185
196
|
['SIGINT', 'SIGTERM'].forEach((sig) => {
|
|
186
197
|
process.on(sig, () => {
|
|
187
|
-
devServer.
|
|
198
|
+
devServer.stop();
|
|
188
199
|
process.exit();
|
|
189
200
|
});
|
|
190
201
|
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import type { SwizzleAction, SwizzleComponentConfig } from '@docusaurus/types';
|
|
8
|
+
import type { SwizzleOptions } from './common';
|
|
9
|
+
export declare const SwizzleActions: SwizzleAction[];
|
|
10
|
+
export declare function getAction(componentConfig: SwizzleComponentConfig, options: Pick<SwizzleOptions, 'wrap' | 'eject'>): Promise<SwizzleAction>;
|
|
11
|
+
export declare type ActionParams = {
|
|
12
|
+
siteDir: string;
|
|
13
|
+
themePath: string;
|
|
14
|
+
componentName: string;
|
|
15
|
+
};
|
|
16
|
+
export declare type ActionResult = {
|
|
17
|
+
createdFiles: string[];
|
|
18
|
+
};
|
|
19
|
+
export declare function eject({ siteDir, themePath, componentName, }: ActionParams): Promise<ActionResult>;
|
|
20
|
+
export declare function wrap({ siteDir, themePath, componentName: themeComponentName, typescript, importType, }: ActionParams & {
|
|
21
|
+
typescript: boolean;
|
|
22
|
+
importType?: 'original' | 'init';
|
|
23
|
+
}): Promise<ActionResult>;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.wrap = exports.eject = exports.getAction = exports.SwizzleActions = void 0;
|
|
10
|
+
const tslib_1 = require("tslib");
|
|
11
|
+
const logger_1 = (0, tslib_1.__importDefault)(require("@docusaurus/logger"));
|
|
12
|
+
const fs_extra_1 = (0, tslib_1.__importDefault)(require("fs-extra"));
|
|
13
|
+
const path_1 = (0, tslib_1.__importDefault)(require("path"));
|
|
14
|
+
const lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
|
|
15
|
+
const utils_1 = require("@docusaurus/utils");
|
|
16
|
+
const prompts_1 = require("./prompts");
|
|
17
|
+
exports.SwizzleActions = ['wrap', 'eject'];
|
|
18
|
+
async function getAction(componentConfig, options) {
|
|
19
|
+
if (options.wrap) {
|
|
20
|
+
return 'wrap';
|
|
21
|
+
}
|
|
22
|
+
if (options.eject) {
|
|
23
|
+
return 'eject';
|
|
24
|
+
}
|
|
25
|
+
return (0, prompts_1.askSwizzleAction)(componentConfig);
|
|
26
|
+
}
|
|
27
|
+
exports.getAction = getAction;
|
|
28
|
+
async function isDir(dirPath) {
|
|
29
|
+
return ((await fs_extra_1.default.pathExists(dirPath)) && (await fs_extra_1.default.stat(dirPath)).isDirectory());
|
|
30
|
+
}
|
|
31
|
+
async function eject({ siteDir, themePath, componentName, }) {
|
|
32
|
+
const fromPath = path_1.default.join(themePath, componentName);
|
|
33
|
+
const isDirectory = await isDir(fromPath);
|
|
34
|
+
const globPattern = isDirectory
|
|
35
|
+
? // do we really want to copy all components?
|
|
36
|
+
path_1.default.join(fromPath, '*')
|
|
37
|
+
: `${fromPath}.*`;
|
|
38
|
+
const globPatternPosix = (0, utils_1.posixPath)(globPattern);
|
|
39
|
+
const filesToCopy = await (0, utils_1.Globby)(globPatternPosix, {
|
|
40
|
+
ignore: ['**/*.{story,stories,test,tests}.{js,jsx,ts,tsx}'],
|
|
41
|
+
});
|
|
42
|
+
if (filesToCopy.length === 0) {
|
|
43
|
+
// This should never happen
|
|
44
|
+
throw new Error(logger_1.default.interpolate `No files to copy from path=${fromPath} with glob code=${globPatternPosix}`);
|
|
45
|
+
}
|
|
46
|
+
const toPath = isDirectory
|
|
47
|
+
? path_1.default.join(siteDir, utils_1.THEME_PATH, componentName)
|
|
48
|
+
: path_1.default.join(siteDir, utils_1.THEME_PATH);
|
|
49
|
+
await fs_extra_1.default.ensureDir(toPath);
|
|
50
|
+
const createdFiles = await Promise.all(filesToCopy.map(async (sourceFile) => {
|
|
51
|
+
const fileName = path_1.default.basename(sourceFile);
|
|
52
|
+
const targetFile = path_1.default.join(toPath, fileName);
|
|
53
|
+
try {
|
|
54
|
+
await fs_extra_1.default.copy(sourceFile, targetFile, { overwrite: true });
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
throw new Error(logger_1.default.interpolate `Could not copy file from ${sourceFile} to ${targetFile}`);
|
|
58
|
+
}
|
|
59
|
+
return targetFile;
|
|
60
|
+
}));
|
|
61
|
+
return { createdFiles };
|
|
62
|
+
}
|
|
63
|
+
exports.eject = eject;
|
|
64
|
+
async function wrap({ siteDir, themePath, componentName: themeComponentName, typescript, importType = 'original', }) {
|
|
65
|
+
const isDirectory = await isDir(path_1.default.join(themePath, themeComponentName));
|
|
66
|
+
// Top/Parent/ComponentName => ComponentName
|
|
67
|
+
const componentName = lodash_1.default.last(themeComponentName.split('/'));
|
|
68
|
+
const wrapperComponentName = `${componentName}Wrapper`;
|
|
69
|
+
const wrapperFileName = `${themeComponentName}${isDirectory ? '/index' : ''}${typescript ? '.tsx' : '.js'}`;
|
|
70
|
+
await fs_extra_1.default.ensureDir(path_1.default.resolve(siteDir, utils_1.THEME_PATH));
|
|
71
|
+
const toPath = path_1.default.resolve(siteDir, utils_1.THEME_PATH, wrapperFileName);
|
|
72
|
+
const content = typescript
|
|
73
|
+
? `import React, {ComponentProps} from 'react';
|
|
74
|
+
import type ${componentName}Type from '@theme/${themeComponentName}';
|
|
75
|
+
import ${componentName} from '@theme-${importType}/${themeComponentName}';
|
|
76
|
+
|
|
77
|
+
type Props = ComponentProps<typeof ${componentName}Type>
|
|
78
|
+
|
|
79
|
+
export default function ${wrapperComponentName}(props: Props): JSX.Element {
|
|
80
|
+
return (
|
|
81
|
+
<>
|
|
82
|
+
<${componentName} {...props} />
|
|
83
|
+
</>
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
`
|
|
87
|
+
: `import React from 'react';
|
|
88
|
+
import ${componentName} from '@theme-${importType}/${themeComponentName}';
|
|
89
|
+
|
|
90
|
+
export default function ${wrapperComponentName}(props) {
|
|
91
|
+
return (
|
|
92
|
+
<>
|
|
93
|
+
<${componentName} {...props} />
|
|
94
|
+
</>
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
`;
|
|
98
|
+
await fs_extra_1.default.ensureDir(path_1.default.dirname(toPath));
|
|
99
|
+
await fs_extra_1.default.writeFile(toPath, content);
|
|
100
|
+
return { createdFiles: [toPath] };
|
|
101
|
+
}
|
|
102
|
+
exports.wrap = wrap;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import type { InitializedPlugin, SwizzleAction, SwizzleActionStatus } from '@docusaurus/types';
|
|
8
|
+
import type { NormalizedPluginConfig } from '../../server/plugins/init';
|
|
9
|
+
export declare const SwizzleActions: SwizzleAction[];
|
|
10
|
+
export declare const SwizzleActionsStatuses: SwizzleActionStatus[];
|
|
11
|
+
export declare const PartiallySafeHint: string;
|
|
12
|
+
export declare function actionStatusLabel(status: SwizzleActionStatus): string;
|
|
13
|
+
export declare function actionStatusColor(status: SwizzleActionStatus, str: string): string;
|
|
14
|
+
export declare function actionStatusSuffix(status: SwizzleActionStatus, options?: {
|
|
15
|
+
partiallySafe?: boolean;
|
|
16
|
+
}): string;
|
|
17
|
+
export declare type SwizzlePlugin = {
|
|
18
|
+
instance: InitializedPlugin;
|
|
19
|
+
plugin: NormalizedPluginConfig;
|
|
20
|
+
};
|
|
21
|
+
export declare type SwizzleContext = {
|
|
22
|
+
plugins: SwizzlePlugin[];
|
|
23
|
+
};
|
|
24
|
+
export declare type SwizzleOptions = {
|
|
25
|
+
typescript: boolean;
|
|
26
|
+
danger: boolean;
|
|
27
|
+
list: boolean;
|
|
28
|
+
wrap: boolean;
|
|
29
|
+
eject: boolean;
|
|
30
|
+
};
|
|
31
|
+
export declare function normalizeOptions(options: Partial<SwizzleOptions>): SwizzleOptions;
|
|
32
|
+
export declare function findStringIgnoringCase(str: string, values: string[]): string | undefined;
|
|
33
|
+
export declare function findClosestValue(str: string, values: string[], maxLevenshtein?: number): string | undefined;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.findClosestValue = exports.findStringIgnoringCase = exports.normalizeOptions = exports.actionStatusSuffix = exports.actionStatusColor = exports.actionStatusLabel = exports.PartiallySafeHint = exports.SwizzleActionsStatuses = exports.SwizzleActions = void 0;
|
|
10
|
+
const tslib_1 = require("tslib");
|
|
11
|
+
const leven_1 = (0, tslib_1.__importDefault)(require("leven"));
|
|
12
|
+
const lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
|
|
13
|
+
const logger_1 = (0, tslib_1.__importDefault)(require("@docusaurus/logger"));
|
|
14
|
+
exports.SwizzleActions = ['wrap', 'eject'];
|
|
15
|
+
exports.SwizzleActionsStatuses = [
|
|
16
|
+
'safe',
|
|
17
|
+
'unsafe',
|
|
18
|
+
'forbidden',
|
|
19
|
+
];
|
|
20
|
+
exports.PartiallySafeHint = logger_1.default.red('*');
|
|
21
|
+
function actionStatusLabel(status) {
|
|
22
|
+
return lodash_1.default.capitalize(status);
|
|
23
|
+
}
|
|
24
|
+
exports.actionStatusLabel = actionStatusLabel;
|
|
25
|
+
const SwizzleActionStatusColors = {
|
|
26
|
+
safe: logger_1.default.green,
|
|
27
|
+
unsafe: logger_1.default.yellow,
|
|
28
|
+
forbidden: logger_1.default.red,
|
|
29
|
+
};
|
|
30
|
+
function actionStatusColor(status, str) {
|
|
31
|
+
const colorFn = SwizzleActionStatusColors[status];
|
|
32
|
+
return colorFn(str);
|
|
33
|
+
}
|
|
34
|
+
exports.actionStatusColor = actionStatusColor;
|
|
35
|
+
function actionStatusSuffix(status, options = {}) {
|
|
36
|
+
return ` (${actionStatusColor(status, actionStatusLabel(status))}${options.partiallySafe ? exports.PartiallySafeHint : ''})`;
|
|
37
|
+
}
|
|
38
|
+
exports.actionStatusSuffix = actionStatusSuffix;
|
|
39
|
+
function normalizeOptions(options) {
|
|
40
|
+
var _a, _b, _c, _d, _e;
|
|
41
|
+
return {
|
|
42
|
+
typescript: (_a = options.typescript) !== null && _a !== void 0 ? _a : false,
|
|
43
|
+
danger: (_b = options.danger) !== null && _b !== void 0 ? _b : false,
|
|
44
|
+
list: (_c = options.list) !== null && _c !== void 0 ? _c : false,
|
|
45
|
+
wrap: (_d = options.wrap) !== null && _d !== void 0 ? _d : false,
|
|
46
|
+
eject: (_e = options.eject) !== null && _e !== void 0 ? _e : false,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
exports.normalizeOptions = normalizeOptions;
|
|
50
|
+
function findStringIgnoringCase(str, values) {
|
|
51
|
+
return values.find((v) => v.toLowerCase() === str.toLowerCase());
|
|
52
|
+
}
|
|
53
|
+
exports.findStringIgnoringCase = findStringIgnoringCase;
|
|
54
|
+
function findClosestValue(str, values, maxLevenshtein = 3) {
|
|
55
|
+
return values.find((v) => (0, leven_1.default)(v, str) <= maxLevenshtein);
|
|
56
|
+
}
|
|
57
|
+
exports.findClosestValue = findClosestValue;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import type { SwizzleAction, SwizzleActionStatus, SwizzleComponentConfig, SwizzleConfig } from '@docusaurus/types';
|
|
8
|
+
export declare type ThemeComponents = {
|
|
9
|
+
themeName: string;
|
|
10
|
+
all: string[];
|
|
11
|
+
getConfig: (component: string) => SwizzleComponentConfig;
|
|
12
|
+
getDescription: (component: string) => string;
|
|
13
|
+
getActionStatus: (component: string, action: SwizzleAction) => SwizzleActionStatus;
|
|
14
|
+
isSafeAction: (component: string, action: SwizzleAction) => boolean;
|
|
15
|
+
hasAnySafeAction: (component: string) => boolean;
|
|
16
|
+
hasAllSafeAction: (component: string) => boolean;
|
|
17
|
+
};
|
|
18
|
+
export declare function readComponentNames(themePath: string): Promise<string[]>;
|
|
19
|
+
export declare function listComponentNames(themeComponents: ThemeComponents): string;
|
|
20
|
+
export declare function getThemeComponents({ themeName, themePath, swizzleConfig, }: {
|
|
21
|
+
themeName: string;
|
|
22
|
+
themePath: string;
|
|
23
|
+
swizzleConfig: SwizzleConfig;
|
|
24
|
+
}): Promise<ThemeComponents>;
|
|
25
|
+
export declare function getComponentName({ componentNameParam, themeComponents, list, }: {
|
|
26
|
+
componentNameParam: string | undefined;
|
|
27
|
+
themeComponents: ThemeComponents;
|
|
28
|
+
list: boolean | undefined;
|
|
29
|
+
}): Promise<string>;
|