Skip to content

Commit

Permalink
refactor: avoid breaking change for useRouteMeta api (#2002)
Browse files Browse the repository at this point in the history
* refactor: avoid empty tabs from useRouteMeta

* refactor: version check include prerelease
  • Loading branch information
PeachScript committed Jan 8, 2024
1 parent a80758a commit c29cd1e
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 13 deletions.
2 changes: 1 addition & 1 deletion src/features/theme/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ function checkMinor2ByPkg(pkg: IApi['pkg']) {
const ver =
pkg.peerDependencies?.dumi || pkg.devDependencies?.dumi || '^2.0.0';

return semver.subset(ver, VERSION_2_LEVEL_NAV);
return semver.subset(ver, VERSION_2_LEVEL_NAV, { includePrerelease: true });
}

export default (api: IApi) => {
Expand Down
4 changes: 3 additions & 1 deletion src/loaders/markdown/transformer/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,9 @@ function keepSoftBreak(pkg: IApi['pkg']) {
if (pkg?.name?.startsWith('@examples/') || pkg?.name === 'dumi') return false;

const ver = pkg?.devDependencies?.dumi ?? pkg?.dependencies?.dumi ?? '^2.0.0';
return !semver.subset(ver, VERSION_2_DEPRECATE_SOFT_BREAKS);
return !semver.subset(ver, VERSION_2_DEPRECATE_SOFT_BREAKS, {
includePrerelease: true,
});
}

async function applyUnifiedPlugin(opts: {
Expand Down
27 changes: 16 additions & 11 deletions src/templates/meta/exports.ts.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -109,33 +109,38 @@ export function getRouteMetaById<T extends { syncOnly?: boolean }>(
? undefined | IRouteMeta
: Promise<undefined | IRouteMeta> | undefined {
if (filesMeta[id]) {
const { frontmatter, toc, textGetter, tabs = [] } = filesMeta[id];
const { frontmatter, toc, textGetter, tabs } = filesMeta[id];
const routeMeta: IRouteMeta = {
frontmatter,
toc: toc,
texts: [],
};

if (opts?.syncOnly) {
routeMeta.tabs = tabs.map((tabId) =>
genTab(tabId, getRouteMetaById(tabId, opts)),
);
if (tabs) {
routeMeta.tabs = tabs.map((tabId) =>
genTab(tabId, getRouteMetaById(tabId, opts)),
);
}

return routeMeta;
} else {
return new Promise(async (resolve) => {
if (textGetter) {
({ texts: routeMeta.texts } = await textGetter());
}

routeMeta.tabs = await Promise.all(
tabs.map(async (tabId) =>
genTab(tabId, await getRouteMetaById(tabId, opts)),
),
);
if (tabs) {
routeMeta.tabs = await Promise.all(
tabs.map(async (tabId) =>
genTab(tabId, await getRouteMetaById(tabId, opts)),
),
);
}

resolve(routeMeta);
});
}

return routeMeta;
}
}

Expand Down

0 comments on commit c29cd1e

Please sign in to comment.