@docusaurus/types 2.0.0-beta.12faed89d → 2.0.0-beta.13
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/package.json +5 -5
- package/src/index.d.ts +66 -43
- package/src/index.js +0 -10
package/package.json
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docusaurus/types",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.13",
|
|
4
4
|
"description": "Common types for Docusaurus packages.",
|
|
5
|
-
"main": "./src/index.js",
|
|
6
5
|
"types": "./src/index.d.ts",
|
|
7
6
|
"publishConfig": {
|
|
8
7
|
"access": "public"
|
|
@@ -18,10 +17,11 @@
|
|
|
18
17
|
},
|
|
19
18
|
"dependencies": {
|
|
20
19
|
"commander": "^5.1.0",
|
|
21
|
-
"joi": "^17.4.
|
|
20
|
+
"joi": "^17.4.2",
|
|
22
21
|
"querystring": "0.2.0",
|
|
23
|
-
"
|
|
22
|
+
"utility-types": "^3.10.0",
|
|
23
|
+
"webpack": "^5.61.0",
|
|
24
24
|
"webpack-merge": "^5.8.0"
|
|
25
25
|
},
|
|
26
|
-
"gitHead": "
|
|
26
|
+
"gitHead": "b6ca12aedf10a10c2375f4f8b7e7380cfd7c7202"
|
|
27
27
|
}
|
package/src/index.d.ts
CHANGED
|
@@ -5,12 +5,11 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
// ESLint doesn't understand types dependencies in d.ts
|
|
9
|
-
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
10
8
|
import type {RuleSetRule, Configuration} from 'webpack';
|
|
11
9
|
import type {Command} from 'commander';
|
|
12
10
|
import type {ParsedUrlQueryInput} from 'querystring';
|
|
13
11
|
import type Joi from 'joi';
|
|
12
|
+
import type {Overwrite, DeepPartial} from 'utility-types';
|
|
14
13
|
|
|
15
14
|
// Convert webpack-merge webpack-merge enum to union type
|
|
16
15
|
// For type retro-compatible webpack-merge upgrade: we used string literals before)
|
|
@@ -23,6 +22,7 @@ export type ThemeConfig = {
|
|
|
23
22
|
[key: string]: unknown;
|
|
24
23
|
};
|
|
25
24
|
|
|
25
|
+
// Docusaurus config, after validation/normalization
|
|
26
26
|
export interface DocusaurusConfig {
|
|
27
27
|
baseUrl: string;
|
|
28
28
|
baseUrlIssueBanner: boolean;
|
|
@@ -39,6 +39,7 @@ export interface DocusaurusConfig {
|
|
|
39
39
|
noIndex: boolean;
|
|
40
40
|
organizationName?: string;
|
|
41
41
|
projectName?: string;
|
|
42
|
+
deploymentBranch?: string;
|
|
42
43
|
githubHost?: string;
|
|
43
44
|
githubPort?: string;
|
|
44
45
|
plugins?: PluginConfig[];
|
|
@@ -57,6 +58,7 @@ export interface DocusaurusConfig {
|
|
|
57
58
|
)[];
|
|
58
59
|
clientModules?: string[];
|
|
59
60
|
ssrTemplate?: string;
|
|
61
|
+
staticDirectories: string[];
|
|
60
62
|
stylesheets?: (
|
|
61
63
|
| string
|
|
62
64
|
| {
|
|
@@ -70,6 +72,19 @@ export interface DocusaurusConfig {
|
|
|
70
72
|
};
|
|
71
73
|
}
|
|
72
74
|
|
|
75
|
+
// Docusaurus config, as provided by the user (partial/unnormalized)
|
|
76
|
+
// This type is used to provide type-safety / IDE auto-complete on the config file
|
|
77
|
+
// See https://docusaurus.io/docs/typescript-support
|
|
78
|
+
export type Config = Overwrite<
|
|
79
|
+
Partial<DocusaurusConfig>,
|
|
80
|
+
{
|
|
81
|
+
title: Required<DocusaurusConfig['title']>;
|
|
82
|
+
url: Required<DocusaurusConfig['url']>;
|
|
83
|
+
baseUrl: Required<DocusaurusConfig['baseUrl']>;
|
|
84
|
+
i18n?: DeepPartial<DocusaurusConfig['i18n']>;
|
|
85
|
+
}
|
|
86
|
+
>;
|
|
87
|
+
|
|
73
88
|
/**
|
|
74
89
|
* - `type: 'package'`, plugin is in a different package.
|
|
75
90
|
* - `type: 'project'`, plugin is in the same docusaurus project.
|
|
@@ -127,7 +142,10 @@ export interface DocusaurusContext {
|
|
|
127
142
|
globalData: Record<string, unknown>;
|
|
128
143
|
i18n: I18n;
|
|
129
144
|
codeTranslations: Record<string, string>;
|
|
130
|
-
|
|
145
|
+
|
|
146
|
+
// Don't put mutable values here, to avoid triggering re-renders
|
|
147
|
+
// We could reconsider that choice if context selectors are implemented
|
|
148
|
+
// isBrowser: boolean; // Not here on purpose!
|
|
131
149
|
}
|
|
132
150
|
|
|
133
151
|
export interface Preset {
|
|
@@ -135,6 +153,14 @@ export interface Preset {
|
|
|
135
153
|
themes?: PluginConfig[];
|
|
136
154
|
}
|
|
137
155
|
|
|
156
|
+
export type PresetModule = {
|
|
157
|
+
<T>(context: LoadContext, presetOptions: T): Preset;
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
export type ImportedPresetModule = PresetModule & {
|
|
161
|
+
default?: PresetModule;
|
|
162
|
+
};
|
|
163
|
+
|
|
138
164
|
export type PresetConfig =
|
|
139
165
|
| [string, Record<string, unknown>]
|
|
140
166
|
| [string]
|
|
@@ -195,17 +221,17 @@ export interface InjectedHtmlTags {
|
|
|
195
221
|
export type HtmlTags = string | HtmlTagObject | (string | HtmlTagObject)[];
|
|
196
222
|
|
|
197
223
|
export interface Props extends LoadContext, InjectedHtmlTags {
|
|
198
|
-
siteMetadata: DocusaurusSiteMetadata;
|
|
199
|
-
routes: RouteConfig[];
|
|
200
|
-
routesPaths: string[];
|
|
201
|
-
plugins: LoadedPlugin[];
|
|
224
|
+
readonly siteMetadata: DocusaurusSiteMetadata;
|
|
225
|
+
readonly routes: RouteConfig[];
|
|
226
|
+
readonly routesPaths: string[];
|
|
227
|
+
readonly plugins: LoadedPlugin[];
|
|
202
228
|
}
|
|
203
229
|
|
|
204
230
|
export interface PluginContentLoadedActions {
|
|
205
|
-
addRoute(config: RouteConfig)
|
|
231
|
+
addRoute: (config: RouteConfig) => void;
|
|
206
232
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
207
|
-
createData(name: string, data: any)
|
|
208
|
-
setGlobalData<T = unknown>(data: T)
|
|
233
|
+
createData: (name: string, data: any) => Promise<string>;
|
|
234
|
+
setGlobalData: <T = unknown>(data: T) => void;
|
|
209
235
|
}
|
|
210
236
|
|
|
211
237
|
export type AllContent = Record<
|
|
@@ -221,36 +247,32 @@ export type PostCssOptions = Record<string, unknown> & {plugins: unknown[]};
|
|
|
221
247
|
|
|
222
248
|
export interface Plugin<Content = unknown> {
|
|
223
249
|
name: string;
|
|
224
|
-
loadContent
|
|
225
|
-
contentLoaded
|
|
250
|
+
loadContent?: () => Promise<Content>;
|
|
251
|
+
contentLoaded?: ({
|
|
226
252
|
content,
|
|
227
253
|
actions,
|
|
228
254
|
}: {
|
|
229
255
|
content: Content; // the content loaded by this plugin instance
|
|
230
256
|
allContent: AllContent; // content loaded by ALL the plugins
|
|
231
257
|
actions: PluginContentLoadedActions;
|
|
232
|
-
})
|
|
233
|
-
routesLoaded
|
|
234
|
-
postBuild
|
|
235
|
-
postStart
|
|
258
|
+
}) => Promise<void>;
|
|
259
|
+
routesLoaded?: (routes: RouteConfig[]) => void; // TODO remove soon, deprecated (alpha-60)
|
|
260
|
+
postBuild?: (props: Props) => void;
|
|
261
|
+
postStart?: (props: Props) => void;
|
|
236
262
|
// TODO refactor the configureWebpack API surface: use an object instead of multiple params (requires breaking change)
|
|
237
|
-
configureWebpack
|
|
263
|
+
configureWebpack?: (
|
|
238
264
|
config: Configuration,
|
|
239
265
|
isServer: boolean,
|
|
240
266
|
utils: ConfigureWebpackUtils,
|
|
241
267
|
content: Content,
|
|
242
|
-
)
|
|
243
|
-
configurePostCss
|
|
244
|
-
getThemePath
|
|
245
|
-
getTypeScriptThemePath
|
|
246
|
-
getPathsToWatch
|
|
247
|
-
getClientModules
|
|
248
|
-
extendCli
|
|
249
|
-
injectHtmlTags
|
|
250
|
-
content,
|
|
251
|
-
}: {
|
|
252
|
-
content: Content;
|
|
253
|
-
}): {
|
|
268
|
+
) => Configuration & {mergeStrategy?: ConfigureWebpackFnMergeStrategy};
|
|
269
|
+
configurePostCss?: (options: PostCssOptions) => PostCssOptions;
|
|
270
|
+
getThemePath?: () => string;
|
|
271
|
+
getTypeScriptThemePath?: () => string;
|
|
272
|
+
getPathsToWatch?: () => string[];
|
|
273
|
+
getClientModules?: () => string[];
|
|
274
|
+
extendCli?: (cli: Command) => void;
|
|
275
|
+
injectHtmlTags?: ({content}: {content: Content}) => {
|
|
254
276
|
headTags?: HtmlTags;
|
|
255
277
|
preBodyTags?: HtmlTags;
|
|
256
278
|
postBodyTags?: HtmlTags;
|
|
@@ -258,31 +280,31 @@ export interface Plugin<Content = unknown> {
|
|
|
258
280
|
// TODO before/afterDevServer implementation
|
|
259
281
|
|
|
260
282
|
// translations
|
|
261
|
-
getTranslationFiles
|
|
283
|
+
getTranslationFiles?: ({
|
|
262
284
|
content,
|
|
263
285
|
}: {
|
|
264
286
|
content: Content;
|
|
265
|
-
})
|
|
266
|
-
getDefaultCodeTranslationMessages
|
|
287
|
+
}) => Promise<TranslationFiles>;
|
|
288
|
+
getDefaultCodeTranslationMessages?: () => Promise<
|
|
267
289
|
Record<
|
|
268
290
|
string, // id
|
|
269
291
|
string // message
|
|
270
292
|
>
|
|
271
293
|
>;
|
|
272
|
-
translateContent
|
|
294
|
+
translateContent?: ({
|
|
273
295
|
content,
|
|
274
296
|
translationFiles,
|
|
275
297
|
}: {
|
|
276
298
|
content: Content; // the content loaded by this plugin instance
|
|
277
299
|
translationFiles: TranslationFiles;
|
|
278
|
-
})
|
|
279
|
-
translateThemeConfig
|
|
300
|
+
}) => Content;
|
|
301
|
+
translateThemeConfig?: ({
|
|
280
302
|
themeConfig,
|
|
281
303
|
translationFiles,
|
|
282
304
|
}: {
|
|
283
305
|
themeConfig: ThemeConfig;
|
|
284
306
|
translationFiles: TranslationFiles;
|
|
285
|
-
})
|
|
307
|
+
}) => ThemeConfig;
|
|
286
308
|
}
|
|
287
309
|
|
|
288
310
|
export type InitializedPlugin<Content = unknown> = Plugin<Content> & {
|
|
@@ -296,9 +318,9 @@ export type LoadedPlugin<Content = unknown> = InitializedPlugin<Content> & {
|
|
|
296
318
|
|
|
297
319
|
export type PluginModule = {
|
|
298
320
|
<T, X>(context: LoadContext, options: T): Plugin<X>;
|
|
299
|
-
validateOptions
|
|
300
|
-
validateThemeConfig
|
|
301
|
-
getSwizzleComponentList
|
|
321
|
+
validateOptions?: <T>(data: OptionValidationContext<T>) => T;
|
|
322
|
+
validateThemeConfig?: <T>(data: ThemeConfigValidationContext<T>) => T;
|
|
323
|
+
getSwizzleComponentList?: () => string[];
|
|
302
324
|
};
|
|
303
325
|
|
|
304
326
|
export type ImportedPluginModule = PluginModule & {
|
|
@@ -346,7 +368,7 @@ export interface RouteConfig {
|
|
|
346
368
|
routes?: RouteConfig[];
|
|
347
369
|
exact?: boolean;
|
|
348
370
|
priority?: number;
|
|
349
|
-
[propName: string]:
|
|
371
|
+
[propName: string]: unknown;
|
|
350
372
|
}
|
|
351
373
|
|
|
352
374
|
// Aliases used for Webpack resolution (when using docusaurus swizzle)
|
|
@@ -384,9 +406,7 @@ interface HtmlTagObject {
|
|
|
384
406
|
* Attributes of the html tag
|
|
385
407
|
* E.g. `{'disabled': true, 'value': 'demo', 'rel': 'preconnect'}`
|
|
386
408
|
*/
|
|
387
|
-
attributes?:
|
|
388
|
-
[attributeName: string]: string | boolean;
|
|
389
|
-
};
|
|
409
|
+
attributes?: Partial<Record<string, string | boolean>>;
|
|
390
410
|
/**
|
|
391
411
|
* The tag name e.g. `div`, `script`, `link`, `meta`
|
|
392
412
|
*/
|
|
@@ -420,4 +440,7 @@ export interface TOCItem {
|
|
|
420
440
|
readonly value: string;
|
|
421
441
|
readonly id: string;
|
|
422
442
|
readonly children: TOCItem[];
|
|
443
|
+
readonly level: number;
|
|
423
444
|
}
|
|
445
|
+
|
|
446
|
+
export type RouteChunksTree = {[x: string | number]: string | RouteChunksTree};
|
package/src/index.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
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
|
-
|
|
8
|
-
/* eslint-disable */
|
|
9
|
-
'use strict';
|
|
10
|
-
Object.defineProperty(exports, '__esModule', {value: true});
|