Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maintenance: Fix performance regressions #26411

Merged
merged 1 commit into from
Mar 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ jobs:
command: |
yarn task --task compile --start-from=auto --no-link --debug
git diff --exit-code
yarn dedupe --check
ndelangen marked this conversation as resolved.
Show resolved Hide resolved
- run:
name: Publish to Verdaccio
command: |
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 2 additions & 3 deletions code/addons/interactions/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,9 @@
},
"dependencies": {
"@storybook/global": "^5.0.0",
"@storybook/instrumenter": "workspace:*",
"@storybook/test": "workspace:*",
"@storybook/types": "workspace:*",
"jest-mock": "^27.0.6",
"polished": "^4.2.2",
"ts-dedent": "^2.2.0"
},
Expand All @@ -62,10 +63,8 @@
"@storybook/core-common": "workspace:*",
"@storybook/core-events": "workspace:*",
"@storybook/icons": "^1.2.5",
"@storybook/instrumenter": "workspace:*",
"@storybook/manager-api": "workspace:*",
"@storybook/preview-api": "workspace:*",
"@storybook/test": "workspace:*",
"@storybook/theming": "workspace:*",
"@types/node": "^18.0.0",
"formik": "^2.2.9",
Expand Down
3 changes: 2 additions & 1 deletion code/builders/builder-vite/src/optimizeDeps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ import type { InlineConfig as ViteInlineConfig, UserConfig } from 'vite';
import type { Options } from '@storybook/types';
import { listStories } from './list-stories';

// It ensures that vite converts cjs deps into esm without vite having to find them during startup and then having to log a message about them and restart
// TODO: Many of the deps might be prebundled now though, so probably worth trying to remove and see what happens
const INCLUDE_CANDIDATES = [
'@base2/pretty-print-object',
'@emotion/core',
Expand All @@ -27,7 +29,6 @@ const INCLUDE_CANDIDATES = [
'fast-deep-equal',
'html-tags',
'isobject',
'jest-mock',
'loader-utils',
'lodash/camelCase.js',
'lodash/camelCase',
Expand Down
2 changes: 1 addition & 1 deletion code/lib/instrumenter/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
"@storybook/core-events": "workspace:*",
"@storybook/global": "^5.0.0",
"@storybook/preview-api": "workspace:*",
"@vitest/utils": "^0.34.6",
"@vitest/utils": "^1.3.1",
"util": "^0.12.4"
},
"devDependencies": {
Expand Down
1 change: 0 additions & 1 deletion code/lib/manager-api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@
"ts-dedent": "^2.0.0"
},
"devDependencies": {
"@jest/globals": "^29.3.1",
"@types/lodash": "^4.14.167",
"@types/qs": "^6",
"@types/semver": "^7.3.4",
Expand Down
1 change: 0 additions & 1 deletion code/lib/preview-api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@
"util-deprecate": "^1.0.2"
},
"devDependencies": {
"@jest/globals": "^29.5.0",
"@storybook/core-common": "workspace:*",
"ansi-to-html": "^0.6.11",
"slash": "^5.0.0"
Expand Down
10 changes: 5 additions & 5 deletions code/lib/test/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,12 @@
"@storybook/core-events": "workspace:*",
"@storybook/instrumenter": "workspace:*",
"@storybook/preview-api": "workspace:*",
"@testing-library/dom": "^9.3.1",
"@testing-library/jest-dom": "^6.4.0",
"@testing-library/dom": "^9.3.4",
"@testing-library/jest-dom": "^6.4.2",
"@testing-library/user-event": "^14.5.2",
"@vitest/expect": "1.1.3",
"@vitest/spy": "^1.1.3",
"chai": "^4.3.7",
"@vitest/expect": "1.3.1",
"@vitest/spy": "^1.3.1",
"chai": "^4.4.1",
"util": "^0.12.4"
},
"devDependencies": {
Expand Down
5 changes: 3 additions & 2 deletions code/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,9 @@
"resolutions": {
"@playwright/test": "1.36.0",
"@storybook/theming": "workspace:*",
"@testing-library/jest-dom/aria-query": "5.1.3",
"@types/node": "^18.0.0",
"@vitest/expect@1.1.3": "patch:@vitest/expect@npm%3A1.1.3#~/.yarn/patches/@vitest-expect-npm-1.1.3-2062bf533f.patch",
"@vitest/expect": "patch:@vitest/expect@npm%3A1.3.1#~/.yarn/patches/@vitest-expect-npm-1.3.1-973071a540.patch",
"esbuild": "^0.20.1",
"playwright": "1.36.0",
"playwright-core": "1.36.0",
Expand Down Expand Up @@ -170,7 +171,7 @@
"@storybook/web-components-vite": "workspace:*",
"@storybook/web-components-webpack5": "workspace:*",
"@testing-library/dom": "^7.29.4",
"@testing-library/jest-dom": "^6.1.4",
"@testing-library/jest-dom": "6.1.4",
"@testing-library/react": "^14.0.0",
"@testing-library/user-event": "^14.4.3",
"@types/express": "^4.17.11",
Expand Down
2 changes: 1 addition & 1 deletion code/renderers/vue3/src/docs/sourceDecorator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import type {
import { baseParse } from '@vue/compiler-core';
import type { ConcreteComponent, FunctionalComponent, VNode } from 'vue';
import { h, isVNode, watch } from 'vue';
import { kebabCase } from 'lodash';
import kebabCase from 'lodash/kebabCase';
import {
attributeSource,
htmlEventAttributeToVueEventAttribute,
Expand Down
14 changes: 9 additions & 5 deletions code/ui/blocks/src/blocks/ArgTypes.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import { filterArgTypes } from '@storybook/preview-api';
import type { ArgTypesExtractor } from '@storybook/docs-tools';
import React from 'react';

import { mapValues } from 'lodash';
import type { SortType } from '../components';
import { ArgsTable as PureArgsTable, ArgsTableError, TabbedArgsTable } from '../components';
import { useOf } from './useOf';
Expand Down Expand Up @@ -83,10 +82,15 @@ export const ArgTypes: FC<ArgTypesProps> = (props) => {
}

const mainComponentName = getComponentName(component);
const subcomponentTabs = mapValues(subcomponents, (comp) => ({
rows: filterArgTypes(extractComponentArgTypes(comp, parameters), include, exclude),
sort,
}));
const subcomponentTabs = Object.fromEntries(
Object.entries(subcomponents).map(([key, comp]) => [
key,
{
rows: filterArgTypes(extractComponentArgTypes(comp, parameters), include, exclude),
sort,
},
])
);
Comment on lines -86 to +93
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JReinhold Could you check if what I did here makes sense to you?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good

const tabs = {
[mainComponentName]: { rows: filteredArgTypes, sort },
...subcomponentTabs,
Expand Down
14 changes: 9 additions & 5 deletions code/ui/blocks/src/blocks/Controls.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import { filterArgTypes } from '@storybook/preview-api';
import type { PropDescriptor } from '@storybook/preview-api';
import type { ArgTypesExtractor } from '@storybook/docs-tools';

import { mapValues } from 'lodash';
import type { SortType } from '../components';
import { ArgsTable as PureArgsTable, ArgsTableError, TabbedArgsTable } from '../components';
import { DocsContext } from './DocsContext';
Expand Down Expand Up @@ -75,10 +74,15 @@ export const Controls: FC<ControlsProps> = (props) => {
}

const mainComponentName = getComponentName(component);
const subcomponentTabs = mapValues(subcomponents, (comp) => ({
rows: filterArgTypes(extractComponentArgTypes(comp, parameters), include, exclude),
sort,
}));
const subcomponentTabs = Object.fromEntries(
Object.entries(subcomponents).map(([key, comp]) => [
key,
{
rows: filterArgTypes(extractComponentArgTypes(comp, parameters), include, exclude),
sort,
},
])
);
const tabs = {
[mainComponentName]: { rows: filteredArgTypes, sort },
...subcomponentTabs,
Expand Down