Skip to content

Commit 2f0835a

Browse files
authored
refactor: drop RNC CLI peer deps (#1087)
* chore: remove RNC CLI peer deps * refactor: cli error * chore: changeset * chore: cleanup jsdocs * chore: update changeset
1 parent 8e8aad6 commit 2f0835a

13 files changed

Lines changed: 53 additions & 80 deletions

File tree

.changeset/shy-impalas-join.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@callstack/repack": patch
3+
---
4+
5+
Drop having `@react-native-community/cli` as peer dependency

packages/repack/package.json

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,6 @@
5959
},
6060
"peerDependencies": {
6161
"@module-federation/enhanced": ">=0.6.10",
62-
"@react-native-community/cli": "*",
63-
"@react-native-community/cli-tools": "*",
64-
"@react-native-community/cli-types": "*",
6562
"@rspack/core": ">=1",
6663
"react-native": ">=0.74",
6764
"webpack": ">=5.90"
@@ -107,9 +104,6 @@
107104
"@babel/plugin-transform-modules-commonjs": "^7.23.2",
108105
"@module-federation/enhanced": "0.8.9",
109106
"@module-federation/sdk": "0.6.10",
110-
"@react-native-community/cli": "15.0.1",
111-
"@react-native-community/cli-tools": "15.0.1",
112-
"@react-native-community/cli-types": "15.0.1",
113107
"@rspack/core": "catalog:",
114108
"@swc/helpers": "catalog:",
115109
"@types/dedent": "^0.7.0",
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { VERBOSE_ENV_KEY } from '../../env.js';
2+
3+
export class CLIError extends Error {
4+
constructor(message: string) {
5+
super(message);
6+
this.name = 'CLIError';
7+
8+
// hide stack trace in non-verbose mode
9+
if (!process.env[VERBOSE_ENV_KEY]) {
10+
this.stack = undefined;
11+
}
12+
}
13+
}

packages/repack/src/commands/common/config/getConfigFilePath.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
DEFAULT_RSPACK_CONFIG_LOCATIONS,
77
DEFAULT_WEBPACK_CONFIG_LOCATIONS,
88
} from '../../consts.js';
9-
import { CLIError } from '../error.js';
9+
import { CLIError } from '../cliError.js';
1010

1111
function discoverConfigFilePath(root: string, candidates: string[]) {
1212
for (const candidate of candidates) {

packages/repack/src/commands/common/error.ts

Lines changed: 0 additions & 11 deletions
This file was deleted.

packages/repack/src/commands/rspack/Compiler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import type {
1111
import memfs from 'memfs';
1212
import type { Reporter } from '../../logging/types.js';
1313
import type { HMRMessage } from '../../types.js';
14-
import { CLIError } from '../common/error.js';
14+
import { CLIError } from '../common/cliError.js';
1515
import { adaptFilenameToPlatform, runAdbReverse } from '../common/index.js';
1616
import { DEV_SERVER_ASSET_TYPES } from '../consts.js';
1717
import type { CompilerAsset } from './types.js';

packages/repack/src/commands/rspack/bundle.ts

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,22 @@
1-
import type { Config } from '@react-native-community/cli-types';
21
import { type Configuration, rspack } from '@rspack/core';
32
import type { Stats } from '@rspack/core';
3+
import { CLIError } from '../common/cliError.js';
44
import { makeCompilerConfig } from '../common/config/makeCompilerConfig.js';
5-
import { CLIError } from '../common/error.js';
65
import { normalizeStatsOptions, writeStats } from '../common/index.js';
76
import { setupEnvironment } from '../common/setupEnvironment.js';
8-
import type { BundleArguments } from '../types.js';
7+
import type { BundleArguments, CliConfig } from '../types.js';
98

109
/**
11-
* Bundle command for React Native Community CLI.
12-
* It runs Rspack, builds bundle and saves it alongside any other assets and Source Map
13-
* to filesystem.
10+
* Bundle command that builds and saves the bundle
11+
* alongside any other assets to filesystem using Webpack.
1412
*
1513
* @param _ Original, non-parsed arguments that were provided when running this command.
16-
* @param config React Native Community CLI configuration object.
14+
* @param cliConfig Configuration object containing platform and project settings.
1715
* @param args Parsed command line arguments.
18-
*
19-
* @internal
20-
* @category CLI command
2116
*/
2217
export async function bundle(
2318
_: string[],
24-
cliConfig: Config,
19+
cliConfig: CliConfig,
2520
args: BundleArguments
2621
) {
2722
const [config] = await makeCompilerConfig<Configuration>({

packages/repack/src/commands/rspack/start.ts

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import type { Config } from '@react-native-community/cli-types';
21
import type { Configuration } from '@rspack/core';
32
import packageJson from '../../../package.json';
43
import {
@@ -8,8 +7,8 @@ import {
87
composeReporters,
98
makeLogEntryFromFastifyLog,
109
} from '../../logging/index.js';
10+
import { CLIError } from '../common/cliError.js';
1111
import { makeCompilerConfig } from '../common/config/makeCompilerConfig.js';
12-
import { CLIError } from '../common/error.js';
1312
import {
1413
getMimeType,
1514
parseFileUrl,
@@ -18,24 +17,21 @@ import {
1817
import { runAdbReverse } from '../common/index.js';
1918
import logo from '../common/logo.js';
2019
import { setupEnvironment } from '../common/setupEnvironment.js';
21-
import type { StartArguments } from '../types.js';
20+
import type { CliConfig, StartArguments } from '../types.js';
2221
import { Compiler } from './Compiler.js';
2322

2423
/**
25-
* Start command for React Native Community CLI.
26-
* It runs `@callstack/repack-dev-server` to provide Development Server functionality to React Native apps
24+
* Start command that runs a development server.
25+
* It runs `@callstack/repack-dev-server` to provide Development Server functionality
2726
* in development mode.
2827
*
2928
* @param _ Original, non-parsed arguments that were provided when running this command.
30-
* @param config React Native Community CLI configuration object.
29+
* @param cliConfig Configuration object containing platform and project settings.
3130
* @param args Parsed command line arguments.
32-
*
33-
* @internal
34-
* @category CLI command
3531
*/
3632
export async function start(
3733
_: string[],
38-
cliConfig: Config,
34+
cliConfig: CliConfig,
3935
args: StartArguments
4036
) {
4137
const detectedPlatforms = Object.keys(cliConfig.platforms);

packages/repack/src/commands/types.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,21 @@ export interface StartArguments {
3333
webpackConfig?: string;
3434
}
3535

36-
interface CommonCliOptions {
37-
config: {
38-
root: string;
39-
platforms: string[];
40-
bundlerConfigPath: string;
41-
reactNativePath: string;
42-
};
36+
export interface CliConfig {
37+
root: string;
38+
platforms: string[];
39+
reactNativePath: string;
4340
}
4441

45-
export interface StartCliOptions extends CommonCliOptions {
42+
export interface StartCliOptions {
4643
command: 'start';
44+
config: CliConfig;
4745
arguments: { start: StartArguments };
4846
}
4947

50-
export interface BundleCliOptions extends CommonCliOptions {
48+
export interface BundleCliOptions {
5149
command: 'bundle';
50+
config: CliConfig;
5251
arguments: { bundle: BundleArguments };
5352
}
5453

packages/repack/src/commands/webpack/Compiler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import type { SendProgress } from '@callstack/repack-dev-server';
77
import type webpack from 'webpack';
88
import { WORKER_ENV_KEY } from '../../env.js';
99
import type { LogType, Reporter } from '../../logging/types.js';
10-
import { CLIError } from '../common/error.js';
10+
import { CLIError } from '../common/cliError.js';
1111
import { DEV_SERVER_ASSET_TYPES } from '../consts.js';
1212
import type { StartArguments } from '../types.js';
1313
import type {

0 commit comments

Comments
 (0)