Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/new-deer-begin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@rnx-kit/cli": patch
---

TypeScript plugin is now disabled by default because 1) it degrades performance during bundling and 2) the new TypeScript 7.0 is now fast enough that running it beforehand is better.
1 change: 0 additions & 1 deletion packages/cli/src/bundle/defaultPlugins.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ const defaultPlugins: DefaultPlugins = {
plugins: [
"@rnx-kit/metro-plugin-cyclic-dependencies-detector",
"@rnx-kit/metro-plugin-duplicates-checker",
"@rnx-kit/metro-plugin-typescript",
],
treeShake: false,
};
Expand Down
1 change: 0 additions & 1 deletion packages/cli/test/bundle/kit-config.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ describe("bundle/kit-config/getCliPlatformBundleConfigs()", () => {
plugins: [
"@rnx-kit/metro-plugin-cyclic-dependencies-detector",
"@rnx-kit/metro-plugin-duplicates-checker",
"@rnx-kit/metro-plugin-typescript",
],
};

Expand Down
1 change: 0 additions & 1 deletion packages/cli/test/bundle/metro.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ describe("bundle/metro/metroBundle()", () => {
plugins: [
"@rnx-kit/metro-plugin-cyclic-dependencies-detector",
"@rnx-kit/metro-plugin-duplicates-checker",
"@rnx-kit/metro-plugin-typescript",
],
};

Expand Down
1 change: 0 additions & 1 deletion packages/cli/test/bundle/overrides.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ describe("bundle/overrides/applyCommandLineOverrides()", () => {
plugins: [
"@rnx-kit/metro-plugin-cyclic-dependencies-detector",
"@rnx-kit/metro-plugin-duplicates-checker",
"@rnx-kit/metro-plugin-typescript",
],
indexedRamBundle: false,
platform: "ios",
Expand Down
26 changes: 7 additions & 19 deletions packages/cli/test/helpers/metro-config.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,7 @@ describe("cli/metro-config/customizeMetroConfig()", () => {
transformer: {},
});
expect(typeof inputConfig.serializer.customSerializer).toBe("function");
expect(typeof inputConfig.serializer.experimentalSerializerHook).toBe(
"function"
);
expect(inputConfig.serializer.experimentalSerializerHook).toBe(false);
expect(toMock(CyclicDependencies).__context).toEqual({ timesCalled: 1 });
expect(toMock(DuplicateDependencies).__context).toEqual({ timesCalled: 1 });
});
Expand Down Expand Up @@ -96,47 +94,37 @@ describe("cli/metro-config/customizeMetroConfig()", () => {
test("returns a config with only duplicates plugin", () => {
const inputConfig = makeMockConfig();
customizeMetroConfig(inputConfig, {
plugins: [
"@rnx-kit/metro-plugin-duplicates-checker",
"@rnx-kit/metro-plugin-typescript",
],
plugins: ["@rnx-kit/metro-plugin-duplicates-checker"],
});

expect(inputConfig).toEqual({
serializer: {
customSerializer: expect.anything(),
experimentalSerializerHook: expect.anything(),
experimentalSerializerHook: false,
},
transformer: {},
});
expect(typeof inputConfig.serializer.customSerializer).toBe("function");
expect(typeof inputConfig.serializer.experimentalSerializerHook).toBe(
"function"
);
expect(inputConfig.serializer.experimentalSerializerHook).toBe(false);
expect(toMock(CyclicDependencies).__context).toEqual({ timesCalled: 0 });
expect(toMock(DuplicateDependencies).__context).toEqual({ timesCalled: 1 });
});

test("returns a config with only cyclic dependencies plugin", () => {
const inputConfig = makeMockConfig();
customizeMetroConfig(inputConfig, {
plugins: [
"@rnx-kit/metro-plugin-cyclic-dependencies-detector",
"@rnx-kit/metro-plugin-typescript",
],
plugins: ["@rnx-kit/metro-plugin-cyclic-dependencies-detector"],
});

expect(inputConfig).toEqual({
serializer: {
customSerializer: expect.anything(),
experimentalSerializerHook: expect.anything(),
experimentalSerializerHook: false,
},
transformer: {},
});
expect(typeof inputConfig.serializer.customSerializer).toBe("function");
expect(typeof inputConfig.serializer.experimentalSerializerHook).toBe(
"function"
);
expect(inputConfig.serializer.experimentalSerializerHook).toBe(false);
expect(toMock(CyclicDependencies).__context).toEqual({ timesCalled: 1 });
expect(toMock(DuplicateDependencies).__context).toEqual({ timesCalled: 0 });
});
Expand Down
4 changes: 3 additions & 1 deletion packages/metro-serializer-esbuild/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,9 @@ See the full documentation at https://esbuild.github.io/api/#target.
Values: Any JS language version string such as `es6` or `esnext`. You can also
use environment names. See the full documentation for a list of supported names.

Defaults to `hermes0.7.0`.
By default, the target is inferred using React Native version
([see code](https://github.com/microsoft/rnx-kit/blob/main/packages/metro-serializer-esbuild/src/targets.ts)).
Failing that, it falls back to `hermes0.7`.

### `fabric`

Expand Down
3 changes: 1 addition & 2 deletions packages/types-bundle-config/src/bundleConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,7 @@ export type BundleParameters = BundlerPlugins &
*
* @default [
* "@rnx-kit/metro-plugin-cyclic-dependencies-detector",
* "@rnx-kit/metro-plugin-duplicates-checker",
* "@rnx-kit/metro-plugin-typescript"
* "@rnx-kit/metro-plugin-duplicates-checker"
* ]
*/
plugins?: Plugin[];
Expand Down
3 changes: 1 addition & 2 deletions packages/types-bundle-config/src/serverConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,7 @@ export type ServerConfig = BundlerPlugins & {
*
* @default [
* "@rnx-kit/metro-plugin-cyclic-dependencies-detector",
* "@rnx-kit/metro-plugin-duplicates-checker",
* "@rnx-kit/metro-plugin-typescript"
* "@rnx-kit/metro-plugin-duplicates-checker"
* ]
*/
plugins?: Plugin[];
Expand Down
Loading