dumi 2.4.48-alpha.0 → 2.4.49-alpha.0

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.
Files changed (32) hide show
  1. package/dist/assetParsers/block.js +14 -23
  2. package/dist/client/pages/Demo/index.js +3 -50
  3. package/dist/client/theme-api/DumiDemo/areDumiDemoPropsEqual.d.ts +1 -0
  4. package/dist/client/theme-api/DumiDemo/areDumiDemoPropsEqual.js +4 -0
  5. package/dist/client/theme-api/DumiDemo/index.d.ts +0 -2
  6. package/dist/client/theme-api/DumiDemo/index.js +7 -67
  7. package/dist/client/theme-api/routeMetaHMR.d.ts +5 -0
  8. package/dist/client/theme-api/routeMetaHMR.js +23 -0
  9. package/dist/client/theme-api/types.d.ts +0 -1
  10. package/dist/client/theme-api/useRouteMeta.d.ts +2 -1
  11. package/dist/client/theme-api/useRouteMeta.js +35 -3
  12. package/dist/features/compile/index.d.ts +1 -0
  13. package/dist/features/compile/index.js +4 -19
  14. package/dist/features/compile/utoopackLoaders.d.ts +0 -3
  15. package/dist/features/compile/utoopackLoaders.js +19 -25
  16. package/dist/features/meta.js +2 -0
  17. package/dist/features/routes.js +18 -6
  18. package/dist/loaders/markdown/index.d.ts +8 -35
  19. package/dist/loaders/markdown/index.js +178 -332
  20. package/dist/loaders/markdown/transformer/index.d.ts +0 -4
  21. package/dist/loaders/markdown/transformer/rehypeDemo.js +82 -129
  22. package/dist/techStacks/react.js +1 -2
  23. package/dist/templates/meta/index.ts.tpl +36 -1
  24. package/dist/types.d.ts +0 -6
  25. package/dist/utils.d.ts +1 -2
  26. package/dist/utils.js +2 -8
  27. package/package.json +7 -9
  28. package/theme-default/slots/SourceCodeEditor/index.js +0 -3
  29. package/dist/client/theme-api/DumiDemo/hmr.d.ts +0 -5
  30. package/dist/client/theme-api/DumiDemo/hmr.js +0 -67
  31. package/dist/loaders/markdown/sharedCache.d.ts +0 -11
  32. package/dist/loaders/markdown/sharedCache.js +0 -131
@@ -39,6 +39,7 @@ var import_path = __toESM(require("path"));
39
39
  var import_pluralize = require("pluralize");
40
40
  var import_plugin_utils = require("umi/plugin-utils");
41
41
  var CTX_LAYOUT_ID = "dumi-context-layout";
42
+ var ATOM_ROUTE_MARKDOWN_GLOB = "{*,*/index,*/index.*,*/README,*/README.*}.md";
42
43
  function normalizeDocDir(docDir) {
43
44
  return typeof docDir === "object" ? docDir : { dir: docDir };
44
45
  }
@@ -79,12 +80,23 @@ function flatRoute(route, docLayoutId) {
79
80
  }
80
81
  var routes_default = (api) => {
81
82
  api.describe({ key: "dumi:routes" });
82
- api.addTmpGenerateWatcherPaths(
83
- () => [
84
- ...api.config.resolve.atomDirs,
85
- ...api.config.resolve.docDirs.map(normalizeDocDir)
86
- ].map(({ dir }) => import_path.default.join(api.cwd, dir, "**/*.md"))
87
- );
83
+ api.addTmpGenerateWatcherPaths(() => {
84
+ const watcherPaths = [
85
+ ...api.config.resolve.atomDirs.map(
86
+ ({ dir }) => import_path.default.join(api.cwd, dir, ATOM_ROUTE_MARKDOWN_GLOB)
87
+ ),
88
+ ...api.config.resolve.docDirs.map(normalizeDocDir).map(({ dir }) => import_path.default.join(api.cwd, dir, "**/*.md"))
89
+ ].map(import_plugin_utils.winPath);
90
+ if (api.env === "development" && api.config.utoopack) {
91
+ return watcherPaths.map((watcherPath) => ({
92
+ path: watcherPath,
93
+ // Existing Markdown files are already watched by the bundler. Only
94
+ // route topology changes need to regenerate Umi's temporary files.
95
+ events: ["add", "unlink"]
96
+ }));
97
+ }
98
+ return watcherPaths;
99
+ });
88
100
  api.modifyDefaultConfig((memo) => {
89
101
  if (api.userConfig.resolve) {
90
102
  const keys = ["docDirs", "atomDirs"];
@@ -2,8 +2,6 @@ import type { IThemeLoadResult } from '../../features/theme/loader';
2
2
  import { type IMdTransformerOptions, type IMdTransformerResult } from './transformer';
3
3
  interface IMdLoaderDefaultModeOptions extends Omit<IMdTransformerOptions, 'fileAbsPath'> {
4
4
  mode?: 'markdown';
5
- cacheDirectory?: string;
6
- cacheEpoch?: string;
7
5
  builtins: IThemeLoadResult['builtins'];
8
6
  onResolveDemos?: (demos: NonNullable<IMdTransformerResult['meta']['demos']>) => void;
9
7
  onResolveAtomMeta?: (atomId: string, meta: IMdTransformerResult['meta']['frontmatter']) => void;
@@ -25,43 +23,18 @@ interface IMdLoaderFrontmatterModeOptions extends Omit<IMdLoaderDefaultModeOptio
25
23
  interface IMdLoaderTextModeOptions extends Omit<IMdLoaderDefaultModeOptions, 'builtins' | 'mode'> {
26
24
  mode: 'text';
27
25
  }
28
- export type IMdLoaderOptions = IMdLoaderDefaultModeOptions | IMdLoaderDemosModeOptions | IMdLoaderDemoModeOptions | IMdLoaderFrontmatterModeOptions | IMdLoaderTextModeOptions | IMdLoaderDemoIndexModeOptions;
26
+ interface IMdLoaderRenderTextModeOptions extends Omit<IMdLoaderDefaultModeOptions, 'builtins' | 'mode'> {
27
+ mode: 'text-render';
28
+ }
29
+ export type IMdLoaderOptions = IMdLoaderDefaultModeOptions | IMdLoaderDemosModeOptions | IMdLoaderDemoModeOptions | IMdLoaderFrontmatterModeOptions | IMdLoaderTextModeOptions | IMdLoaderRenderTextModeOptions | IMdLoaderDemoIndexModeOptions;
29
30
  type MdLoaderCache = {
30
31
  getSync: (key: string, defaultValue: any) => any;
31
32
  };
32
- type MdTransformCacheRecord = {
33
- version: 2;
34
- deps: string[];
35
- depsKey: string;
36
- result: IMdTransformerResult;
37
- };
38
- type ReadDependency = (file: string) => Promise<string>;
39
- export declare function getMdTransformCacheKeys({ resourcePath, content, useUtoopackDemoHMR, opts, }: {
40
- resourcePath: string;
41
- content: string;
42
- useUtoopackDemoHMR: boolean;
43
- opts: IMdLoaderOptions;
44
- }): {
45
- depsHintKey: string;
46
- baseCacheKey: string;
47
- };
48
33
  export declare function getMdLoaderCacheSync<T>(cache: MdLoaderCache, key: string, defaultValue: T): T;
49
34
  export declare function getDemoSourceFiles(demos?: IMdTransformerResult['meta']['demos']): string[];
50
- export declare function addDemoFileDependency(loaderContext: {
51
- addDependency: (file: string) => void;
52
- addMissingDependency?: (file: string) => void;
53
- }, opts: IMdLoaderOptions, file: string): void;
54
- export declare function emitDemo(this: any, opts: IMdLoaderDemoModeOptions, ret: IMdTransformerResult): string;
55
- export declare function getDepsCacheKey(deps?: string[], readDependency?: ReadDependency): Promise<string>;
56
- export declare function getMdLoaderCacheResult(cache: MdLoaderCache, key: string, readDependency?: ReadDependency): Promise<IMdTransformerResult | undefined>;
57
- export declare function createStableTransform({ initialDeps, createValue, getDeps, readDependency, onDepsDiscovered, maxAttempts, }: {
58
- initialDeps?: string[];
59
- createValue: () => Promise<IMdTransformerResult>;
60
- getDeps: (result: IMdTransformerResult) => string[];
61
- readDependency?: ReadDependency;
62
- onDepsDiscovered?: (deps: string[]) => void;
63
- maxAttempts?: number;
64
- }): Promise<MdTransformCacheRecord>;
65
- export declare function createDependencyReader(loaderContext: any, useUtoopack: boolean, mode?: IMdLoaderOptions['mode']): ReadDependency;
35
+ export declare function emitDefault(this: any, opts: IMdLoaderDefaultModeOptions, ret: IMdTransformerResult): string;
36
+ export declare function emitFrontmatter(this: any, opts: IMdLoaderFrontmatterModeOptions, ret: IMdTransformerResult): string;
37
+ export declare function emitText(this: any, opts: IMdLoaderTextModeOptions, ret: IMdTransformerResult): string;
38
+ export declare function emitRenderText(this: any, _opts: IMdLoaderRenderTextModeOptions, ret: IMdTransformerResult): string;
66
39
  export default function mdLoader(this: any, content: string): void;
67
40
  export {};