diff --git a/addons/backgrounds/src/index.ts b/addons/backgrounds/src/index.ts index b9ba57b91818..7edab4ea6a91 100644 --- a/addons/backgrounds/src/index.ts +++ b/addons/backgrounds/src/index.ts @@ -1,3 +1,6 @@ if (module && module.hot && module.hot.decline) { module.hot.decline(); } + +// make it work with --isolatedModules +export {}; diff --git a/addons/docs/src/lib/docgen/types.ts b/addons/docs/src/lib/docgen/types.ts index 8752923a6a5e..fcae772fa5b9 100644 --- a/addons/docs/src/lib/docgen/types.ts +++ b/addons/docs/src/lib/docgen/types.ts @@ -53,4 +53,4 @@ export enum TypeSystem { UNKNOWN = 'Unknown', } -export { PropDef }; +export type { PropDef }; diff --git a/addons/docs/src/public_api.ts b/addons/docs/src/public_api.ts index e69de29bb2d1..d6953e740ddd 100644 --- a/addons/docs/src/public_api.ts +++ b/addons/docs/src/public_api.ts @@ -0,0 +1,2 @@ +// make it work with --isolatedModules +export {}; diff --git a/addons/knobs/src/type-defs.ts b/addons/knobs/src/type-defs.ts index 469dbdc6f83b..1a60879a0bb8 100644 --- a/addons/knobs/src/type-defs.ts +++ b/addons/knobs/src/type-defs.ts @@ -51,4 +51,4 @@ export type Knob = T extends 'text' ? KnobPlus, 'options' | 'value' | 'optionsObj'>> : never; -export { KnobType }; +export type { KnobType }; diff --git a/app/angular/src/client/index.ts b/app/angular/src/client/index.ts index 181462124a5d..5d2a76536cef 100644 --- a/app/angular/src/client/index.ts +++ b/app/angular/src/client/index.ts @@ -11,7 +11,7 @@ export { export * from './preview/types-6-0'; -export { StoryFnAngularReturnType as IStory } from './preview/types'; +export type { StoryFnAngularReturnType as IStory } from './preview/types'; export { moduleMetadata, componentWrapperDecorator } from './preview/decorators'; diff --git a/app/angular/src/client/preview/types-6-0.ts b/app/angular/src/client/preview/types-6-0.ts index f50f2924a6ce..c2b0514ddf3a 100644 --- a/app/angular/src/client/preview/types-6-0.ts +++ b/app/angular/src/client/preview/types-6-0.ts @@ -8,7 +8,7 @@ import { } from '@storybook/addons'; import { StoryFnAngularReturnType } from './types'; -export { Args, ArgTypes } from '@storybook/addons'; +export type { Args, ArgTypes } from '@storybook/addons'; type AngularComponent = any; type AngularReturnType = StoryFnAngularReturnType; diff --git a/app/angular/src/server/__tests__/create-fork-ts-checker-plugin.test.ts b/app/angular/src/server/__tests__/create-fork-ts-checker-plugin.test.ts index 45113b3b2122..e77d4746097a 100644 --- a/app/angular/src/server/__tests__/create-fork-ts-checker-plugin.test.ts +++ b/app/angular/src/server/__tests__/create-fork-ts-checker-plugin.test.ts @@ -39,3 +39,7 @@ it('work-around', () => { expect(true).toBe(true); }); + +// Make it work with --isolatedModules, we need a dummy export +/* eslint-disable jest/no-export */ +export default {}; diff --git a/app/aurelia/src/client/preview/index.ts b/app/aurelia/src/client/preview/index.ts index 2a27f2d79862..2a12386306e0 100644 --- a/app/aurelia/src/client/preview/index.ts +++ b/app/aurelia/src/client/preview/index.ts @@ -29,7 +29,8 @@ export const storiesOf: ClientApi['storiesOf'] = (kind, m) => { }); }; -export { StoryFnAureliaReturnType, addRegistries, addContainer, Component, addComponents }; +export { addRegistries, addContainer, addComponents }; +export type { StoryFnAureliaReturnType, Component }; export const configure: ClientApi['configure'] = (...args) => api.configure(framework, ...args); export const addDecorator: ClientApi['addDecorator'] = api.clientApi diff --git a/app/aurelia/src/server/__tests__/create-fork-ts-checker-plugin.test.ts b/app/aurelia/src/server/__tests__/create-fork-ts-checker-plugin.test.ts index 3020a10dc514..7c49df4500e3 100644 --- a/app/aurelia/src/server/__tests__/create-fork-ts-checker-plugin.test.ts +++ b/app/aurelia/src/server/__tests__/create-fork-ts-checker-plugin.test.ts @@ -37,3 +37,7 @@ it('work-around', () => { expect(true).toBe(true); }); + +// Make it work with --isolatedModules, we need a dummy export +/* eslint-disable jest/no-export */ +export default {}; diff --git a/app/react/src/client/preview/types.ts b/app/react/src/client/preview/types.ts index 2af8d722de31..615d0cf31ec2 100644 --- a/app/react/src/client/preview/types.ts +++ b/app/react/src/client/preview/types.ts @@ -2,7 +2,7 @@ import { ReactElement } from 'react'; // eslint-disable-next-line import/no-extraneous-dependencies export type { RenderContext } from '@storybook/client-api'; -export { StoryContext } from '@storybook/addons'; +export type { StoryContext } from '@storybook/addons'; export interface ShowErrorArgs { title: string; diff --git a/app/web-components/src/client/preview/types.ts b/app/web-components/src/client/preview/types.ts index 8d52cc022233..039a835cfc01 100644 --- a/app/web-components/src/client/preview/types.ts +++ b/app/web-components/src/client/preview/types.ts @@ -1,7 +1,7 @@ import { TemplateResult, SVGTemplateResult } from 'lit-html'; export type { RenderContext } from '@storybook/core'; -export { Args, ArgTypes, Parameters, StoryContext } from '@storybook/addons'; +export type { Args, ArgTypes, Parameters, StoryContext } from '@storybook/addons'; export type StoryFnHtmlReturnType = string | Node | TemplateResult | SVGTemplateResult; diff --git a/lib/api/shortcut.js b/lib/api/shortcut.js index d0609fd81b94..f3bdc238133b 100644 --- a/lib/api/shortcut.js +++ b/lib/api/shortcut.js @@ -1 +1 @@ -module.exports = require('./dist/cjs/lib/shortcut'); +export * from './dist/esm/lib/shortcut'; diff --git a/lib/api/src/modules/stories.ts b/lib/api/src/modules/stories.ts index aa9407152eba..dd72ad0beecf 100644 --- a/lib/api/src/modules/stories.ts +++ b/lib/api/src/modules/stories.ts @@ -15,13 +15,15 @@ import { getEventMetadata } from '../lib/events'; import { denormalizeStoryParameters, transformStoriesRawToStoriesHash, + isStory, + isRoot, +} from '../lib/stories'; +import type { StoriesHash, Story, Group, StoryId, - isStory, Root, - isRoot, StoriesRaw, SetStoriesPayload, } from '../lib/stories'; diff --git a/lib/ui/src/components/layout/draggers.tsx b/lib/ui/src/components/layout/draggers.tsx index bc3b2bb5b0b2..90211fd46bc1 100644 --- a/lib/ui/src/components/layout/draggers.tsx +++ b/lib/ui/src/components/layout/draggers.tsx @@ -72,4 +72,5 @@ const Handle = styled.div<{ isDragging: boolean; axis: Axis }>( } ); -export { Draggable, Handle, DraggableEvent, DraggableData }; +export { Draggable, Handle }; +export type { DraggableEvent, DraggableData }; \ No newline at end of file diff --git a/lib/ui/src/components/sidebar/SearchResults.stories.tsx b/lib/ui/src/components/sidebar/SearchResults.stories.tsx index fc7b1b471d05..75ea27ecbd95 100644 --- a/lib/ui/src/components/sidebar/SearchResults.stories.tsx +++ b/lib/ui/src/components/sidebar/SearchResults.stories.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { StoriesHash } from '@storybook/api'; +import type { StoriesHash } from '@storybook/api'; import { mockDataset } from './mockdata'; import { SearchResults } from './SearchResults'; diff --git a/lib/ui/src/components/sidebar/Sidebar.tsx b/lib/ui/src/components/sidebar/Sidebar.tsx index 59c6a5a4a7ce..43c981604929 100644 --- a/lib/ui/src/components/sidebar/Sidebar.tsx +++ b/lib/ui/src/components/sidebar/Sidebar.tsx @@ -3,7 +3,7 @@ import React, { FunctionComponent, useMemo } from 'react'; import { styled } from '@storybook/theming'; import { ScrollArea, Spaced } from '@storybook/components'; -import { StoriesHash, State } from '@storybook/api'; +import type { StoriesHash, State } from '@storybook/api'; import { Heading } from './Heading'; diff --git a/lib/ui/src/components/sidebar/Tree.stories.tsx b/lib/ui/src/components/sidebar/Tree.stories.tsx index 98a38247522e..40d7fa161c0a 100644 --- a/lib/ui/src/components/sidebar/Tree.stories.tsx +++ b/lib/ui/src/components/sidebar/Tree.stories.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { StoriesHash } from '@storybook/api'; +import type { StoriesHash } from '@storybook/api'; import { Tree } from './Tree'; import { stories } from './mockdata.large'; diff --git a/lib/ui/src/components/sidebar/Tree.tsx b/lib/ui/src/components/sidebar/Tree.tsx index 4c0ff6a8a685..68160b6282b2 100644 --- a/lib/ui/src/components/sidebar/Tree.tsx +++ b/lib/ui/src/components/sidebar/Tree.tsx @@ -1,4 +1,5 @@ -import { Group, Story, StoriesHash, isRoot, isStory } from '@storybook/api'; +import type { Group, Story, StoriesHash } from '@storybook/api'; +import { isRoot, isStory } from '@storybook/api'; import { styled } from '@storybook/theming'; import { Icons } from '@storybook/components'; import { transparentize } from 'polished'; diff --git a/lib/ui/src/components/sidebar/data.test.ts b/lib/ui/src/components/sidebar/data.test.ts index 1194a5cd12b4..366338d251de 100644 --- a/lib/ui/src/components/sidebar/data.test.ts +++ b/lib/ui/src/components/sidebar/data.test.ts @@ -1,4 +1,4 @@ -import { StoriesHash } from '@storybook/api'; +import type { StoriesHash } from '@storybook/api'; import { collapseDocsOnlyStories, collapseAllStories } from './data'; type Item = StoriesHash[keyof StoriesHash]; diff --git a/lib/ui/src/components/sidebar/data.ts b/lib/ui/src/components/sidebar/data.ts index 22f2d044b67e..4a3d529f469a 100644 --- a/lib/ui/src/components/sidebar/data.ts +++ b/lib/ui/src/components/sidebar/data.ts @@ -1,4 +1,4 @@ -import { Story, StoriesHash } from '@storybook/api'; +import type { Story, StoriesHash } from '@storybook/api'; import { Item } from './types'; export const DEFAULT_REF_ID = 'storybook_internal'; diff --git a/lib/ui/src/components/sidebar/mockdata.ts b/lib/ui/src/components/sidebar/mockdata.ts index aa21a0186e14..61bed943ac4e 100644 --- a/lib/ui/src/components/sidebar/mockdata.ts +++ b/lib/ui/src/components/sidebar/mockdata.ts @@ -1,4 +1,4 @@ -import { StoriesHash } from '@storybook/api'; +import type { StoriesHash } from '@storybook/api'; export type MockDataSet = Record; diff --git a/lib/ui/src/components/sidebar/types.ts b/lib/ui/src/components/sidebar/types.ts index be880a50af05..29f14743004a 100644 --- a/lib/ui/src/components/sidebar/types.ts +++ b/lib/ui/src/components/sidebar/types.ts @@ -1,4 +1,4 @@ -import { StoriesHash, State } from '@storybook/api'; +import type { StoriesHash, State } from '@storybook/api'; import { ControllerStateAndHelpers } from 'downshift'; export type Refs = State['refs']; diff --git a/lib/ui/src/components/sidebar/useExpanded.ts b/lib/ui/src/components/sidebar/useExpanded.ts index b4d6e1ed88f5..9ebab6f0577f 100644 --- a/lib/ui/src/components/sidebar/useExpanded.ts +++ b/lib/ui/src/components/sidebar/useExpanded.ts @@ -1,4 +1,5 @@ -import { StoriesHash, useStorybookApi } from '@storybook/api'; +import type { StoriesHash } from '@storybook/api'; +import { useStorybookApi } from '@storybook/api'; import { STORIES_COLLAPSE_ALL, STORIES_EXPAND_ALL } from '@storybook/core-events'; import { document } from 'global'; import throttle from 'lodash/throttle'; diff --git a/lib/ui/src/components/sidebar/utils.ts b/lib/ui/src/components/sidebar/utils.ts index 4dafe730f717..017b24d80baa 100644 --- a/lib/ui/src/components/sidebar/utils.ts +++ b/lib/ui/src/components/sidebar/utils.ts @@ -1,7 +1,8 @@ import memoize from 'memoizerific'; import { document, window, DOCS_MODE } from 'global'; import { SyntheticEvent } from 'react'; -import { StoriesHash, isRoot } from '@storybook/api'; +import type { StoriesHash } from '@storybook/api'; +import { isRoot } from '@storybook/api'; import { DEFAULT_REF_ID } from './data'; import { Item, RefType, Dataset, SearchItem } from './types'; diff --git a/lib/ui/src/containers/preview.tsx b/lib/ui/src/containers/preview.tsx index ff6f6b3beb0f..e6d9c7d9b31d 100644 --- a/lib/ui/src/containers/preview.tsx +++ b/lib/ui/src/containers/preview.tsx @@ -1,7 +1,8 @@ import { PREVIEW_URL } from 'global'; import React from 'react'; -import { Consumer, Combo, StoriesHash, isRoot, isGroup, isStory } from '@storybook/api'; +import type { Combo, StoriesHash } from '@storybook/api'; +import { Consumer, isRoot, isGroup, isStory } from '@storybook/api'; import { Preview } from '../components/preview/preview'; diff --git a/lib/ui/src/containers/sidebar.tsx b/lib/ui/src/containers/sidebar.tsx index 9cfd8cbc3f28..6c9403f699a7 100755 --- a/lib/ui/src/containers/sidebar.tsx +++ b/lib/ui/src/containers/sidebar.tsx @@ -1,6 +1,7 @@ import React, { FunctionComponent } from 'react'; -import { Consumer, Combo, StoriesHash } from '@storybook/api'; +import type { Combo, StoriesHash } from '@storybook/api'; +import { Consumer } from '@storybook/api'; import { Sidebar as SidebarComponent } from '../components/sidebar/Sidebar'; import { useMenu } from './menu'; diff --git a/lib/ui/src/typings.ts b/lib/ui/src/typings.d.ts similarity index 100% rename from lib/ui/src/typings.ts rename to lib/ui/src/typings.d.ts diff --git a/tsconfig.json b/tsconfig.json index 155b8b2cb42d..48c822328073 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,6 +11,7 @@ "skipLibCheck": true, "allowSyntheticDefaultImports": true, "esModuleInterop": true, + "isolatedModules": true, "target": "es5", "types": ["jest"], "lib": ["es2017", "dom"]