@docusaurus/types 2.0.0-beta.0f144213d → 2.0.0-beta.11
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 -40
- 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.11",
|
|
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": "1cb6cdfb78c0bfc681bce9a9339270abb9a06215"
|
|
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,34 +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: Content,
|
|
251
|
-
}): {
|
|
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}) => {
|
|
252
276
|
headTags?: HtmlTags;
|
|
253
277
|
preBodyTags?: HtmlTags;
|
|
254
278
|
postBodyTags?: HtmlTags;
|
|
@@ -256,31 +280,31 @@ export interface Plugin<Content = unknown> {
|
|
|
256
280
|
// TODO before/afterDevServer implementation
|
|
257
281
|
|
|
258
282
|
// translations
|
|
259
|
-
getTranslationFiles
|
|
283
|
+
getTranslationFiles?: ({
|
|
260
284
|
content,
|
|
261
285
|
}: {
|
|
262
286
|
content: Content;
|
|
263
|
-
})
|
|
264
|
-
getDefaultCodeTranslationMessages
|
|
287
|
+
}) => Promise<TranslationFiles>;
|
|
288
|
+
getDefaultCodeTranslationMessages?: () => Promise<
|
|
265
289
|
Record<
|
|
266
290
|
string, // id
|
|
267
291
|
string // message
|
|
268
292
|
>
|
|
269
293
|
>;
|
|
270
|
-
translateContent
|
|
294
|
+
translateContent?: ({
|
|
271
295
|
content,
|
|
272
296
|
translationFiles,
|
|
273
297
|
}: {
|
|
274
298
|
content: Content; // the content loaded by this plugin instance
|
|
275
299
|
translationFiles: TranslationFiles;
|
|
276
|
-
})
|
|
277
|
-
translateThemeConfig
|
|
300
|
+
}) => Content;
|
|
301
|
+
translateThemeConfig?: ({
|
|
278
302
|
themeConfig,
|
|
279
303
|
translationFiles,
|
|
280
304
|
}: {
|
|
281
305
|
themeConfig: ThemeConfig;
|
|
282
306
|
translationFiles: TranslationFiles;
|
|
283
|
-
})
|
|
307
|
+
}) => ThemeConfig;
|
|
284
308
|
}
|
|
285
309
|
|
|
286
310
|
export type InitializedPlugin<Content = unknown> = Plugin<Content> & {
|
|
@@ -294,9 +318,9 @@ export type LoadedPlugin<Content = unknown> = InitializedPlugin<Content> & {
|
|
|
294
318
|
|
|
295
319
|
export type PluginModule = {
|
|
296
320
|
<T, X>(context: LoadContext, options: T): Plugin<X>;
|
|
297
|
-
validateOptions
|
|
298
|
-
validateThemeConfig
|
|
299
|
-
getSwizzleComponentList
|
|
321
|
+
validateOptions?: <T>(data: OptionValidationContext<T>) => T;
|
|
322
|
+
validateThemeConfig?: <T>(data: ThemeConfigValidationContext<T>) => T;
|
|
323
|
+
getSwizzleComponentList?: () => string[];
|
|
300
324
|
};
|
|
301
325
|
|
|
302
326
|
export type ImportedPluginModule = PluginModule & {
|
|
@@ -344,6 +368,7 @@ export interface RouteConfig {
|
|
|
344
368
|
routes?: RouteConfig[];
|
|
345
369
|
exact?: boolean;
|
|
346
370
|
priority?: number;
|
|
371
|
+
[propName: string]: unknown;
|
|
347
372
|
}
|
|
348
373
|
|
|
349
374
|
// Aliases used for Webpack resolution (when using docusaurus swizzle)
|
|
@@ -381,9 +406,7 @@ interface HtmlTagObject {
|
|
|
381
406
|
* Attributes of the html tag
|
|
382
407
|
* E.g. `{'disabled': true, 'value': 'demo', 'rel': 'preconnect'}`
|
|
383
408
|
*/
|
|
384
|
-
attributes?:
|
|
385
|
-
[attributeName: string]: string | boolean;
|
|
386
|
-
};
|
|
409
|
+
attributes?: Partial<Record<string, string | boolean>>;
|
|
387
410
|
/**
|
|
388
411
|
* The tag name e.g. `div`, `script`, `link`, `meta`
|
|
389
412
|
*/
|
|
@@ -417,4 +440,7 @@ export interface TOCItem {
|
|
|
417
440
|
readonly value: string;
|
|
418
441
|
readonly id: string;
|
|
419
442
|
readonly children: TOCItem[];
|
|
443
|
+
readonly level: number;
|
|
420
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});
|