Skip to content

Commit dcde9f0

Browse files
committed
hotfix: sotrybook and undici
1 parent 23202f6 commit dcde9f0

File tree

2 files changed

+46
-41
lines changed

2 files changed

+46
-41
lines changed

.storybook/main.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,12 @@ const config: StorybookConfig = {
3232
`<body class="${rootClasses}"></body>`,
3333
core: { disableTelemetry: true, disableWhatsNewNotifications: true },
3434
framework: { name: '@storybook/nextjs', options: {} },
35-
webpack: async config => ({ ...config, performance: { hints: false } }),
35+
webpack: async config => ({
36+
...config,
37+
target: 'browserslist',
38+
performance: { hints: false },
39+
resolve: { ...config.resolve, alias: { '@nodevu/core': false } },
40+
}),
3641
};
3742

3843
export default config;

next-data/generators/releaseData.mjs

+40-40
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import nodevu from '@nodevu/core';
2-
31
// Gets the appropriate release status for each major release
42
const getNodeReleaseStatus = (now, support) => {
53
const { endOfLife, maintenanceStart, ltsStart, currentStart } = support;
@@ -30,50 +28,52 @@ const getNodeReleaseStatus = (now, support) => {
3028
* @returns {Promise<import('../../types').NodeRelease[]>}
3129
*/
3230
const generateReleaseData = async () => {
33-
const nodevuOutput = await nodevu({ fetch: fetch });
31+
return import('@nodevu/core').then(async ({ default: nodevu }) => {
32+
const nodevuOutput = await nodevu({ fetch: fetch });
3433

35-
// Filter out those without documented support
36-
// Basically those not in schedule.json
37-
const majors = Object.values(nodevuOutput).filter(major => !!major.support);
34+
// Filter out those without documented support
35+
// Basically those not in schedule.json
36+
const majors = Object.values(nodevuOutput).filter(major => !!major.support);
3837

39-
const nodeReleases = majors.map(major => {
40-
const [latestVersion] = Object.values(major.releases);
38+
const nodeReleases = majors.map(major => {
39+
const [latestVersion] = Object.values(major.releases);
4140

42-
const support = {
43-
currentStart: major.support.phases.dates.start,
44-
ltsStart: major.support.phases.dates.lts,
45-
maintenanceStart: major.support.phases.dates.maintenance,
46-
endOfLife: major.support.phases.dates.end,
47-
};
41+
const support = {
42+
currentStart: major.support.phases.dates.start,
43+
ltsStart: major.support.phases.dates.lts,
44+
maintenanceStart: major.support.phases.dates.maintenance,
45+
endOfLife: major.support.phases.dates.end,
46+
};
4847

49-
const status = getNodeReleaseStatus(new Date(), support);
48+
const status = getNodeReleaseStatus(new Date(), support);
5049

51-
return {
52-
...support,
53-
status,
54-
major: latestVersion.semver.major,
55-
version: latestVersion.semver.raw,
56-
versionWithPrefix: `v${latestVersion.semver.raw}`,
57-
codename: major.codename || '',
58-
isLts: status === 'Active LTS' || status === 'Maintenance LTS',
59-
npm: latestVersion.dependencies.npm || '',
60-
v8: latestVersion.dependencies.v8 || '',
61-
releaseDate: latestVersion.releaseDate || '',
62-
modules: latestVersion.modules.version || '',
63-
};
64-
});
50+
return {
51+
...support,
52+
status,
53+
major: latestVersion.semver.major,
54+
version: latestVersion.semver.raw,
55+
versionWithPrefix: `v${latestVersion.semver.raw}`,
56+
codename: major.codename || '',
57+
isLts: status === 'Active LTS' || status === 'Maintenance LTS',
58+
npm: latestVersion.dependencies.npm || '',
59+
v8: latestVersion.dependencies.v8 || '',
60+
releaseDate: latestVersion.releaseDate || '',
61+
modules: latestVersion.modules.version || '',
62+
};
63+
});
6564

66-
return Promise.resolve(
67-
// nodevu returns duplicated v0.x versions (v0.12, v0.10, ...).
68-
// This behavior seems intentional as the case is hardcoded in nodevu,
69-
// see https://github.com/cutenode/nodevu/blob/0c8538c70195fb7181e0a4d1eeb6a28e8ed95698/core/index.js#L24.
70-
// This line ignores those duplicated versions and takes the latest
71-
// v0.x version (v0.12.18). It is also consistent with the legacy
72-
// nodejs.org implementation.
73-
nodeReleases.filter(
74-
release => release.major !== 0 || release.version === '0.12.18'
75-
)
76-
);
65+
return Promise.resolve(
66+
// nodevu returns duplicated v0.x versions (v0.12, v0.10, ...).
67+
// This behavior seems intentional as the case is hardcoded in nodevu,
68+
// see https://github.com/cutenode/nodevu/blob/0c8538c70195fb7181e0a4d1eeb6a28e8ed95698/core/index.js#L24.
69+
// This line ignores those duplicated versions and takes the latest
70+
// v0.x version (v0.12.18). It is also consistent with the legacy
71+
// nodejs.org implementation.
72+
nodeReleases.filter(
73+
release => release.major !== 0 || release.version === '0.12.18'
74+
)
75+
);
76+
});
7777
};
7878

7979
export default generateReleaseData;

0 commit comments

Comments
 (0)