Skip to content

Commit

Permalink
Clean up main package file structure (#1442)
Browse files Browse the repository at this point in the history
* Remove extra server nesting

* Fix paths

* Use main react-cosmos entry point

* Prettify

* Run test workflows on main branch
  • Loading branch information
ovidiuch committed Apr 10, 2023
1 parent 0d1dbd5 commit 69fd664
Show file tree
Hide file tree
Showing 153 changed files with 117 additions and 119 deletions.
5 changes: 4 additions & 1 deletion .github/workflows/test-pnp.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
name: test-pnp
on: [pull_request]
on:
pull_request:
push:
branches: main
jobs:
pnp-install-and-run:
runs-on: ubuntu-latest
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
name: test
on: [pull_request]
on:
pull_request:
push:
branches: main
jobs:
source:
strategy:
Expand Down
10 changes: 5 additions & 5 deletions .jest/config.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ module.exports = {
// These files are mocked because they are only available after
// Cosmos packages are built, and tests should run with source code only.
'react-cosmos-ui/dist/playground.bundle.js.map':
'<rootDir>/packages/react-cosmos/src/server/testMocks/playground.bundle.js.map',
'<rootDir>/packages/react-cosmos/src/testMocks/playground.bundle.js.map',
'react-cosmos-ui/dist/playground.bundle.js':
'<rootDir>/packages/react-cosmos/src/server/testMocks/playground.bundle.js',
'<rootDir>/packages/react-cosmos/src/testMocks/playground.bundle.js',
},
// https://kulshekhar.github.io/ts-jest/docs/getting-started/options/tsconfig
transform: {
Expand All @@ -61,9 +61,9 @@ module.exports = {
'!packages/react-cosmos-ui/src/plugins/PluginList/**',
'!packages/react-cosmos-ui/src/plugins/RendererSelect/**',
// Ignore coverage from unsupported ES modules
'!packages/react-cosmos/src/server/utils/requireModule.ts',
'!packages/react-cosmos/src/server/utils/resolve.ts',
'!packages/react-cosmos/src/server/shared/staticPath.ts',
'!packages/react-cosmos/src/utils/requireModule.ts',
'!packages/react-cosmos/src/utils/resolve.ts',
'!packages/react-cosmos/src/shared/staticPath.ts',
'!packages/react-cosmos-plugin-webpack/src/client/index.ts',
'!packages/react-cosmos-plugin-webpack/src/client/errorOverlay/index.ts',
'!packages/react-cosmos-plugin-webpack/src/server/utils/requireModule.ts',
Expand Down
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ package.json
packages/*/dist
packages/*/package.json
website/dist
testMocks
2 changes: 1 addition & 1 deletion examples/webpack/tests/fixtures.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import 'react-cosmos/jest';

import path from 'path';
import { getCosmosConfigAtPath, getFixtures } from 'react-cosmos/server';
import { getCosmosConfigAtPath, getFixtures } from 'react-cosmos';

it('returns fixture info', async () => {
const cosmosConfig = await getCosmosConfigAtPath(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import retry from '@skidding/async-retry';
import React from 'react';
import { ReactTestRenderer } from 'react-test-renderer';
import { uuid } from '../../../utils/uuid.js';
import { FixtureContext } from '../../../fixture/FixtureContext.js';
import { uuid } from '../../../utils/uuid.js';
import { testFixtureLoader } from '../testHelpers/index.js';
import { wrapFixtures } from '../testHelpers/wrapFixture.js';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import retry from '@skidding/async-retry';
import React from 'react';
import { ReactTestRenderer, ReactTestRendererJSON } from 'react-test-renderer';
import { useValue } from '../../../fixture/useValue/index.js';
import { createValue } from '../../../fixtureState/createValues.js';
import { uuid } from '../../../utils/uuid.js';
import { useValue } from '../../../fixture/useValue/index.js';
import { testFixtureLoader } from '../testHelpers/index.js';
import { wrapFixtures } from '../testHelpers/wrapFixture.js';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import retry from '@skidding/async-retry';
import React from 'react';
import { ReactTestRenderer, ReactTestRendererJSON } from 'react-test-renderer';
import { useValue } from '../../../fixture/useValue/index.js';
import { createValue } from '../../../fixtureState/createValues.js';
import { uuid } from '../../../utils/uuid.js';
import { useValue } from '../../../fixture/useValue/index.js';
import { testFixtureLoader } from '../testHelpers/index.js';
import { wrapFixtures } from '../testHelpers/wrapFixture.js';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import retry from '@skidding/async-retry';
import React from 'react';
import { Viewport } from '../../../fixture/Viewport.js';
import { uuid } from '../../../utils/uuid.js';
import { testFixtureLoader } from '../testHelpers/index.js';
import { wrapFixtures } from '../testHelpers/wrapFixture.js';
import { Viewport } from '../../../fixture/Viewport.js';

const rendererId = uuid();
const fixtures = wrapFixtures({
Expand Down
2 changes: 1 addition & 1 deletion packages/react-cosmos-core/src/renderer/types.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { FixtureState } from '../fixtureState/types.js';
import { FixtureId, FixtureList } from '../fixture/types.js';
import { FixtureState } from '../fixtureState/types.js';

// FYI: Renderer ids are self assigned in remote environments, so uniqueness
// cannot be established by consensus
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { CosmosConfig } from 'react-cosmos/server.js';
import { CosmosConfig } from 'react-cosmos';

type ViteCosmosConfig = {
port: number;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {
CosmosConfig,
generateUserDepsModule,
getPlaygroundUrl,
} from 'react-cosmos/server.js';
} from 'react-cosmos';
import { Plugin } from 'rollup';
import { createViteRendererIndex } from './createViteRendererIndex.js';

Expand Down
2 changes: 1 addition & 1 deletion packages/react-cosmos-plugin-vite/src/viteConfigPlugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import {
CosmosConfig,
CosmosConfigPluginArgs,
findNextAvailablePort,
} from 'react-cosmos/server.js';
} from 'react-cosmos';
import { createViteCosmosConfig } from './createViteCosmosConfig.js';

export async function viteConfigPlugin({
Expand Down
5 changes: 1 addition & 4 deletions packages/react-cosmos-plugin-vite/src/viteDevServerPlugin.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
import {
DevServerPluginArgs,
startFixtureWatcher,
} from 'react-cosmos/server.js';
import { DevServerPluginArgs, startFixtureWatcher } from 'react-cosmos';
import { createServer } from 'vite';
import {
reactCosmosViteRollupPlugin,
Expand Down
2 changes: 1 addition & 1 deletion packages/react-cosmos-plugin-vite/src/viteExportPlugin.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { rename } from 'node:fs/promises';
import path from 'path';
import { ExportPluginArgs, RENDERER_FILENAME } from 'react-cosmos';
import { removeLeadingSlash } from 'react-cosmos-core';
import { ExportPluginArgs, RENDERER_FILENAME } from 'react-cosmos/server.js';
import { build } from 'vite';
import { reactCosmosViteRollupPlugin } from './reactCosmosViteRollupPlugin.js';

Expand Down
2 changes: 1 addition & 1 deletion packages/react-cosmos-plugin-vite/src/viteServerPlugin.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { CosmosServerPlugin } from 'react-cosmos/server.js';
import { CosmosServerPlugin } from 'react-cosmos';
import { viteConfigPlugin } from './viteConfigPlugin.js';
import { viteDevServerPlugin } from './viteDevServerPlugin.js';
import { viteExportPlugin } from './viteExportPlugin.js';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import path from 'path';
import { CosmosConfig, fileExists } from 'react-cosmos/server.js';
import { CosmosConfig, fileExists } from 'react-cosmos';
import { resolveLoose } from '../utils/resolveLoose.js';

type WebpackCosmosConfig = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import '../../testHelpers/mockEsmLoaderPath.js';
import '../../testHelpers/mockEsmRequire.js';
import '../../testHelpers/mockEsmResolve.js';

import { createCosmosConfig, RENDERER_FILENAME } from 'react-cosmos/server.js';
import { createCosmosConfig, RENDERER_FILENAME } from 'react-cosmos';
import webpack from 'webpack';
import { getDevWebpackConfig } from '../getDevWebpackConfig.js';
import { HtmlWebpackPlugin } from '../htmlPlugin.js';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
createCosmosConfig,
getCwdPath,
RENDERER_FILENAME,
} from 'react-cosmos/server.js';
} from 'react-cosmos';
import webpack from 'webpack';
import { getExportWebpackConfig } from '../getExportWebpackConfig.js';
import { HtmlWebpackPlugin } from '../htmlPlugin.js';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import '../../testHelpers/mockEsmLoaderPath.js';
import '../../testHelpers/mockEsmRequire.js';
import '../../testHelpers/mockEsmResolve.js';

import { createCosmosConfig, RENDERER_FILENAME } from 'react-cosmos/server.js';
import { createCosmosConfig, RENDERER_FILENAME } from 'react-cosmos';
import webpack from 'webpack';
import { getDevWebpackConfig } from '../getDevWebpackConfig.js';
import { HtmlWebpackPlugin } from '../htmlPlugin.js';
Expand All @@ -17,7 +17,9 @@ afterAll(() => {
async function getDefaultDevWebpackConfig() {
return mockConsole(async ({ expectLog }) => {
expectLog('[Cosmos] Using default webpack config');
expectLog('[Cosmos] Learn how to override webpack config for cosmos: https://github.com/react-cosmos/react-cosmos/tree/main/docs#webpack-config-override');
expectLog(
'[Cosmos] Learn how to override webpack config for cosmos: https://github.com/react-cosmos/react-cosmos/tree/main/docs#webpack-config-override'
);
const cosmosConfig = createCosmosConfig(process.cwd());
return await getDevWebpackConfig(cosmosConfig, webpack);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
createCosmosConfig,
getCwdPath,
RENDERER_FILENAME,
} from 'react-cosmos/server.js';
} from 'react-cosmos';
import webpack from 'webpack';
import { getExportWebpackConfig } from '../getExportWebpackConfig.js';
import { HtmlWebpackPlugin } from '../htmlPlugin.js';
Expand All @@ -21,7 +21,9 @@ afterAll(() => {
async function getDefaultExportWebpackConfig() {
return mockConsole(async ({ expectLog }) => {
expectLog('[Cosmos] Using default webpack config');
expectLog('[Cosmos] Learn how to override webpack config for cosmos: https://github.com/react-cosmos/react-cosmos/tree/main/docs#webpack-config-override');
expectLog(
'[Cosmos] Learn how to override webpack config for cosmos: https://github.com/react-cosmos/react-cosmos/tree/main/docs#webpack-config-override'
);
const cosmosConfig = createCosmosConfig(process.cwd());
return await getExportWebpackConfig(cosmosConfig, webpack);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import '../../testHelpers/mockEsmLoaderPath.js';
import '../../testHelpers/mockEsmRequire.js';
import '../../testHelpers/mockEsmResolve.js';

import { createCosmosConfig } from 'react-cosmos/server.js';
import { createCosmosConfig } from 'react-cosmos';
import webpack from 'webpack';
import { getDevWebpackConfig } from '../getDevWebpackConfig.js';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import '../../testHelpers/mockEsmRequire.js';
import '../../testHelpers/mockEsmResolve.js';

import path from 'path';
import { createCosmosConfig } from 'react-cosmos/server.js';
import { createCosmosConfig } from 'react-cosmos';
import webpack from 'webpack';
import { getDevWebpackConfig } from '../getDevWebpackConfig.js';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { RENDERER_FILENAME } from 'react-cosmos/server.js';
import { RENDERER_FILENAME } from 'react-cosmos';
import webpack from 'webpack';
import { resolveFromSilent } from '../utils/resolveSilent.js';
import { getWebpackNodeEnv } from './getWebpackNodeEnv.js';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import path from 'path';
import { CosmosConfig } from 'react-cosmos/server.js';
import { CosmosConfig } from 'react-cosmos';
import webpack from 'webpack';
import { createWebpackCosmosConfig } from '../cosmosConfig/createWebpackCosmosConfig.js';
import { resolve } from '../utils/resolve.js';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import path from 'path';
import { CosmosConfig } from 'react-cosmos';
import { removeLeadingSlash } from 'react-cosmos-core';
import { CosmosConfig } from 'react-cosmos/server.js';
import webpack from 'webpack';
import { createWebpackCosmosConfig } from '../cosmosConfig/createWebpackCosmosConfig.js';
import { getUserWebpackConfig } from './getUserWebpackConfig.js';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {
getCliArgs,
importModule,
moduleExists,
} from 'react-cosmos/server.js';
} from 'react-cosmos';
import webpack from 'webpack';
import { createWebpackCosmosConfig } from '../cosmosConfig/createWebpackCosmosConfig.js';
import { getDefaultWebpackConfig } from './getDefaultWebpackConfig.js';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import path from 'path';
import { CosmosConfig } from 'react-cosmos/server.js';
import { CosmosConfig } from 'react-cosmos';
import webpack from 'webpack';
import { resolveFromSilent } from '../utils/resolveSilent.js';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Options as HtmlWebpackPluginOptions } from 'html-webpack-plugin';
import { omit } from 'lodash-es';
import { CosmosConfig, RENDERER_FILENAME } from 'react-cosmos/server.js';
import { CosmosConfig, RENDERER_FILENAME } from 'react-cosmos';
import webpack from 'webpack';
import { requireFromSilent } from '../utils/requireSilent.js';
import { hasPlugin, isInstanceOfWebpackPlugin } from './plugins.js';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { CosmosConfig } from 'react-cosmos/server.js';
import { CosmosConfig } from 'react-cosmos';
import webpack from 'webpack';
import { getWebpackNodeEnv } from './getWebpackNodeEnv.js';

Expand All @@ -12,7 +12,7 @@ export function getGlobalsPlugin(
// "if (__DEV__)" blocks get stripped when compiling a static export build
__DEV__: JSON.stringify(devServerOn),
'process.env.NODE_ENV': JSON.stringify(getWebpackNodeEnv()),
'process.env.PUBLIC_URL': JSON.stringify(cleanPublicUrl)
'process.env.PUBLIC_URL': JSON.stringify(cleanPublicUrl),
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
// To circumvent this we use this CJS source file that's manually copied in the
// dist folder as part of the build process
module.exports = async function injectUserDeps() {
const server = await import('react-cosmos/server.js');
const cosmos = await import('react-cosmos');

const cosmosConfig = await server.detectCosmosConfig();
const cosmosConfig = await cosmos.detectCosmosConfig();

// This ensures this loader is invalidated whenever a new file is added to or
// removed from user's project, which in turn triggers react-cosmos-voyager2
Expand All @@ -19,10 +19,10 @@ module.exports = async function injectUserDeps() {

const { containerQuerySelector } = cosmosConfig.dom;
const rendererConfig = {
playgroundUrl: server.getPlaygroundUrl(cosmosConfig),
playgroundUrl: cosmos.getPlaygroundUrl(cosmosConfig),
containerQuerySelector,
};
return server.generateUserDepsModule({
return cosmos.generateUserDepsModule({
cosmosConfig,
rendererConfig,
relativeToDir: null,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import path from 'path';
import { DevServerPluginArgs, serveStaticDir } from 'react-cosmos';
import { removeLeadingDot, ServerMessage } from 'react-cosmos-core';
import { DevServerPluginArgs, serveStaticDir } from 'react-cosmos/server.js';
import webpack from 'webpack';
import webpackHotMiddleware from 'webpack-hot-middleware';
import { createWebpackCosmosConfig } from './cosmosConfig/createWebpackCosmosConfig.js';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ExportPluginArgs } from 'react-cosmos/server.js';
import { ExportPluginArgs } from 'react-cosmos';
import webpack, { StatsCompilation } from 'webpack';
import { getWebpack } from './getWebpack.js';
import { getExportWebpackConfig } from './webpackConfig/getExportWebpackConfig.js';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { CosmosServerPlugin } from 'react-cosmos/server.js';
import { CosmosServerPlugin } from 'react-cosmos';
import { webpackDevServerPlugin } from './webpackDevServerPlugin.js';
import { webpackExportPlugin } from './webpackExportPlugin.js';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ServerMessage, MessageType } from 'react-cosmos-core';
import { MessageType, ServerMessage } from 'react-cosmos-core';
import { createPlugin, PluginContext } from 'react-plugin';
import { MessageHandlerSpec } from '../MessageHandler/spec.js';
import { NotificationsSpec } from '../Notifications/spec.js';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { render } from '@testing-library/react';
import React from 'react';
import { loadPlugins, resetPlugins, Slot } from 'react-plugin';
import { register } from '..';
import {
mockRendererCore,
mockRendererPreview,
mockRouter,
mockStorage,
} from '../../../testHelpers/pluginMocks.js';
import { register } from '..';

beforeEach(register);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { render } from '@testing-library/react';
import React from 'react';
import { loadPlugins, resetPlugins, Slot } from 'react-plugin';
import { register } from '..';
import {
mockRendererCore,
mockRendererPreview,
mockRouter,
mockStorage,
} from '../../../testHelpers/pluginMocks.js';
import { register } from '..';

beforeEach(register);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { render } from '@testing-library/react';
import React from 'react';
import { loadPlugins, resetPlugins, Slot } from 'react-plugin';
import { register } from '..';
import {
mockRendererCore,
mockRendererPreview,
mockRouter,
mockStorage,
} from '../../../testHelpers/pluginMocks.js';
import { register } from '..';

beforeEach(register);

Expand Down

0 comments on commit 69fd664

Please sign in to comment.