vxrn 1.14.4 → 1.15.0
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/cli.mjs +263 -248
- package/dist/cli.mjs.map +1 -1
- package/dist/cli.native.js +267 -252
- package/dist/cli.native.js.map +1 -1
- package/dist/config/getAdditionalViteConfig.mjs +8 -8
- package/dist/config/getAdditionalViteConfig.mjs.map +1 -1
- package/dist/config/getAdditionalViteConfig.native.js +8 -8
- package/dist/config/getAdditionalViteConfig.native.js.map +1 -1
- package/dist/config/getBaseViteConfigOnly.mjs +14 -12
- package/dist/config/getBaseViteConfigOnly.mjs.map +1 -1
- package/dist/config/getBaseViteConfigOnly.native.js +16 -14
- package/dist/config/getBaseViteConfigOnly.native.js.map +1 -1
- package/dist/config/getBaseVitePlugins.mjs +34 -19
- package/dist/config/getBaseVitePlugins.mjs.map +1 -1
- package/dist/config/getBaseVitePlugins.native.js +47 -32
- package/dist/config/getBaseVitePlugins.native.js.map +1 -1
- package/dist/config/getOptimizeDeps.mjs +12 -9
- package/dist/config/getOptimizeDeps.mjs.map +1 -1
- package/dist/config/getOptimizeDeps.native.js +12 -9
- package/dist/config/getOptimizeDeps.native.js.map +1 -1
- package/dist/config/getOptionsFilled.mjs +47 -41
- package/dist/config/getOptionsFilled.mjs.map +1 -1
- package/dist/config/getOptionsFilled.native.js +53 -50
- package/dist/config/getOptionsFilled.native.js.map +1 -1
- package/dist/config/getReactNativePlugins.mjs +5 -2
- package/dist/config/getReactNativePlugins.mjs.map +1 -1
- package/dist/config/getReactNativePlugins.native.js +8 -5
- package/dist/config/getReactNativePlugins.native.js.map +1 -1
- package/dist/config/getServerOptionsFilled.mjs +21 -14
- package/dist/config/getServerOptionsFilled.mjs.map +1 -1
- package/dist/config/getServerOptionsFilled.native.js +25 -21
- package/dist/config/getServerOptionsFilled.native.js.map +1 -1
- package/dist/config/getViteServerConfig.mjs +25 -16
- package/dist/config/getViteServerConfig.mjs.map +1 -1
- package/dist/config/getViteServerConfig.native.js +37 -28
- package/dist/config/getViteServerConfig.native.js.map +1 -1
- package/dist/config/mergeUserConfig.mjs +25 -7
- package/dist/config/mergeUserConfig.mjs.map +1 -1
- package/dist/config/mergeUserConfig.native.js +32 -14
- package/dist/config/mergeUserConfig.native.js.map +1 -1
- package/dist/config/mergeUserConfig.test.mjs +53 -26
- package/dist/config/mergeUserConfig.test.mjs.map +1 -1
- package/dist/config/mergeUserConfig.test.native.js +94 -74
- package/dist/config/mergeUserConfig.test.native.js.map +1 -1
- package/dist/constants.mjs +6 -6
- package/dist/constants.mjs.map +1 -1
- package/dist/constants.native.js +6 -6
- package/dist/constants.native.js.map +1 -1
- package/dist/exports/build.mjs +241 -191
- package/dist/exports/build.mjs.map +1 -1
- package/dist/exports/build.native.js +257 -221
- package/dist/exports/build.native.js.map +1 -1
- package/dist/exports/clean.mjs +17 -12
- package/dist/exports/clean.mjs.map +1 -1
- package/dist/exports/clean.native.js +22 -13
- package/dist/exports/clean.native.js.map +1 -1
- package/dist/exports/createServer.mjs +49 -35
- package/dist/exports/createServer.mjs.map +1 -1
- package/dist/exports/createServer.native.js +50 -34
- package/dist/exports/createServer.native.js.map +1 -1
- package/dist/exports/dev.mjs +119 -74
- package/dist/exports/dev.mjs.map +1 -1
- package/dist/exports/dev.native.js +131 -90
- package/dist/exports/dev.native.js.map +1 -1
- package/dist/exports/loadEnv.mjs +28 -19
- package/dist/exports/loadEnv.mjs.map +1 -1
- package/dist/exports/loadEnv.native.js +33 -28
- package/dist/exports/loadEnv.native.js.map +1 -1
- package/dist/exports/patch.mjs +4 -1
- package/dist/exports/patch.mjs.map +1 -1
- package/dist/exports/patch.native.js +4 -1
- package/dist/exports/patch.native.js.map +1 -1
- package/dist/exports/prebuild.mjs +106 -42
- package/dist/exports/prebuild.mjs.map +1 -1
- package/dist/exports/prebuild.native.js +116 -63
- package/dist/exports/prebuild.native.js.map +1 -1
- package/dist/exports/prebuildWithoutExpo.mjs +44 -39
- package/dist/exports/prebuildWithoutExpo.mjs.map +1 -1
- package/dist/exports/prebuildWithoutExpo.native.js +45 -42
- package/dist/exports/prebuildWithoutExpo.native.js.map +1 -1
- package/dist/exports/runAndroid.mjs +8 -5
- package/dist/exports/runAndroid.mjs.map +1 -1
- package/dist/exports/runAndroid.native.js +2 -1
- package/dist/exports/runAndroid.native.js.map +1 -1
- package/dist/exports/runIos.mjs +8 -5
- package/dist/exports/runIos.mjs.map +1 -1
- package/dist/exports/runIos.native.js +2 -1
- package/dist/exports/runIos.native.js.map +1 -1
- package/dist/exports/serve.mjs +14 -6
- package/dist/exports/serve.mjs.map +1 -1
- package/dist/exports/serve.native.js +21 -13
- package/dist/exports/serve.native.js.map +1 -1
- package/dist/exports/serveStaticAssets.mjs +37 -22
- package/dist/exports/serveStaticAssets.mjs.map +1 -1
- package/dist/exports/serveStaticAssets.native.js +65 -41
- package/dist/exports/serveStaticAssets.native.js.map +1 -1
- package/dist/patches/builtInDepPatches.mjs +145 -62
- package/dist/patches/builtInDepPatches.mjs.map +1 -1
- package/dist/patches/builtInDepPatches.native.js +116 -70
- package/dist/patches/builtInDepPatches.native.js.map +1 -1
- package/dist/plugins/autoDepOptimizePlugin.mjs +66 -42
- package/dist/plugins/autoDepOptimizePlugin.mjs.map +1 -1
- package/dist/plugins/autoDepOptimizePlugin.native.js +83 -63
- package/dist/plugins/autoDepOptimizePlugin.native.js.map +1 -1
- package/dist/plugins/autoDepOptimizePlugin.test.mjs +23 -17
- package/dist/plugins/autoDepOptimizePlugin.test.mjs.map +1 -1
- package/dist/plugins/autoDepOptimizePlugin.test.native.js +31 -27
- package/dist/plugins/autoDepOptimizePlugin.test.native.js.map +1 -1
- package/dist/plugins/defaultDepOptimizePlugin.mjs +6 -2
- package/dist/plugins/defaultDepOptimizePlugin.mjs.map +1 -1
- package/dist/plugins/defaultDepOptimizePlugin.native.js +6 -2
- package/dist/plugins/defaultDepOptimizePlugin.native.js.map +1 -1
- package/dist/plugins/expoManifestRequestHandlerPlugin.mjs +80 -36
- package/dist/plugins/expoManifestRequestHandlerPlugin.mjs.map +1 -1
- package/dist/plugins/expoManifestRequestHandlerPlugin.native.js +93 -46
- package/dist/plugins/expoManifestRequestHandlerPlugin.native.js.map +1 -1
- package/dist/plugins/getResolvedConfigSubset.mjs +3 -1
- package/dist/plugins/getResolvedConfigSubset.mjs.map +1 -1
- package/dist/plugins/getResolvedConfigSubset.native.js +3 -1
- package/dist/plugins/getResolvedConfigSubset.native.js.map +1 -1
- package/dist/plugins/reactNativeCommonJsPlugin.mjs +70 -46
- package/dist/plugins/reactNativeCommonJsPlugin.mjs.map +1 -1
- package/dist/plugins/reactNativeCommonJsPlugin.native.js +99 -68
- package/dist/plugins/reactNativeCommonJsPlugin.native.js.map +1 -1
- package/dist/plugins/reactNativeDevAssetPlugin.mjs +41 -27
- package/dist/plugins/reactNativeDevAssetPlugin.mjs.map +1 -1
- package/dist/plugins/reactNativeDevAssetPlugin.native.js +61 -48
- package/dist/plugins/reactNativeDevAssetPlugin.native.js.map +1 -1
- package/dist/plugins/reactNativeDevServer.mjs +126 -83
- package/dist/plugins/reactNativeDevServer.mjs.map +1 -1
- package/dist/plugins/reactNativeDevServer.native.js +156 -107
- package/dist/plugins/reactNativeDevServer.native.js.map +1 -1
- package/dist/plugins/resolveIdScan.test.mjs +22 -17
- package/dist/plugins/resolveIdScan.test.mjs.map +1 -1
- package/dist/plugins/resolveIdScan.test.native.js +25 -21
- package/dist/plugins/resolveIdScan.test.native.js.map +1 -1
- package/dist/plugins/serverExtensions.test.mjs +66 -38
- package/dist/plugins/serverExtensions.test.mjs.map +1 -1
- package/dist/plugins/serverExtensions.test.native.js +63 -49
- package/dist/plugins/serverExtensions.test.native.js.map +1 -1
- package/dist/rn-commands/bundle/buildBundle.mjs +48 -31
- package/dist/rn-commands/bundle/buildBundle.mjs.map +1 -1
- package/dist/rn-commands/bundle/buildBundle.native.js +52 -35
- package/dist/rn-commands/bundle/buildBundle.native.js.map +1 -1
- package/dist/runtime/hmr-client.mjs +59 -39
- package/dist/runtime/hmr-client.mjs.map +1 -1
- package/dist/runtime/hmr-client.native.js +132 -92
- package/dist/runtime/hmr-client.native.js.map +1 -1
- package/dist/runtime/hmr-runtime.mjs +65 -29
- package/dist/runtime/hmr-runtime.mjs.map +1 -1
- package/dist/runtime/hmr-runtime.native.js +361 -268
- package/dist/runtime/hmr-runtime.native.js.map +1 -1
- package/dist/runtime/react-refresh-utils.mjs +19 -9
- package/dist/runtime/react-refresh-utils.mjs.map +1 -1
- package/dist/runtime/react-refresh-utils.native.js +20 -10
- package/dist/runtime/react-refresh-utils.native.js.map +1 -1
- package/dist/serve/node.mjs +33 -19
- package/dist/serve/node.mjs.map +1 -1
- package/dist/serve/node.native.js +57 -39
- package/dist/serve/node.native.js.map +1 -1
- package/dist/user-interface/index.mjs +114 -61
- package/dist/user-interface/index.mjs.map +1 -1
- package/dist/user-interface/index.native.js +158 -111
- package/dist/user-interface/index.native.js.map +1 -1
- package/dist/utils/assert.mjs +6 -2
- package/dist/utils/assert.mjs.map +1 -1
- package/dist/utils/assert.native.js +12 -4
- package/dist/utils/assert.native.js.map +1 -1
- package/dist/utils/bindKeypressInput.mjs +38 -23
- package/dist/utils/bindKeypressInput.mjs.map +1 -1
- package/dist/utils/bindKeypressInput.native.js +38 -23
- package/dist/utils/bindKeypressInput.native.js.map +1 -1
- package/dist/utils/createNativeDevEngine.mjs +421 -319
- package/dist/utils/createNativeDevEngine.mjs.map +1 -1
- package/dist/utils/createNativeDevEngine.native.js +529 -425
- package/dist/utils/createNativeDevEngine.native.js.map +1 -1
- package/dist/utils/execSync.mjs +6 -4
- package/dist/utils/execSync.mjs.map +1 -1
- package/dist/utils/execSync.native.js.map +1 -1
- package/dist/utils/expoRun.mjs +5 -3
- package/dist/utils/expoRun.mjs.map +1 -1
- package/dist/utils/expoRun.native.js +13 -13
- package/dist/utils/expoRun.native.js.map +1 -1
- package/dist/utils/filterViteServerResolvedUrls.mjs +17 -5
- package/dist/utils/filterViteServerResolvedUrls.mjs.map +1 -1
- package/dist/utils/filterViteServerResolvedUrls.native.js +41 -23
- package/dist/utils/filterViteServerResolvedUrls.native.js.map +1 -1
- package/dist/utils/getServerEntry.mjs +6 -4
- package/dist/utils/getServerEntry.mjs.map +1 -1
- package/dist/utils/getServerEntry.native.js +9 -9
- package/dist/utils/getServerEntry.native.js.map +1 -1
- package/dist/utils/getVitePath.mjs +41 -17
- package/dist/utils/getVitePath.mjs.map +1 -1
- package/dist/utils/getVitePath.native.js +38 -16
- package/dist/utils/getVitePath.native.js.map +1 -1
- package/dist/utils/patches.mjs +143 -73
- package/dist/utils/patches.mjs.map +1 -1
- package/dist/utils/patches.native.js +299 -188
- package/dist/utils/patches.native.js.map +1 -1
- package/dist/utils/patches.test.mjs +106 -69
- package/dist/utils/patches.test.mjs.map +1 -1
- package/dist/utils/patches.test.native.js +100 -75
- package/dist/utils/patches.test.native.js.map +1 -1
- package/dist/utils/printServerUrls.mjs +6 -2
- package/dist/utils/printServerUrls.mjs.map +1 -1
- package/dist/utils/printServerUrls.native.js +28 -18
- package/dist/utils/printServerUrls.native.js.map +1 -1
- package/dist/utils/removeUndefined.mjs +5 -1
- package/dist/utils/removeUndefined.mjs.map +1 -1
- package/dist/utils/removeUndefined.native.js +5 -1
- package/dist/utils/removeUndefined.native.js.map +1 -1
- package/dist/utils/scanDepsToOptimize.mjs +131 -87
- package/dist/utils/scanDepsToOptimize.mjs.map +1 -1
- package/dist/utils/scanDepsToOptimize.native.js +163 -117
- package/dist/utils/scanDepsToOptimize.native.js.map +1 -1
- package/dist/utils/state.mjs +4 -2
- package/dist/utils/state.mjs.map +1 -1
- package/dist/utils/state.native.js +3 -2
- package/dist/utils/state.native.js.map +1 -1
- package/dist/utils/utils.mjs +4 -3
- package/dist/utils/utils.mjs.map +1 -1
- package/dist/utils/utils.native.js +22 -16
- package/dist/utils/utils.native.js.map +1 -1
- package/dist/vendor/debugger-app/src/index.css +1 -1
- package/dist/vendor/debugger-app/src/index.css.map +1 -1
- package/dist/vxrn-vite-plugin.mjs +10 -6
- package/dist/vxrn-vite-plugin.mjs.map +1 -1
- package/dist/vxrn-vite-plugin.native.js +25 -21
- package/dist/vxrn-vite-plugin.native.js.map +1 -1
- package/package.json +12 -12
- package/src/plugins/reactNativeDevServer.ts +0 -6
- package/src/utils/createNativeDevEngine.ts +55 -1
- package/types/plugins/reactNativeDevServer.d.ts.map +1 -1
- package/types/utils/createNativeDevEngine.d.ts.map +1 -1
|
@@ -2,10 +2,10 @@ import { parse } from "es-module-lexer";
|
|
|
2
2
|
import { mergeConfig } from "vite";
|
|
3
3
|
import { isNativeEnvironment } from "../utils/environmentUtils.native.js";
|
|
4
4
|
var getNativeExtensions = function (platform) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
return [`.${platform}.tsx`, `.${platform}.ts`, `.${platform}.jsx`, `.${platform}.js`, ".native.js", ".native.ts", ".native.tsx", ".tsx", ".ts", ".js", ".jsx", ".json"];
|
|
6
|
+
};
|
|
7
|
+
var conditions = ["react-native", "import", "require"];
|
|
8
|
+
var mainFields = ["react-native", "module", "jsnext:main", "jsnext"];
|
|
9
9
|
function reactNativeCommonJsPlugin(options) {
|
|
10
10
|
return {
|
|
11
11
|
name: "native",
|
|
@@ -19,20 +19,20 @@ function reactNativeCommonJsPlugin(options) {
|
|
|
19
19
|
},
|
|
20
20
|
build: {
|
|
21
21
|
modulePreload: {
|
|
22
|
-
polyfill:
|
|
22
|
+
polyfill: false
|
|
23
23
|
},
|
|
24
24
|
// Ensures that even very large assets are inlined in your JavaScript.
|
|
25
25
|
assetsInlineLimit: 1e8,
|
|
26
26
|
// Avoid warnings about large chunks
|
|
27
27
|
chunkSizeWarningLimit: 1e8,
|
|
28
28
|
// Emit all CSS as a single file, which `vite-plugin-singlefile` can then inline
|
|
29
|
-
cssCodeSplit:
|
|
29
|
+
cssCodeSplit: false,
|
|
30
30
|
// Avoids the extra step of testing Brotli compression, which isn't really pertinent to a file served locally
|
|
31
|
-
reportCompressedSize:
|
|
31
|
+
reportCompressedSize: false,
|
|
32
32
|
rolldownOptions: {
|
|
33
|
-
treeshake:
|
|
33
|
+
treeshake: false,
|
|
34
34
|
output: {
|
|
35
|
-
preserveModules:
|
|
35
|
+
preserveModules: true,
|
|
36
36
|
manualChunks: void 0,
|
|
37
37
|
// Ensure that as many resources as possible are inlined.
|
|
38
38
|
// inlineDynamicImports: true,
|
|
@@ -40,85 +40,107 @@ function reactNativeCommonJsPlugin(options) {
|
|
|
40
40
|
exports: "named",
|
|
41
41
|
// ensures we have clean names for our require paths
|
|
42
42
|
entryFileNames: function () {
|
|
43
|
-
return
|
|
43
|
+
return `[name].js`;
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
46
|
plugins: [{
|
|
47
|
-
name:
|
|
47
|
+
name: `force-export-all`,
|
|
48
48
|
async transform(code, id) {
|
|
49
|
-
if (isNativeEnvironment(this.environment)
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
if (!isNativeEnvironment(this.environment)) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (id.includes("?commonjs")) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
var [foundImports, foundExports] = parse(code);
|
|
57
|
+
var idToModule = {};
|
|
58
|
+
var _iteratorNormalCompletion = true,
|
|
59
|
+
_didIteratorError = false,
|
|
54
60
|
_iteratorError = void 0;
|
|
55
61
|
try {
|
|
56
|
-
for (var _iterator = foundImports[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion =
|
|
62
|
+
for (var _iterator = foundImports[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
57
63
|
var imp = _step.value;
|
|
58
64
|
if (imp.n) {
|
|
59
|
-
var line = code.slice(imp.ss, imp.se)
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
_didIteratorError1 =
|
|
65
|
+
var line = code.slice(imp.ss, imp.se);
|
|
66
|
+
var imports = getAllImportedIdentifiers(line);
|
|
67
|
+
var _iteratorNormalCompletion1 = true,
|
|
68
|
+
_didIteratorError1 = false,
|
|
63
69
|
_iteratorError1 = void 0;
|
|
64
70
|
try {
|
|
65
|
-
for (var _iterator1 = imports[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 =
|
|
71
|
+
for (var _iterator1 = imports[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
|
|
66
72
|
var _$id = _step1.value;
|
|
67
73
|
idToModule[_$id] = imp.n;
|
|
68
74
|
}
|
|
69
75
|
} catch (err) {
|
|
70
|
-
_didIteratorError1 =
|
|
76
|
+
_didIteratorError1 = true;
|
|
77
|
+
_iteratorError1 = err;
|
|
71
78
|
} finally {
|
|
72
79
|
try {
|
|
73
|
-
!_iteratorNormalCompletion1 && _iterator1.return != null
|
|
80
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
81
|
+
_iterator1.return();
|
|
82
|
+
}
|
|
74
83
|
} finally {
|
|
75
|
-
if (_didIteratorError1)
|
|
84
|
+
if (_didIteratorError1) {
|
|
85
|
+
throw _iteratorError1;
|
|
86
|
+
}
|
|
76
87
|
}
|
|
77
88
|
}
|
|
78
89
|
}
|
|
79
90
|
}
|
|
80
91
|
} catch (err) {
|
|
81
|
-
_didIteratorError =
|
|
92
|
+
_didIteratorError = true;
|
|
93
|
+
_iteratorError = err;
|
|
82
94
|
} finally {
|
|
83
95
|
try {
|
|
84
|
-
!_iteratorNormalCompletion && _iterator.return != null
|
|
96
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
97
|
+
_iterator.return();
|
|
98
|
+
}
|
|
85
99
|
} finally {
|
|
86
|
-
if (_didIteratorError)
|
|
100
|
+
if (_didIteratorError) {
|
|
101
|
+
throw _iteratorError;
|
|
102
|
+
}
|
|
87
103
|
}
|
|
88
104
|
}
|
|
89
|
-
var toReExport = {}
|
|
90
|
-
|
|
91
|
-
_didIteratorError2 =
|
|
105
|
+
var toReExport = {};
|
|
106
|
+
var _iteratorNormalCompletion2 = true,
|
|
107
|
+
_didIteratorError2 = false,
|
|
92
108
|
_iteratorError2 = void 0;
|
|
93
109
|
try {
|
|
94
|
-
for (var _iterator2 = foundExports[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 =
|
|
95
|
-
var exp = _step2.value
|
|
96
|
-
|
|
97
|
-
if (
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
110
|
+
for (var _iterator2 = foundExports[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
|
111
|
+
var exp = _step2.value;
|
|
112
|
+
var expName = exp.ln || exp.n;
|
|
113
|
+
if (RESERVED_WORDS.has(expName)) {
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
var moduleName = idToModule[expName];
|
|
117
|
+
if (moduleName) {
|
|
118
|
+
var _toReExport, _moduleName;
|
|
119
|
+
(_toReExport = toReExport)[_moduleName = moduleName] || (_toReExport[_moduleName] = []);
|
|
120
|
+
toReExport[moduleName].push(expName);
|
|
103
121
|
}
|
|
104
122
|
}
|
|
105
123
|
} catch (err) {
|
|
106
|
-
_didIteratorError2 =
|
|
124
|
+
_didIteratorError2 = true;
|
|
125
|
+
_iteratorError2 = err;
|
|
107
126
|
} finally {
|
|
108
127
|
try {
|
|
109
|
-
!_iteratorNormalCompletion2 && _iterator2.return != null
|
|
128
|
+
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
129
|
+
_iterator2.return();
|
|
130
|
+
}
|
|
110
131
|
} finally {
|
|
111
|
-
if (_didIteratorError2)
|
|
132
|
+
if (_didIteratorError2) {
|
|
133
|
+
throw _iteratorError2;
|
|
134
|
+
}
|
|
112
135
|
}
|
|
113
136
|
}
|
|
114
|
-
var forceExports =
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
_didIteratorError3 =
|
|
137
|
+
var forceExports = ``;
|
|
138
|
+
var found = 0;
|
|
139
|
+
var _iteratorNormalCompletion3 = true,
|
|
140
|
+
_didIteratorError3 = false,
|
|
118
141
|
_iteratorError3 = void 0;
|
|
119
142
|
try {
|
|
120
|
-
for (var _iterator3 = code.split(
|
|
121
|
-
`)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = !0) {
|
|
143
|
+
for (var _iterator3 = code.split("\n")[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
|
122
144
|
var line1 = _step3.value;
|
|
123
145
|
if (line1.startsWith("export * from")) {
|
|
124
146
|
var [_, exportedName] = line1.match(/export \* from ['"]([^'"]+)['"]/) || [];
|
|
@@ -135,15 +157,20 @@ function reactNativeCommonJsPlugin(options) {
|
|
|
135
157
|
}
|
|
136
158
|
}
|
|
137
159
|
} catch (err) {
|
|
138
|
-
_didIteratorError3 =
|
|
160
|
+
_didIteratorError3 = true;
|
|
161
|
+
_iteratorError3 = err;
|
|
139
162
|
} finally {
|
|
140
163
|
try {
|
|
141
|
-
!_iteratorNormalCompletion3 && _iterator3.return != null
|
|
164
|
+
if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
|
|
165
|
+
_iterator3.return();
|
|
166
|
+
}
|
|
142
167
|
} finally {
|
|
143
|
-
if (_didIteratorError3)
|
|
168
|
+
if (_didIteratorError3) {
|
|
169
|
+
throw _iteratorError3;
|
|
170
|
+
}
|
|
144
171
|
}
|
|
145
172
|
}
|
|
146
|
-
|
|
173
|
+
forceExports += Object.keys(toReExport).map(function (path) {
|
|
147
174
|
var exportedNames = toReExport[path];
|
|
148
175
|
found++;
|
|
149
176
|
var name2 = `__vxrnExp${found}`;
|
|
@@ -153,20 +180,20 @@ function reactNativeCommonJsPlugin(options) {
|
|
|
153
180
|
return n === "default" ? name2 : `${name2}.${n}`;
|
|
154
181
|
}).join(",")}]
|
|
155
182
|
`;
|
|
156
|
-
}).join(";")
|
|
157
|
-
|
|
158
|
-
|
|
183
|
+
}).join(";");
|
|
184
|
+
return {
|
|
185
|
+
code: code + "\n" + forceExports,
|
|
159
186
|
moduleSideEffects: "no-treeshake"
|
|
160
187
|
};
|
|
161
|
-
} catch {
|
|
162
|
-
console.warn(
|
|
188
|
+
} catch (err) {
|
|
189
|
+
console.warn(`Error forcing exports, probably ok`, id);
|
|
163
190
|
}
|
|
164
191
|
}
|
|
165
192
|
}]
|
|
166
193
|
}
|
|
167
194
|
},
|
|
168
195
|
optimizeDeps: {
|
|
169
|
-
noDiscovery:
|
|
196
|
+
noDiscovery: true,
|
|
170
197
|
include: void 0,
|
|
171
198
|
rolldownOptions: {
|
|
172
199
|
moduleTypes: {
|
|
@@ -179,7 +206,7 @@ function reactNativeCommonJsPlugin(options) {
|
|
|
179
206
|
environments: {
|
|
180
207
|
ios: mergeConfig(sharedNativeConfig, {
|
|
181
208
|
define: {
|
|
182
|
-
"process.env.REACT_NATIVE_PLATFORM": JSON.stringify(
|
|
209
|
+
"process.env.REACT_NATIVE_PLATFORM": JSON.stringify(`ios`)
|
|
183
210
|
},
|
|
184
211
|
resolve: {
|
|
185
212
|
extensions: getNativeExtensions("ios"),
|
|
@@ -194,10 +221,12 @@ function reactNativeCommonJsPlugin(options) {
|
|
|
194
221
|
plugins: [{
|
|
195
222
|
name: "react-native-assets",
|
|
196
223
|
resolveId(source) {
|
|
197
|
-
if (/\.(png|jpg|gif|webp)$/.test(source))
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
224
|
+
if (/\.(png|jpg|gif|webp)$/.test(source)) {
|
|
225
|
+
return {
|
|
226
|
+
id: "",
|
|
227
|
+
external: true
|
|
228
|
+
};
|
|
229
|
+
}
|
|
201
230
|
}
|
|
202
231
|
}]
|
|
203
232
|
}
|
|
@@ -205,7 +234,7 @@ function reactNativeCommonJsPlugin(options) {
|
|
|
205
234
|
}),
|
|
206
235
|
android: mergeConfig(sharedNativeConfig, {
|
|
207
236
|
define: {
|
|
208
|
-
"process.env.REACT_NATIVE_PLATFORM": JSON.stringify(
|
|
237
|
+
"process.env.REACT_NATIVE_PLATFORM": JSON.stringify(`android`)
|
|
209
238
|
},
|
|
210
239
|
resolve: {
|
|
211
240
|
extensions: getNativeExtensions("android"),
|
|
@@ -226,9 +255,11 @@ function reactNativeCommonJsPlugin(options) {
|
|
|
226
255
|
};
|
|
227
256
|
}
|
|
228
257
|
function getAllImportedIdentifiers(importStatement) {
|
|
229
|
-
var importRegex = /{([^}]+)}
|
|
230
|
-
|
|
231
|
-
if (!match)
|
|
258
|
+
var importRegex = /{([^}]+)}/;
|
|
259
|
+
var match = importStatement.match(importRegex);
|
|
260
|
+
if (!match) {
|
|
261
|
+
return [];
|
|
262
|
+
}
|
|
232
263
|
var imports = match[1];
|
|
233
264
|
return imports.split(",").map(function (name) {
|
|
234
265
|
var parts = name.split(/\s+as\s+/);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["parse","mergeConfig","isNativeEnvironment","getNativeExtensions","platform","conditions","mainFields","reactNativeCommonJsPlugin","options","name","enforce","config","sharedNativeConfig","base","define","JSON","stringify","port","build","modulePreload","polyfill","assetsInlineLimit","chunkSizeWarningLimit","cssCodeSplit","reportCompressedSize","rolldownOptions","treeshake","output","preserveModules","manualChunks","exports","entryFileNames","plugins","transform","code","id","environment","includes","foundImports","foundExports","idToModule","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","imp","value","n","line","slice","ss","se","imports","getAllImportedIdentifiers","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","_$id","err","return","toReExport","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","exp","expName","ln","RESERVED_WORDS","has","moduleName","_toReExport","_moduleName","push","forceExports","found","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_iterator3","split","_step3","line1","startsWith","_","exportedName","match","Object","keys","map","path","exportedNames","name2","join","moduleSideEffects","console","warn","optimizeDeps","noDiscovery","include","moduleTypes","environments","ios","resolve","extensions","resolveId","source","test","external"
|
|
1
|
+
{"version":3,"names":["parse","mergeConfig","isNativeEnvironment","getNativeExtensions","platform","conditions","mainFields","reactNativeCommonJsPlugin","options","name","enforce","config","sharedNativeConfig","base","define","JSON","stringify","port","build","modulePreload","polyfill","assetsInlineLimit","chunkSizeWarningLimit","cssCodeSplit","reportCompressedSize","rolldownOptions","treeshake","output","preserveModules","manualChunks","exports","entryFileNames","plugins","transform","code","id","environment","includes","foundImports","foundExports","idToModule","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","imp","value","n","line","slice","ss","se","imports","getAllImportedIdentifiers","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","_$id","err","return","toReExport","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","exp","expName","ln","RESERVED_WORDS","has","moduleName","_toReExport","_moduleName","push","forceExports","found","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_iterator3","split","_step3","line1","startsWith","_","exportedName","match","Object","keys","map","path","exportedNames","name2","join","moduleSideEffects","console","warn","optimizeDeps","noDiscovery","include","moduleTypes","environments","ios","resolve","extensions","resolveId","source","test","external"],"sources":["../../src/plugins/reactNativeCommonJsPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -2,26 +2,28 @@ import path from "node:path";
|
|
|
2
2
|
import FSExtra from "fs-extra";
|
|
3
3
|
import colors from "picocolors";
|
|
4
4
|
import { isNativeEnvironment } from "../utils/environmentUtils.mjs";
|
|
5
|
-
const ASSET_DEST_DIR = "assets"
|
|
6
|
-
|
|
5
|
+
const ASSET_DEST_DIR = "assets";
|
|
6
|
+
const DEV_ASSET_DEST_PATH = "__vxrn_dev_native_assets";
|
|
7
7
|
function reactNativeDevAssetPlugin(options) {
|
|
8
8
|
const {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
assetExts
|
|
10
|
+
} = options;
|
|
11
|
+
const assetExtsRegExp = new RegExp(`\\.(${assetExts.join("|")})$`);
|
|
12
|
+
const isAssetFile = id => assetExtsRegExp.test(id);
|
|
13
13
|
let config;
|
|
14
14
|
async function getAssetData(id) {
|
|
15
|
-
const projectRoot = config.root
|
|
16
|
-
|
|
15
|
+
const projectRoot = config.root;
|
|
16
|
+
const relativeAssetPath = path.relative(projectRoot, id);
|
|
17
17
|
let assetUrlPath = relativeAssetPath;
|
|
18
|
-
path.sep === "\\"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
if (path.sep === "\\") {
|
|
19
|
+
assetUrlPath = assetUrlPath.replaceAll("\\", "/");
|
|
20
|
+
}
|
|
21
|
+
const relativeAssetDir = path.dirname(relativeAssetPath);
|
|
22
|
+
const assetBasename = path.basename(relativeAssetPath);
|
|
23
|
+
const assetExt = path.extname(assetBasename).slice(1);
|
|
24
|
+
const assetName = assetBasename.slice(0, -(assetExt.length + 1));
|
|
25
|
+
const assetData = {
|
|
26
|
+
__packager_asset: true,
|
|
25
27
|
fileSystemLocation: path.dirname(id),
|
|
26
28
|
relativeFileSystemLocation: relativeAssetDir,
|
|
27
29
|
httpServerLocation: `/${options.mode === "dev" ? DEV_ASSET_DEST_PATH : ASSET_DEST_DIR}/${assetUrlPath.slice(0, -(assetBasename.length + 1)
|
|
@@ -31,6 +33,7 @@ function reactNativeDevAssetPlugin(options) {
|
|
|
31
33
|
name: assetName,
|
|
32
34
|
type: assetExt
|
|
33
35
|
};
|
|
36
|
+
return assetData;
|
|
34
37
|
}
|
|
35
38
|
return {
|
|
36
39
|
name: "vxrn:react-native-dev-asset",
|
|
@@ -44,38 +47,49 @@ function reactNativeDevAssetPlugin(options) {
|
|
|
44
47
|
// // TODO: May need to handle platform specific extensions here.
|
|
45
48
|
// },
|
|
46
49
|
async load(id, _options) {
|
|
47
|
-
if (!isNativeEnvironment(this.environment)
|
|
50
|
+
if (!isNativeEnvironment(this.environment)) return;
|
|
51
|
+
if (!isAssetFile(id)) return;
|
|
48
52
|
const assetData = await getAssetData(id);
|
|
49
53
|
if (options.mode === "prod" && options.assetsDest) {
|
|
50
54
|
const assetsDestDir = path.join(options.assetsDest, ASSET_DEST_DIR, assetData.relativeFileSystemLocation);
|
|
51
|
-
await FSExtra.ensureDir(assetsDestDir)
|
|
55
|
+
await FSExtra.ensureDir(assetsDestDir);
|
|
56
|
+
await FSExtra.copyFile(id, path.join(assetsDestDir, `${assetData.name}.${assetData.type}`));
|
|
52
57
|
}
|
|
53
|
-
|
|
58
|
+
const assetModuleCode = `
|
|
54
59
|
import { AssetRegistry } from 'react-native';
|
|
55
60
|
|
|
56
61
|
export const asset = AssetRegistry.registerAsset(${JSON.stringify(assetData, null, 2)});
|
|
57
62
|
|
|
58
63
|
export default asset;
|
|
59
64
|
`;
|
|
65
|
+
return assetModuleCode;
|
|
60
66
|
},
|
|
61
67
|
/**
|
|
62
68
|
* Extend the dev server to serve assets during development.
|
|
63
69
|
*/
|
|
64
70
|
configureServer(server) {
|
|
65
71
|
const {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
72
|
+
logger
|
|
73
|
+
} = server.config;
|
|
74
|
+
const defaultLogOptions = {
|
|
75
|
+
timestamp: true
|
|
76
|
+
};
|
|
71
77
|
server.middlewares.use(async (req, res, next) => {
|
|
72
|
-
if (!req.url?.startsWith(`/${DEV_ASSET_DEST_PATH}/`))
|
|
73
|
-
|
|
78
|
+
if (!req.url?.startsWith(`/${DEV_ASSET_DEST_PATH}/`)) {
|
|
79
|
+
return next();
|
|
80
|
+
}
|
|
81
|
+
const url = new URL("http://example.com" + req.url);
|
|
82
|
+
const pathname = url.pathname;
|
|
83
|
+
const assetPath = "./" + pathname.slice(`/${DEV_ASSET_DEST_PATH}/`.length).replace(/\.*$/, "");
|
|
74
84
|
try {
|
|
75
85
|
const asset = await FSExtra.readFile(assetPath);
|
|
76
|
-
res.setHeader("content-type", "image/png")
|
|
86
|
+
res.setHeader("content-type", "image/png");
|
|
87
|
+
res.write(asset);
|
|
88
|
+
res.end();
|
|
77
89
|
} catch (e) {
|
|
78
|
-
logger.error(colors.red(`[vxrn] Failed to serve asset: ${assetPath}: ${e instanceof Error ? e.message : "unknown error"}`), defaultLogOptions)
|
|
90
|
+
logger.error(colors.red(`[vxrn] Failed to serve asset: ${assetPath}: ${e instanceof Error ? e.message : "unknown error"}`), defaultLogOptions);
|
|
91
|
+
res.statusCode = e instanceof Error && e.code === "ENOENT" ? 404 : 500;
|
|
92
|
+
res.end();
|
|
79
93
|
}
|
|
80
94
|
});
|
|
81
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["path","FSExtra","colors","isNativeEnvironment","ASSET_DEST_DIR","DEV_ASSET_DEST_PATH","reactNativeDevAssetPlugin","options","assetExts","assetExtsRegExp","RegExp","join","isAssetFile","id","test","config","getAssetData","projectRoot","root","relativeAssetPath","relative","assetUrlPath","sep","replaceAll","relativeAssetDir","dirname","assetBasename","basename","assetExt","extname","slice","assetName","length","__packager_asset","fileSystemLocation","relativeFileSystemLocation","httpServerLocation","mode","scales","name","type","enforce","configResolved","resolvedConfig","load","_options","environment","
|
|
1
|
+
{"version":3,"names":["path","FSExtra","colors","isNativeEnvironment","ASSET_DEST_DIR","DEV_ASSET_DEST_PATH","reactNativeDevAssetPlugin","options","assetExts","assetExtsRegExp","RegExp","join","isAssetFile","id","test","config","getAssetData","projectRoot","root","relativeAssetPath","relative","assetUrlPath","sep","replaceAll","relativeAssetDir","dirname","assetBasename","basename","assetExt","extname","slice","assetName","length","assetData","__packager_asset","fileSystemLocation","relativeFileSystemLocation","httpServerLocation","mode","scales","name","type","enforce","configResolved","resolvedConfig","load","_options","environment","assetsDest","assetsDestDir","ensureDir","copyFile","assetModuleCode","JSON","stringify","configureServer","server","logger","defaultLogOptions","timestamp","middlewares","use","req","res","next","url","startsWith","URL","pathname","assetPath","replace","asset","readFile","setHeader","write","end","e","error","red","Error","message","statusCode","code"],"sources":["../../src/plugins/reactNativeDevAssetPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -3,38 +3,44 @@ import FSExtra from "fs-extra";
|
|
|
3
3
|
import colors from "picocolors";
|
|
4
4
|
import { isNativeEnvironment } from "../utils/environmentUtils.native.js";
|
|
5
5
|
function _instanceof(left, right) {
|
|
6
|
-
|
|
6
|
+
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
7
|
+
return !!right[Symbol.hasInstance](left);
|
|
8
|
+
} else {
|
|
9
|
+
return left instanceof right;
|
|
10
|
+
}
|
|
7
11
|
}
|
|
8
|
-
var ASSET_DEST_DIR = "assets"
|
|
9
|
-
|
|
12
|
+
var ASSET_DEST_DIR = "assets";
|
|
13
|
+
var DEV_ASSET_DEST_PATH = "__vxrn_dev_native_assets";
|
|
10
14
|
function reactNativeDevAssetPlugin(options) {
|
|
11
15
|
var {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
assetExts
|
|
17
|
+
} = options;
|
|
18
|
+
var assetExtsRegExp = new RegExp(`\\.(${assetExts.join("|")})$`);
|
|
19
|
+
var isAssetFile = function (id) {
|
|
20
|
+
return assetExtsRegExp.test(id);
|
|
21
|
+
};
|
|
22
|
+
var config;
|
|
19
23
|
async function getAssetData(id) {
|
|
20
|
-
var projectRoot = config.root
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
path.sep === "\\"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
24
|
+
var projectRoot = config.root;
|
|
25
|
+
var relativeAssetPath = path.relative(projectRoot, id);
|
|
26
|
+
var assetUrlPath = relativeAssetPath;
|
|
27
|
+
if (path.sep === "\\") {
|
|
28
|
+
assetUrlPath = assetUrlPath.replaceAll("\\", "/");
|
|
29
|
+
}
|
|
30
|
+
var relativeAssetDir = path.dirname(relativeAssetPath);
|
|
31
|
+
var assetBasename = path.basename(relativeAssetPath);
|
|
32
|
+
var assetExt = path.extname(assetBasename).slice(1);
|
|
33
|
+
var assetName = assetBasename.slice(0, -(assetExt.length + 1));
|
|
34
|
+
var assetData = {
|
|
35
|
+
__packager_asset: true,
|
|
36
|
+
fileSystemLocation: path.dirname(id),
|
|
37
|
+
relativeFileSystemLocation: relativeAssetDir,
|
|
38
|
+
httpServerLocation: `/${options.mode === "dev" ? DEV_ASSET_DEST_PATH : ASSET_DEST_DIR}/${assetUrlPath.slice(0, -(assetBasename.length + 1))}`,
|
|
39
|
+
scales: [1],
|
|
40
|
+
// TODO
|
|
41
|
+
name: assetName,
|
|
42
|
+
type: assetExt
|
|
43
|
+
};
|
|
38
44
|
return assetData;
|
|
39
45
|
}
|
|
40
46
|
return {
|
|
@@ -49,43 +55,50 @@ function reactNativeDevAssetPlugin(options) {
|
|
|
49
55
|
// // TODO: May need to handle platform specific extensions here.
|
|
50
56
|
// },
|
|
51
57
|
async load(id, _options) {
|
|
52
|
-
if (isNativeEnvironment(this.environment)
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
if (!isNativeEnvironment(this.environment)) return;
|
|
59
|
+
if (!isAssetFile(id)) return;
|
|
60
|
+
var assetData = await getAssetData(id);
|
|
61
|
+
if (options.mode === "prod" && options.assetsDest) {
|
|
62
|
+
var assetsDestDir = path.join(options.assetsDest, ASSET_DEST_DIR, assetData.relativeFileSystemLocation);
|
|
63
|
+
await FSExtra.ensureDir(assetsDestDir);
|
|
64
|
+
await FSExtra.copyFile(id, path.join(assetsDestDir, `${assetData.name}.${assetData.type}`));
|
|
65
|
+
}
|
|
66
|
+
var assetModuleCode = `
|
|
59
67
|
import { AssetRegistry } from 'react-native';
|
|
60
68
|
|
|
61
69
|
export const asset = AssetRegistry.registerAsset(${JSON.stringify(assetData, null, 2)});
|
|
62
70
|
|
|
63
71
|
export default asset;
|
|
64
72
|
`;
|
|
65
|
-
|
|
66
|
-
}
|
|
73
|
+
return assetModuleCode;
|
|
67
74
|
},
|
|
68
75
|
/**
|
|
69
76
|
* Extend the dev server to serve assets during development.
|
|
70
77
|
*/
|
|
71
78
|
configureServer(server) {
|
|
72
79
|
var {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
80
|
+
logger
|
|
81
|
+
} = server.config;
|
|
82
|
+
var defaultLogOptions = {
|
|
83
|
+
timestamp: true
|
|
84
|
+
};
|
|
78
85
|
server.middlewares.use(async function (req, res, next) {
|
|
79
86
|
var _req_url;
|
|
80
|
-
if (!(
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
87
|
+
if (!((_req_url = req.url) === null || _req_url === void 0 ? void 0 : _req_url.startsWith(`/${DEV_ASSET_DEST_PATH}/`))) {
|
|
88
|
+
return next();
|
|
89
|
+
}
|
|
90
|
+
var url = new URL("http://example.com" + req.url);
|
|
91
|
+
var pathname = url.pathname;
|
|
92
|
+
var assetPath = "./" + pathname.slice(`/${DEV_ASSET_DEST_PATH}/`.length).replace(/\.*$/, "");
|
|
84
93
|
try {
|
|
85
94
|
var asset = await FSExtra.readFile(assetPath);
|
|
86
|
-
res.setHeader("content-type", "image/png")
|
|
95
|
+
res.setHeader("content-type", "image/png");
|
|
96
|
+
res.write(asset);
|
|
97
|
+
res.end();
|
|
87
98
|
} catch (e) {
|
|
88
|
-
logger.error(colors.red(`[vxrn] Failed to serve asset: ${assetPath}: ${_instanceof(e, Error) ? e.message : "unknown error"}`), defaultLogOptions)
|
|
99
|
+
logger.error(colors.red(`[vxrn] Failed to serve asset: ${assetPath}: ${_instanceof(e, Error) ? e.message : "unknown error"}`), defaultLogOptions);
|
|
100
|
+
res.statusCode = _instanceof(e, Error) && e.code === "ENOENT" ? 404 : 500;
|
|
101
|
+
res.end();
|
|
89
102
|
}
|
|
90
103
|
});
|
|
91
104
|
}
|