@codemoreira/esad 1.4.6-6 → 1.4.6-7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +6 -2
  2. package/src/plugin/index.js +27 -11
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codemoreira/esad",
3
- "version": "1.4.6-6",
3
+ "version": "1.4.6-7",
4
4
  "description": "Easy Super App Development - Zero-Config CLI and DevTools for React Native Module Federation",
5
5
  "main": "src/plugin/index.js",
6
6
  "types": "./src/plugin/index.d.ts",
@@ -47,7 +47,11 @@
47
47
  "react-native-reanimated": "~3.16.1",
48
48
  "form-data": "^4.0.0",
49
49
  "fs-extra": "^11.2.0",
50
- "node-fetch": "^2.7.0"
50
+ "node-fetch": "^2.7.0",
51
+ "@babel/plugin-transform-flow-strip-types": "^7.20.0",
52
+ "@babel/plugin-transform-private-methods": "^7.20.0",
53
+ "@babel/plugin-transform-private-property-in-object": "^7.20.0",
54
+ "@babel/plugin-transform-class-properties": "^7.20.0"
51
55
  },
52
56
  "devDependencies": {
53
57
  "@rspack/core": "^1.7.9",
@@ -40,18 +40,17 @@ function withESAD(env, options) {
40
40
  },
41
41
  resolve: {
42
42
  ...Repack.getResolveOptions(),
43
+ alias: {
44
+ ...Repack.getResolveOptions().alias,
45
+ '@': dirname,
46
+ 'expo-router': path.resolve(dirname, 'node_modules/expo-router'),
47
+ 'react-native': path.resolve(dirname, 'node_modules/react-native'),
48
+ },
43
49
  extensions: [
44
50
  '.expo.ts', '.expo.tsx', '.expo.js', '.expo.jsx',
45
51
  '.native.ts', '.native.tsx', '.native.js', '.native.jsx',
46
52
  ...Repack.getResolveOptions().extensions,
47
53
  ],
48
- alias: {
49
- '@': dirname,
50
- 'expo-router': path.resolve(dirname, 'node_modules/expo-router'),
51
- 'react-native': path.resolve(dirname, 'node_modules/react-native'),
52
- 'react-native-web': path.resolve(dirname, 'node_modules/react-native'),
53
- ...Repack.getResolveOptions().alias,
54
- }
55
54
  },
56
55
  module: {
57
56
  rules: [
@@ -62,12 +61,25 @@ function withESAD(env, options) {
62
61
  include: [
63
62
  path.resolve(dirname, 'app'),
64
63
  path.resolve(dirname, 'index.js'),
65
- /[\\/]node_modules[\\/](expo-router|react-native|@react-native|expo-modules-core)[\\/]/
64
+ /[\\/]node_modules[\\/](expo-router|react-native|@react-native|expo-modules-core|@module-federation|@react-navigation|react-native-safe-area-context|react-native-screens)[\\/]/
66
65
  ],
67
66
  use: {
68
- loader: 'babel-loader',
67
+ loader: require.resolve('babel-loader'),
69
68
  options: {
70
- presets: ['babel-preset-expo'],
69
+ presets: [
70
+ [
71
+ require.resolve('babel-preset-expo'),
72
+ {
73
+ jsxRuntime: 'automatic',
74
+ },
75
+ ],
76
+ ],
77
+ plugins: [
78
+ require.resolve('@babel/plugin-transform-flow-strip-types'),
79
+ [require.resolve('@babel/plugin-transform-private-methods'), { loose: true }],
80
+ [require.resolve('@babel/plugin-transform-private-property-in-object'), { loose: true }],
81
+ [require.resolve('@babel/plugin-transform-class-properties'), { loose: true }]
82
+ ],
71
83
  babelrc: false,
72
84
  configFile: false,
73
85
  },
@@ -91,7 +103,7 @@ function withESAD(env, options) {
91
103
  'process.env.EXPO_OS': JSON.stringify(platform),
92
104
  'process.env.EXPO_PROJECT_ROOT': JSON.stringify(dirname),
93
105
  'process.env.EXPO_ROUTER_ABS_APP_ROOT': JSON.stringify(path.resolve(dirname, 'app')),
94
- 'process.env.EXPO_ROUTER_APP_ROOT': JSON.stringify('./app'),
106
+ 'process.env.EXPO_ROUTER_APP_ROOT': JSON.stringify('../../app'), // Relative from node_modules/expo-router/_ctx.js
95
107
  'process.env.EXPO_ROUTER_IMPORT_MODE': JSON.stringify('sync'),
96
108
  }),
97
109
  new ExpoModulesPlugin(),
@@ -111,6 +123,10 @@ function withESAD(env, options) {
111
123
  'react-native-safe-area-context': { singleton: true, eager: true, requiredVersion: pkg.dependencies['react-native-safe-area-context'] },
112
124
  'expo-router': { singleton: true, eager: true, requiredVersion: pkg.dependencies['expo-router'] },
113
125
  'react-native-screens': { singleton: true, eager: true, requiredVersion: pkg.dependencies['react-native-screens'] },
126
+ 'expo-constants': { singleton: true, eager: true, requiredVersion: pkg.dependencies['expo-constants'] },
127
+ 'expo-linking': { singleton: true, eager: true, requiredVersion: pkg.dependencies['expo-linking'] },
128
+ '@module-federation/runtime': { singleton: true, eager: true },
129
+ '@module-federation/sdk': { singleton: true, eager: true },
114
130
  '@codemoreira/esad/client': {
115
131
  singleton: true,
116
132
  eager: options.type === 'host', // Only eager in host to ensure it's available