chore: build

This commit is contained in:
2026-05-01 22:28:13 +02:00
parent ece977f268
commit 99ce3e4bb3
532 changed files with 5244 additions and 13124 deletions
+6
View File
@@ -10,6 +10,12 @@
### 💡 Others
## 3.0.25 — 2026-04-27
### 🐛 Bug fixes
- Fix missing deep object merging that should allow a project config to override a dependency's per-platform config options selectively ([#44668](https://github.com/expo/expo/pull/44668) by [@kitten](https://github.com/kitten))
## 3.0.24 — 2026-01-06
### 💡 Others
@@ -14,6 +14,22 @@ const iosResolver_1 = require("./iosResolver");
const ExpoModuleConfig_1 = require("../ExpoModuleConfig");
const dependencies_1 = require("../dependencies");
const webResolver_1 = require("./webResolver");
const deepObjectMerge = (target, source) => {
if (source !== undefined &&
typeof target === 'object' &&
target != null &&
!Array.isArray(target) &&
(!target.constructor || target.constructor === Object) &&
typeof source === 'object' &&
!Array.isArray(source)) {
target = { ...target };
for (const key in source) {
target[key] = deepObjectMerge(target[key], source[key]);
}
return target;
}
return source !== undefined ? source : target;
};
const isMissingFBReactNativeSpecCodegenOutput = async (reactNativePath) => {
const generatedDir = path_1.default.resolve(reactNativePath, 'React/FBReactNativeSpec');
try {
@@ -36,15 +52,16 @@ async function resolveReactNativeModule(resolution, projectConfig, platform, exc
return null;
}
const libraryConfig = (await (0, config_1.loadConfigAsync)(resolution.path));
const reactNativeConfig = {
...libraryConfig?.dependency,
...projectConfig?.dependencies?.[resolution.name],
};
if (Object.keys(libraryConfig?.platforms ?? {}).length > 0) {
// Package defines platforms would be a platform host package.
// The rnc-cli will skip this package.
return null;
}
let reactNativeConfig = libraryConfig?.dependency ?? {};
const projectDependencyOverride = projectConfig?.dependencies?.[resolution.name];
if (projectDependencyOverride != null) {
reactNativeConfig = deepObjectMerge(reactNativeConfig, projectDependencyOverride);
}
let maybeExpoModuleConfig;
if (!libraryConfig) {
// NOTE(@kitten): If we don't have an explicit react-native.config.{js,ts} file,
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "expo-modules-autolinking",
"version": "3.0.24",
"version": "3.0.25",
"description": "Scripts that autolink Expo modules.",
"main": "build/index.js",
"types": "build/index.d.ts",
@@ -44,5 +44,5 @@
"require-from-string": "^2.0.2",
"resolve-from": "^5.0.0"
},
"gitHead": "e615daa250a27c60da3cea1f0572dcde93df5b68"
"gitHead": "dd4e87727c4ef32ac5d8a7b5a42fd80da254140f"
}
@@ -31,6 +31,25 @@ import {
} from '../dependencies';
import { checkDependencyWebAsync } from './webResolver';
const deepObjectMerge = (target: any, source: any): any => {
if (
source !== undefined &&
typeof target === 'object' &&
target != null &&
!Array.isArray(target) &&
(!target.constructor || target.constructor === Object) &&
typeof source === 'object' &&
!Array.isArray(source)
) {
target = { ...target };
for (const key in source) {
target[key] = deepObjectMerge(target[key], source[key]);
}
return target;
}
return source !== undefined ? source : target;
};
const isMissingFBReactNativeSpecCodegenOutput = async (reactNativePath: string) => {
const generatedDir = path.resolve(reactNativePath, 'React/FBReactNativeSpec');
try {
@@ -60,10 +79,6 @@ export async function resolveReactNativeModule(
const libraryConfig = (await loadConfigAsync(
resolution.path
)) as RNConfigReactNativeLibraryConfig;
const reactNativeConfig = {
...libraryConfig?.dependency,
...projectConfig?.dependencies?.[resolution.name],
};
if (Object.keys(libraryConfig?.platforms ?? {}).length > 0) {
// Package defines platforms would be a platform host package.
@@ -71,6 +86,12 @@ export async function resolveReactNativeModule(
return null;
}
let reactNativeConfig = libraryConfig?.dependency ?? {};
const projectDependencyOverride = projectConfig?.dependencies?.[resolution.name];
if (projectDependencyOverride != null) {
reactNativeConfig = deepObjectMerge(reactNativeConfig, projectDependencyOverride);
}
let maybeExpoModuleConfig: ExpoModuleConfig | null | undefined;
if (!libraryConfig) {
// NOTE(@kitten): If we don't have an explicit react-native.config.{js,ts} file,