vxrn 1.26.1 → 2.0.0-beta.33.1
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.
- package/dist/patches/builtInDepPatches.mjs +23 -42
- package/dist/patches/builtInDepPatches.mjs.map +1 -1
- package/dist/patches/builtInDepPatches.native.js +23 -42
- package/dist/patches/builtInDepPatches.native.js.map +1 -1
- package/dist/plugins/reactNativeDevServer.mjs +15 -50
- package/dist/plugins/reactNativeDevServer.mjs.map +1 -1
- package/dist/plugins/reactNativeDevServer.native.js +17 -113
- package/dist/plugins/reactNativeDevServer.native.js.map +1 -1
- package/dist/utils/createNativeDevEngine.mjs +115 -59
- package/dist/utils/createNativeDevEngine.mjs.map +1 -1
- package/dist/utils/createNativeDevEngine.native.js +140 -79
- package/dist/utils/createNativeDevEngine.native.js.map +1 -1
- package/dist/utils/scanDepsToOptimize.mjs +1 -3
- package/dist/utils/scanDepsToOptimize.mjs.map +1 -1
- package/dist/utils/scanDepsToOptimize.native.js +1 -3
- package/dist/utils/scanDepsToOptimize.native.js.map +1 -1
- package/expo-plugin.cjs +12 -6
- package/package.json +12 -12
- package/src/patches/builtInDepPatches.ts +24 -48
- package/src/plugins/reactNativeDevServer.ts +27 -67
- package/src/utils/createNativeDevEngine.ts +146 -82
- package/src/utils/scanDepsToOptimize.ts +0 -3
- package/types/patches/builtInDepPatches.d.ts.map +1 -1
- package/types/plugins/reactNativeDevServer.d.ts.map +1 -1
- package/types/utils/createNativeDevEngine.d.ts +0 -1
- package/types/utils/createNativeDevEngine.d.ts.map +1 -1
- package/types/utils/scanDepsToOptimize.d.ts.map +1 -1
|
@@ -16,6 +16,9 @@ import {
|
|
|
16
16
|
readdirSync,
|
|
17
17
|
statSync,
|
|
18
18
|
readFileSync,
|
|
19
|
+
writeFileSync,
|
|
20
|
+
watch,
|
|
21
|
+
type FSWatcher,
|
|
19
22
|
} from 'node:fs'
|
|
20
23
|
import { pathToFileURL } from 'node:url'
|
|
21
24
|
import micromatch from 'micromatch'
|
|
@@ -98,7 +101,6 @@ interface NativeDevEngineResult {
|
|
|
98
101
|
getBundle: () => Promise<NativeDevBundle>
|
|
99
102
|
getAsset: (pathname: string, hash?: string) => NativeDevAsset | undefined
|
|
100
103
|
close: () => Promise<void>
|
|
101
|
-
handleAddedFile: (file: string) => Promise<void>
|
|
102
104
|
}
|
|
103
105
|
|
|
104
106
|
// shared resolve extensions for native builds
|
|
@@ -556,7 +558,11 @@ export async function createNativeDevEngine(
|
|
|
556
558
|
let bundlePromise: Promise<NativeDevBundle> | null = null
|
|
557
559
|
|
|
558
560
|
const resolvedHost = host === '0.0.0.0' ? 'localhost' : host
|
|
559
|
-
const virtualEntry = nativeVirtualEntryPlugin(root, {
|
|
561
|
+
const virtualEntry = nativeVirtualEntryPlugin(root, {
|
|
562
|
+
dev: true,
|
|
563
|
+
platform,
|
|
564
|
+
dynamicRoutes: true,
|
|
565
|
+
})
|
|
560
566
|
|
|
561
567
|
// one build at a time: a bundle request and a full rebuild can arrive
|
|
562
568
|
// together (a reload lands on the bundle route while a new route file is
|
|
@@ -645,27 +651,26 @@ try {
|
|
|
645
651
|
let outputProcessed: Promise<void> = Promise.resolve()
|
|
646
652
|
|
|
647
653
|
let engine: Awaited<ReturnType<typeof dev>>
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
654
|
+
let routeWatcher: FSWatcher | undefined
|
|
655
|
+
|
|
656
|
+
const rebuildIfRouteGraphChanged = (): Promise<boolean> =>
|
|
657
|
+
queueEngineWork(async () => {
|
|
658
|
+
// decide from the complete route set after all earlier engine work. a
|
|
659
|
+
// watcher can report a directory, a rename, or several events for one
|
|
660
|
+
// write, and none of those event shapes are the source of truth.
|
|
661
|
+
const { files: knownRoutes, scanFiles, updateFiles } = virtualEntry.routes
|
|
662
|
+
const currentRoutes = scanFiles()
|
|
663
|
+
const routeSetChanged =
|
|
664
|
+
currentRoutes.size !== knownRoutes.size ||
|
|
665
|
+
[...currentRoutes].some((route) => !knownRoutes.has(route))
|
|
666
|
+
if (!routeSetChanged) return false
|
|
667
|
+
|
|
668
|
+
// changing this small imported module lets Rolldown compile only the new
|
|
669
|
+
// route and the registry delta. rebuilding a multi-megabyte native bundle
|
|
670
|
+
// makes route creation scale with the entire app.
|
|
671
|
+
updateFiles(currentRoutes)
|
|
672
|
+
return true
|
|
665
673
|
})
|
|
666
|
-
onHmrUpdate?.({ type: 'hmr:reload' })
|
|
667
|
-
return true
|
|
668
|
-
}
|
|
669
674
|
|
|
670
675
|
engine = await dev(inputOptions, outputOptions, {
|
|
671
676
|
onOutput: async (result) => {
|
|
@@ -687,12 +692,10 @@ try {
|
|
|
687
692
|
return
|
|
688
693
|
}
|
|
689
694
|
|
|
690
|
-
//
|
|
691
|
-
// the
|
|
692
|
-
//
|
|
693
|
-
|
|
694
|
-
// happened, so the reload is sent from here.
|
|
695
|
-
if (await rebuildIfNewRoute(result.changedFiles)) return
|
|
695
|
+
// adding or deleting a route changes a route map that was expanded when
|
|
696
|
+
// the entry transformed. only a full build re-expands it, and rolldown
|
|
697
|
+
// tells no client that happened, so the reload is sent from here.
|
|
698
|
+
if (await rebuildIfRouteGraphChanged()) return
|
|
696
699
|
|
|
697
700
|
for (const { clientId, update } of result.updates) {
|
|
698
701
|
if (update.type === 'Patch' && update.code) {
|
|
@@ -778,6 +781,35 @@ try {
|
|
|
778
781
|
|
|
779
782
|
await engine.run()
|
|
780
783
|
|
|
784
|
+
// import.meta.glob records the files it matched, not the directory whose
|
|
785
|
+
// membership defines the route map. own that directory watch next to the
|
|
786
|
+
// engine and compare complete route sets on every event. this also covers a
|
|
787
|
+
// router root created after the dev server starts.
|
|
788
|
+
let routeWatchTarget = virtualEntry.routes.routeRoot
|
|
789
|
+
while (!statSync(routeWatchTarget, { throwIfNoEntry: false })?.isDirectory()) {
|
|
790
|
+
const parent = dirname(routeWatchTarget)
|
|
791
|
+
if (parent === routeWatchTarget) break
|
|
792
|
+
routeWatchTarget = parent
|
|
793
|
+
}
|
|
794
|
+
const normalizedRouteRoot = normalizePath(virtualEntry.routes.routeRoot)
|
|
795
|
+
routeWatcher = watch(routeWatchTarget, { recursive: true }, (_eventType, file) => {
|
|
796
|
+
if (file === null) return
|
|
797
|
+
const changed = normalizePath(resolve(routeWatchTarget, file.toString()))
|
|
798
|
+
if (
|
|
799
|
+
changed !== normalizedRouteRoot &&
|
|
800
|
+
!changed.startsWith(`${normalizedRouteRoot}/`)
|
|
801
|
+
) {
|
|
802
|
+
return
|
|
803
|
+
}
|
|
804
|
+
rebuildIfRouteGraphChanged().catch((error) => {
|
|
805
|
+
console.error(`[vxrn] rebuilding the native route map failed`, error)
|
|
806
|
+
})
|
|
807
|
+
})
|
|
808
|
+
routeWatcher.on('error', (error) => {
|
|
809
|
+
console.error(`[vxrn] watching the native route map failed`, error)
|
|
810
|
+
})
|
|
811
|
+
await rebuildIfRouteGraphChanged()
|
|
812
|
+
|
|
781
813
|
return {
|
|
782
814
|
engine,
|
|
783
815
|
|
|
@@ -817,16 +849,9 @@ try {
|
|
|
817
849
|
},
|
|
818
850
|
|
|
819
851
|
async close() {
|
|
852
|
+
routeWatcher?.close()
|
|
820
853
|
await engine.close()
|
|
821
854
|
},
|
|
822
|
-
|
|
823
|
-
// vite's watcher sees a created file even when rolldown's addWatchFile
|
|
824
|
-
// directory watches do not, which is what happens on github's macos
|
|
825
|
-
// runners. scoped to route files so a random write in the project is not
|
|
826
|
-
// a full rebuild.
|
|
827
|
-
async handleAddedFile(file: string) {
|
|
828
|
-
await rebuildIfNewRoute([file])
|
|
829
|
-
},
|
|
830
855
|
}
|
|
831
856
|
}
|
|
832
857
|
|
|
@@ -894,7 +919,7 @@ export async function buildNativeBundle(
|
|
|
894
919
|
shimMissingExports: true,
|
|
895
920
|
moduleTypes: { '.js': 'jsx' },
|
|
896
921
|
plugins: [
|
|
897
|
-
...(entryFile ? [] : [nativeVirtualEntryPlugin(root, { dev }).plugin]),
|
|
922
|
+
...(entryFile ? [] : [nativeVirtualEntryPlugin(root, { dev, platform }).plugin]),
|
|
898
923
|
...getNativePlugins(
|
|
899
924
|
root,
|
|
900
925
|
platform,
|
|
@@ -942,13 +967,20 @@ interface NativeRouteRegistry {
|
|
|
942
967
|
routeRoot: string
|
|
943
968
|
files: Set<string>
|
|
944
969
|
isRouteFile: (file: string) => boolean
|
|
970
|
+
scanFiles: () => Set<string>
|
|
971
|
+
updateFiles: (files: Set<string>) => void
|
|
945
972
|
}
|
|
946
973
|
|
|
947
974
|
function nativeVirtualEntryPlugin(
|
|
948
975
|
root: string,
|
|
949
|
-
opts
|
|
976
|
+
opts: {
|
|
977
|
+
dev?: boolean
|
|
978
|
+
platform: 'ios' | 'android'
|
|
979
|
+
dynamicRoutes?: boolean
|
|
980
|
+
}
|
|
950
981
|
): { plugin: Plugin; routes: NativeRouteRegistry } {
|
|
951
982
|
const isDev = opts?.dev !== false
|
|
983
|
+
const useDynamicRouteRegistry = opts.dynamicRoutes === true
|
|
952
984
|
// absolute for import.meta.glob resolution; forward-slash for module-graph convention
|
|
953
985
|
const resolvedId = normalizePath(resolve(root, '__virtual-native-entry.tsx'))
|
|
954
986
|
|
|
@@ -1001,23 +1033,24 @@ globalThis.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform;
|
|
|
1001
1033
|
`
|
|
1002
1034
|
: ''
|
|
1003
1035
|
|
|
1004
|
-
const entryCode = `
|
|
1036
|
+
const entryCode = () => `
|
|
1005
1037
|
${refreshSetup}
|
|
1006
1038
|
import * as ReactNativeInitializeCore from 'react-native/Libraries/Core/InitializeCore';
|
|
1007
1039
|
import NativeWebSocket from 'react-native/Libraries/WebSocket/WebSocket';
|
|
1040
|
+
import DevSettings from 'react-native/Libraries/Utilities/DevSettings';
|
|
1008
1041
|
${setupFileImport}
|
|
1042
|
+
${routeImports}
|
|
1009
1043
|
import { createApp } from 'one';
|
|
1010
1044
|
|
|
1011
1045
|
void ReactNativeInitializeCore;
|
|
1012
1046
|
globalThis.WebSocket = NativeWebSocket;
|
|
1047
|
+
globalThis.__VXRN_RELOAD_NATIVE_DEV_BUNDLE__ = function(reason) {
|
|
1048
|
+
DevSettings.reload(reason);
|
|
1049
|
+
};
|
|
1013
1050
|
|
|
1014
|
-
|
|
1015
|
-
//
|
|
1016
|
-
|
|
1017
|
-
Object.keys(_routes).forEach(function(key) {
|
|
1018
|
-
var normalizedKey = key.replace(/^\\.\\//, '');
|
|
1019
|
-
routes['/' + normalizedKey] = _routes[key];
|
|
1020
|
-
});
|
|
1051
|
+
// React Native reloads a dev bundle in the existing JS runtime. Advance One's
|
|
1052
|
+
// route-cache version so a full reload cannot reuse the previous context.
|
|
1053
|
+
globalThis.__vxrnVersion = (globalThis.__vxrnVersion || 0) + 1;
|
|
1021
1054
|
|
|
1022
1055
|
createApp({
|
|
1023
1056
|
routes: routes,
|
|
@@ -1025,6 +1058,8 @@ createApp({
|
|
|
1025
1058
|
flags: ${JSON.stringify(flags)},
|
|
1026
1059
|
linking: ${JSON.stringify(linking)},
|
|
1027
1060
|
});
|
|
1061
|
+
|
|
1062
|
+
${routeHmr}
|
|
1028
1063
|
`
|
|
1029
1064
|
|
|
1030
1065
|
const routeRoot = resolve(root, routerRoot)
|
|
@@ -1045,11 +1080,66 @@ createApp({
|
|
|
1045
1080
|
!micromatch.isMatch(relativeToRoot, excludeGlobs)
|
|
1046
1081
|
)
|
|
1047
1082
|
}
|
|
1083
|
+
const scanFiles = () => {
|
|
1084
|
+
const files = new Set<string>()
|
|
1085
|
+
const walkRouteRoot = (dir: string) => {
|
|
1086
|
+
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
1087
|
+
const child = resolve(dir, entry.name)
|
|
1088
|
+
if (entry.isDirectory()) walkRouteRoot(child)
|
|
1089
|
+
else if (isRouteFile(child)) files.add(normalizePath(child))
|
|
1090
|
+
}
|
|
1091
|
+
}
|
|
1092
|
+
if (statSync(routeRoot, { throwIfNoEntry: false })?.isDirectory()) {
|
|
1093
|
+
walkRouteRoot(routeRoot)
|
|
1094
|
+
}
|
|
1095
|
+
return files
|
|
1096
|
+
}
|
|
1097
|
+
const registrySpecifier = `./node_modules/.vxrn/native-routes-${opts.platform}.mjs`
|
|
1098
|
+
const registryPath = resolve(root, registrySpecifier)
|
|
1048
1099
|
const routes: NativeRouteRegistry = {
|
|
1049
1100
|
routeRoot,
|
|
1050
1101
|
files: new Set(),
|
|
1051
1102
|
isRouteFile,
|
|
1103
|
+
scanFiles,
|
|
1104
|
+
updateFiles(files) {
|
|
1105
|
+
routes.files = files
|
|
1106
|
+
if (!useDynamicRouteRegistry) return
|
|
1107
|
+
|
|
1108
|
+
const source = `export const routes = {\n${[...files]
|
|
1109
|
+
.sort()
|
|
1110
|
+
.map((file) => {
|
|
1111
|
+
const routeKey = `/${normalizePath(relative(root, file))}`
|
|
1112
|
+
let importPath = normalizePath(relative(dirname(registryPath), file))
|
|
1113
|
+
if (!importPath.startsWith('.')) importPath = `./${importPath}`
|
|
1114
|
+
return ` ${JSON.stringify(routeKey)}: () => import(${JSON.stringify(importPath)})`
|
|
1115
|
+
})
|
|
1116
|
+
.join(',\n')}\n}\n`
|
|
1117
|
+
mkdirSync(dirname(registryPath), { recursive: true })
|
|
1118
|
+
if (!existsSync(registryPath) || readFileSync(registryPath, 'utf8') !== source) {
|
|
1119
|
+
writeFileSync(registryPath, source)
|
|
1120
|
+
}
|
|
1121
|
+
},
|
|
1052
1122
|
}
|
|
1123
|
+
routes.updateFiles(routes.scanFiles())
|
|
1124
|
+
|
|
1125
|
+
const routeImports = useDynamicRouteRegistry
|
|
1126
|
+
? `import { routes } from ${JSON.stringify(registrySpecifier)};`
|
|
1127
|
+
: `var _routes = import.meta.glob(${JSON.stringify(routeGlobs)}, { exhaustive: true });
|
|
1128
|
+
// fix route keys: One expects '/${routerRoot}/...' prefix but import.meta.glob returns './${routerRoot}/...'
|
|
1129
|
+
var routes = {};
|
|
1130
|
+
Object.keys(_routes).forEach(function(key) {
|
|
1131
|
+
var normalizedKey = key.replace(/^\\.\\//, '');
|
|
1132
|
+
routes['/' + normalizedKey] = _routes[key];
|
|
1133
|
+
});`
|
|
1134
|
+
const routeHmr = useDynamicRouteRegistry
|
|
1135
|
+
? `if (import.meta.hot) {
|
|
1136
|
+
import.meta.hot.accept(${JSON.stringify(registrySpecifier)}, function(next) {
|
|
1137
|
+
if (globalThis.__VXRN_UPDATE_NATIVE_ROUTES__) {
|
|
1138
|
+
globalThis.__VXRN_UPDATE_NATIVE_ROUTES__(next.routes);
|
|
1139
|
+
}
|
|
1140
|
+
});
|
|
1141
|
+
}`
|
|
1142
|
+
: ''
|
|
1053
1143
|
|
|
1054
1144
|
return {
|
|
1055
1145
|
routes,
|
|
@@ -1062,35 +1152,7 @@ createApp({
|
|
|
1062
1152
|
},
|
|
1063
1153
|
load(id) {
|
|
1064
1154
|
if (id !== resolvedId) return
|
|
1065
|
-
|
|
1066
|
-
// dependency on the files it matched, never on the directories it
|
|
1067
|
-
// searched. registering those directories is what makes its own watcher
|
|
1068
|
-
// report a route file appearing, and walking them is what lets the
|
|
1069
|
-
// engine tell that report apart from an edit.
|
|
1070
|
-
//
|
|
1071
|
-
// watching a directory is not recursive, so every directory under the
|
|
1072
|
-
// route root is registered. a new subdirectory is itself a change to
|
|
1073
|
-
// its watched parent, and the full build that follows re-runs this
|
|
1074
|
-
// hook, so the build that picks up `app/foo/index.tsx` is also what
|
|
1075
|
-
// starts watching `app/foo`.
|
|
1076
|
-
routes.files.clear()
|
|
1077
|
-
const walkRouteRoot = (dir: string) => {
|
|
1078
|
-
this.addWatchFile(dir)
|
|
1079
|
-
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
1080
|
-
const child = resolve(dir, entry.name)
|
|
1081
|
-
if (entry.isDirectory()) walkRouteRoot(child)
|
|
1082
|
-
else if (isRouteFile(child)) routes.files.add(normalizePath(child))
|
|
1083
|
-
}
|
|
1084
|
-
}
|
|
1085
|
-
// a project can have no route root at all: `import.meta.glob` then
|
|
1086
|
-
// expands to nothing and the app builds fine. watch the directory that
|
|
1087
|
-
// would hold it, so creating it is the change that starts the walk.
|
|
1088
|
-
if (statSync(routeRoot, { throwIfNoEntry: false })?.isDirectory()) {
|
|
1089
|
-
walkRouteRoot(routeRoot)
|
|
1090
|
-
} else {
|
|
1091
|
-
this.addWatchFile(dirname(routeRoot))
|
|
1092
|
-
}
|
|
1093
|
-
return entryCode
|
|
1155
|
+
return entryCode()
|
|
1094
1156
|
},
|
|
1095
1157
|
},
|
|
1096
1158
|
}
|
|
@@ -2069,11 +2131,13 @@ class ReactNativeDevRuntime extends BaseDevRuntime {
|
|
|
2069
2131
|
}
|
|
2070
2132
|
}
|
|
2071
2133
|
|
|
2072
|
-
reload() {
|
|
2073
|
-
var
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2134
|
+
reload(reason) {
|
|
2135
|
+
var reloadNativeBundle = globalThis.__VXRN_RELOAD_NATIVE_DEV_BUNDLE__;
|
|
2136
|
+
if (typeof reloadNativeBundle === 'function') {
|
|
2137
|
+
reloadNativeBundle(reason);
|
|
2138
|
+
return;
|
|
2139
|
+
}
|
|
2140
|
+
console.error('[vxrn HMR]: DevSettings.reload is unavailable');
|
|
2077
2141
|
}
|
|
2078
2142
|
|
|
2079
2143
|
setup(socket) {
|
|
@@ -2095,10 +2159,10 @@ class ReactNativeDevRuntime extends BaseDevRuntime {
|
|
|
2095
2159
|
if (message.type === 'hmr:update') {
|
|
2096
2160
|
// a patch that cannot be applied in place is the reload signal
|
|
2097
2161
|
if (!runtime.applyHmrUpdate(message.code, message.changedIds, message.seq)) {
|
|
2098
|
-
runtime.reload();
|
|
2162
|
+
runtime.reload('native HMR update could not be applied');
|
|
2099
2163
|
}
|
|
2100
2164
|
} else if (message.type === 'hmr:reload') {
|
|
2101
|
-
runtime.reload();
|
|
2165
|
+
runtime.reload('native route map changed');
|
|
2102
2166
|
}
|
|
2103
2167
|
} catch (error) {
|
|
2104
2168
|
console.error('[vxrn HMR]: failed to apply update', error);
|
|
@@ -45,9 +45,6 @@ export const EXCLUDE_LIST = [
|
|
|
45
45
|
// /lib/module/Platform/Platform.web.js:132:20
|
|
46
46
|
'@shopify/react-native-skia',
|
|
47
47
|
|
|
48
|
-
// web breaks trying to scan deps
|
|
49
|
-
'react-native-bottom-tabs',
|
|
50
|
-
|
|
51
48
|
'@react-native/virtualized-lists', // Unexpected "typeof" in `node_modules/@react-native/virtualized-lists/index.js`
|
|
52
49
|
|
|
53
50
|
// Native only, we don't expect SSR to use these packages.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtInDepPatches.d.ts","sourceRoot":"","sources":["../../src/patches/builtInDepPatches.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAiC,MAAM,kBAAkB,CAAA;AAE/E,eAAO,MAAM,iBAAiB,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"builtInDepPatches.d.ts","sourceRoot":"","sources":["../../src/patches/builtInDepPatches.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAiC,MAAM,kBAAkB,CAAA;AAE/E,eAAO,MAAM,iBAAiB,EAAE,QAAQ,EAsoBvC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactNativeDevServer.d.ts","sourceRoot":"","sources":["../../src/plugins/reactNativeDevServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,MAAM,EAAiB,MAAM,MAAM,CAAA;AAO1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAwBnE,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA4B9D;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,CAAC,EAAE,OAAO,CACf,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,aAAa,GAAG,kBAAkB,GAAG,SAAS,CAAC,CACrF,GACA,MAAM,
|
|
1
|
+
{"version":3,"file":"reactNativeDevServer.d.ts","sourceRoot":"","sources":["../../src/plugins/reactNativeDevServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,MAAM,EAAiB,MAAM,MAAM,CAAA;AAO1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAwBnE,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA4B9D;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,CAAC,EAAE,OAAO,CACf,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,aAAa,GAAG,kBAAkB,GAAG,SAAS,CAAC,CACrF,GACA,MAAM,CAiXR"}
|
|
@@ -49,7 +49,6 @@ interface NativeDevEngineResult {
|
|
|
49
49
|
getBundle: () => Promise<NativeDevBundle>;
|
|
50
50
|
getAsset: (pathname: string, hash?: string) => NativeDevAsset | undefined;
|
|
51
51
|
close: () => Promise<void>;
|
|
52
|
-
handleAddedFile: (file: string) => Promise<void>;
|
|
53
52
|
}
|
|
54
53
|
export declare function getNativeTransformConfig(platform: 'ios' | 'android', dev: boolean, root: string): {
|
|
55
54
|
jsx: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createNativeDevEngine.d.ts","sourceRoot":"","sources":["../../src/utils/createNativeDevEngine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"createNativeDevEngine.d.ts","sourceRoot":"","sources":["../../src/utils/createNativeDevEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanDepsToOptimize.d.ts","sourceRoot":"","sources":["../../src/utils/scanDepsToOptimize.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,cAAc,GAAG;IAC3B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,aAAa,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,6EAA6E;AAC7E,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"scanDepsToOptimize.d.ts","sourceRoot":"","sources":["../../src/utils/scanDepsToOptimize.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,cAAc,GAAG;IAC3B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,aAAa,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,6EAA6E;AAC7E,eAAO,MAAM,YAAY,UAwFxB,CAAA;AAED,eAAO,MAAM,gBAAgB,aAAwB,CAAA;AAErD,eAAO,MAAM,YAAY,UAKxB,CAAA;AAED,eAAO,MAAM,gBAAgB,aAAwB,CAAA;AA8BrD,wBAAsB,kBAAkB,CACtC,eAAe,EAAE,MAAM,EACvB,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,KAAK,OAAO,CAAA;IAC1C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACrC,8HAA8H;IAC9H,cAAc,CAAC,EAAE,GAAG,CAAA;CACP,GACd,OAAO,CAAC,cAAc,CAAC,CAmLzB;AA6BD,wBAAsB,kBAAkB,CAAC,GAAG,KAAA,EAAE,SAAS,KAAA,+BAmBtD"}
|