vxrn 1.1.244 → 1.1.245
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/constants/defaults.js +39 -0
- package/dist/constants/defaults.js.map +6 -0
- package/dist/constants/defaults.mjs +15 -0
- package/dist/constants/defaults.mjs.map +1 -0
- package/dist/constants/defaults.native.js +15 -0
- package/dist/constants/defaults.native.js.map +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/constants.mjs.map +1 -1
- package/dist/constants.native.js.map +1 -1
- package/dist/plugins/reactNativeDevAssetPlugin.js +29 -41
- package/dist/plugins/reactNativeDevAssetPlugin.js.map +2 -2
- package/dist/plugins/reactNativeDevAssetPlugin.mjs +22 -21
- package/dist/plugins/reactNativeDevAssetPlugin.mjs.map +1 -1
- package/dist/plugins/reactNativeDevAssetPlugin.native.js +24 -22
- package/dist/plugins/reactNativeDevAssetPlugin.native.js.map +1 -1
- package/dist/plugins/reactNativeHMRPlugin.js +9 -2
- package/dist/plugins/reactNativeHMRPlugin.js.map +1 -1
- package/dist/plugins/reactNativeHMRPlugin.mjs +7 -3
- package/dist/plugins/reactNativeHMRPlugin.mjs.map +1 -1
- package/dist/plugins/reactNativeHMRPlugin.native.js +10 -4
- package/dist/plugins/reactNativeHMRPlugin.native.js.map +1 -1
- package/dist/utils/getReactNativeConfig.js +3 -1
- package/dist/utils/getReactNativeConfig.js.map +1 -1
- package/dist/utils/getReactNativeConfig.mjs +3 -1
- package/dist/utils/getReactNativeConfig.mjs.map +1 -1
- package/dist/utils/getReactNativeConfig.native.js +3 -1
- package/dist/utils/getReactNativeConfig.native.js.map +1 -1
- package/dist/utils/getViteServerConfig.js +7 -2
- package/dist/utils/getViteServerConfig.js.map +1 -1
- package/dist/utils/getViteServerConfig.mjs +7 -2
- package/dist/utils/getViteServerConfig.mjs.map +1 -1
- package/dist/utils/getViteServerConfig.native.js +7 -2
- package/dist/utils/getViteServerConfig.native.js.map +1 -1
- package/package.json +7 -8
- package/react-native-template.js +1 -0
- package/src/constants/defaults.ts +36 -0
- package/src/constants.ts +0 -2
- package/src/plugins/reactNativeDevAssetPlugin.ts +41 -78
- package/src/plugins/reactNativeHMRPlugin.ts +11 -1
- package/src/utils/getReactNativeConfig.ts +2 -0
- package/src/utils/getViteServerConfig.ts +6 -1
- package/types/constants/defaults.d.ts +3 -0
- package/types/constants/defaults.d.ts.map +1 -0
- package/types/constants.d.ts.map +1 -1
- package/types/plugins/reactNativeDevAssetPlugin.d.ts +1 -1
- package/types/plugins/reactNativeDevAssetPlugin.d.ts.map +1 -1
- package/types/plugins/reactNativeHMRPlugin.d.ts +3 -1
- package/types/plugins/reactNativeHMRPlugin.d.ts.map +1 -1
- package/types/utils/getReactNativeConfig.d.ts.map +1 -1
- package/types/utils/getViteServerConfig.d.ts.map +1 -1
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const DEFAULT_ASSET_EXTS = [
|
|
2
|
+
// Image formats
|
|
3
|
+
"bmp",
|
|
4
|
+
"gif",
|
|
5
|
+
"jpg",
|
|
6
|
+
"jpeg",
|
|
7
|
+
"png",
|
|
8
|
+
"psd",
|
|
9
|
+
"svg",
|
|
10
|
+
"webp",
|
|
11
|
+
// Video formats
|
|
12
|
+
"m4v",
|
|
13
|
+
"mov",
|
|
14
|
+
"mp4",
|
|
15
|
+
"mpeg",
|
|
16
|
+
"mpg",
|
|
17
|
+
"webm",
|
|
18
|
+
// Audio formats
|
|
19
|
+
"aac",
|
|
20
|
+
"aiff",
|
|
21
|
+
"caf",
|
|
22
|
+
"m4a",
|
|
23
|
+
"mp3",
|
|
24
|
+
"wav",
|
|
25
|
+
// Document formats
|
|
26
|
+
"html",
|
|
27
|
+
"pdf",
|
|
28
|
+
"yaml",
|
|
29
|
+
"yml",
|
|
30
|
+
// Font formats
|
|
31
|
+
"otf",
|
|
32
|
+
"ttf",
|
|
33
|
+
// Archives (virtual files)
|
|
34
|
+
"zip"
|
|
35
|
+
];
|
|
36
|
+
export {
|
|
37
|
+
DEFAULT_ASSET_EXTS
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/constants/defaults.ts"],
|
|
4
|
+
"mappings": "AACO,MAAM,qBAAqB;AAAA;AAAA,EAEhC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA;AAAA,EAEA;AACF;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const DEFAULT_ASSET_EXTS = [
|
|
2
|
+
// Image formats
|
|
3
|
+
"bmp", "gif", "jpg", "jpeg", "png", "psd", "svg", "webp",
|
|
4
|
+
// Video formats
|
|
5
|
+
"m4v", "mov", "mp4", "mpeg", "mpg", "webm",
|
|
6
|
+
// Audio formats
|
|
7
|
+
"aac", "aiff", "caf", "m4a", "mp3", "wav",
|
|
8
|
+
// Document formats
|
|
9
|
+
"html", "pdf", "yaml", "yml",
|
|
10
|
+
// Font formats
|
|
11
|
+
"otf", "ttf",
|
|
12
|
+
// Archives (virtual files)
|
|
13
|
+
"zip"];
|
|
14
|
+
export { DEFAULT_ASSET_EXTS };
|
|
15
|
+
//# sourceMappingURL=defaults.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DEFAULT_ASSET_EXTS"],"sources":["../../src/constants/defaults.ts"],"sourcesContent":[null],"mappings":"AACO,MAAMA,kBAAA,GAAqB;AAAA;AAEhC,OACA,OACA,OACA,QACA,OACA,OACA,OACA;AAAA;AAEA,OACA,OACA,OACA,QACA,OACA;AAAA;AAEA,OACA,QACA,OACA,OACA,OACA;AAAA;AAEA,QACA,OACA,QACA;AAAA;AAEA,OACA;AAAA;AAEA,MACF","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var DEFAULT_ASSET_EXTS = [
|
|
2
|
+
// Image formats
|
|
3
|
+
"bmp", "gif", "jpg", "jpeg", "png", "psd", "svg", "webp",
|
|
4
|
+
// Video formats
|
|
5
|
+
"m4v", "mov", "mp4", "mpeg", "mpg", "webm",
|
|
6
|
+
// Audio formats
|
|
7
|
+
"aac", "aiff", "caf", "m4a", "mp3", "wav",
|
|
8
|
+
// Document formats
|
|
9
|
+
"html", "pdf", "yaml", "yml",
|
|
10
|
+
// Font formats
|
|
11
|
+
"otf", "ttf",
|
|
12
|
+
// Archives (virtual files)
|
|
13
|
+
"zip"];
|
|
14
|
+
export { DEFAULT_ASSET_EXTS };
|
|
15
|
+
//# sourceMappingURL=defaults.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DEFAULT_ASSET_EXTS"],"sources":["../../src/constants/defaults.ts"],"sourcesContent":[null],"mappings":"AACO,IAAAA,kBAAM;AAAqB;AAEhC,OACA,OACA,OACA,QACA,OACA,OACA,OACA;AAAA;AAEA,OACA,OACA,OACA,QACA,OACA;AAAA;AAEA,OACA,QACA,OACA,OACA,OACA;AAAA;AAEA,QACA,OACA,QACA;AAAA;AAEA,OACA;AAAA;AAEA,MACF","ignoreList":[]}
|
package/dist/constants.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/constants.ts"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": "AAAO,MAAM,eAAe,MAEtB,wBAAwB;AAAA;AAAA,EAE5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEa,mBAAmB;AAAA;AAAA,EAE9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAEa,gBAAgB;AAAA;AAAA,EAE3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAEa,oBAAoB;AAAA;AAAA,EAE/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAEa,gBAAgB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/constants.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_PORT","viteDefaultExtensions","nativeExtensions","iosExtensions","androidExtensions","webExtensions"],"sources":["../src/constants.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"names":["DEFAULT_PORT","viteDefaultExtensions","nativeExtensions","iosExtensions","androidExtensions","webExtensions"],"sources":["../src/constants.ts"],"sourcesContent":[null],"mappings":"AAAO,MAAMA,YAAA,GAAe;EAEtBC,qBAAA,GAAwB;EAAA;EAE5B,QACA,OACA,OACA,QACA,QACA,QACF;EAEaC,gBAAA,GAAmB;EAAA;EAE9B,eACA,cACA,eACA,cACA,GAAGD,qBAAA,CACL;EAEaE,aAAA,GAAgB;EAAA;EAE3B,YACA,WACA,YACA,WACA,GAAGD,gBAAA,CACL;EAEaE,iBAAA,GAAoB;EAAA;EAE/B,gBACA,eACA,gBACA,eACA,GAAGF,gBAAA,CACL;EAEaG,aAAA,GAAgB,CAC3B,YACA,WACA,YACA,YACA,WACA,GAAGJ,qBAAA,CACL","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_PORT","viteDefaultExtensions","nativeExtensions","iosExtensions","androidExtensions","webExtensions"],"sources":["../src/constants.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"names":["DEFAULT_PORT","viteDefaultExtensions","nativeExtensions","iosExtensions","androidExtensions","webExtensions"],"sources":["../src/constants.ts"],"sourcesContent":[null],"mappings":"AAAO,IAAAA,YAAM,OAAe;EAAAC,qBAEtB;EAAwB;EAE5B,QACA,OACA,OACA,QACA,QACA,QACF;EAEaC,gBAAA,GAAmB;EAAA;EAE9B,eACA,cACA,eACA,cACA,GAAGD,qBAAA,CACL;EAEaE,aAAA,GAAgB;EAAA;EAE3B,YACA,WACA,YACA,WACA,GAAGD,gBAAA,CACL;EAEaE,iBAAA,GAAoB;EAAA;EAE/B,gBACA,eACA,gBACA,eACA,GAAGF,gBAAA,CACL;EAEaG,aAAA,GAAgB,CAC3B,YACA,WACA,YACA,YACA,WACA,GAAGJ,qBAAA,CACL","ignoreList":[]}
|
|
@@ -1,43 +1,10 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import FSExtra from "fs-extra";
|
|
3
|
+
import colors from "picocolors";
|
|
3
4
|
import { isNativeEnvironment } from "../utils/environmentUtils";
|
|
4
|
-
const
|
|
5
|
-
// Image formats
|
|
6
|
-
"bmp",
|
|
7
|
-
"gif",
|
|
8
|
-
"jpg",
|
|
9
|
-
"jpeg",
|
|
10
|
-
"png",
|
|
11
|
-
"psd",
|
|
12
|
-
"svg",
|
|
13
|
-
"webp",
|
|
14
|
-
// Video formats
|
|
15
|
-
"m4v",
|
|
16
|
-
"mov",
|
|
17
|
-
"mp4",
|
|
18
|
-
"mpeg",
|
|
19
|
-
"mpg",
|
|
20
|
-
"webm",
|
|
21
|
-
// Audio formats
|
|
22
|
-
"aac",
|
|
23
|
-
"aiff",
|
|
24
|
-
"caf",
|
|
25
|
-
"m4a",
|
|
26
|
-
"mp3",
|
|
27
|
-
"wav",
|
|
28
|
-
// Document formats
|
|
29
|
-
"html",
|
|
30
|
-
"pdf",
|
|
31
|
-
"yaml",
|
|
32
|
-
"yml",
|
|
33
|
-
// Font formats
|
|
34
|
-
"otf",
|
|
35
|
-
"ttf",
|
|
36
|
-
// Archives (virtual files)
|
|
37
|
-
"zip"
|
|
38
|
-
], IMAGE_ASSET_EXTS = ["png", "jpg", "jpeg", "bmp", "gif", "webp", "psd", "svg", "tiff", "ktx"], IMAGE_ASSET_EXTS_SET = new Set(IMAGE_ASSET_EXTS), ASSET_DEST_DIR = "assets";
|
|
5
|
+
const IMAGE_ASSET_EXTS = ["png", "jpg", "jpeg", "bmp", "gif", "webp", "psd", "svg", "tiff", "ktx"], IMAGE_ASSET_EXTS_SET = new Set(IMAGE_ASSET_EXTS), ASSET_DEST_DIR = "assets", DEV_ASSET_DEST_PATH = "__vxrn_dev_native_assets";
|
|
39
6
|
function reactNativeDevAssetPlugin(options) {
|
|
40
|
-
const { projectRoot, assetExts
|
|
7
|
+
const { projectRoot, assetExts } = options, assetExtsRegExp = new RegExp(`\\.(${assetExts.join("|")})$`), isAssetFile = (id) => assetExtsRegExp.test(id);
|
|
41
8
|
async function getAssetData(id) {
|
|
42
9
|
const relativeAssetPath = path.relative(projectRoot, id);
|
|
43
10
|
let assetUrlPath = relativeAssetPath;
|
|
@@ -50,8 +17,11 @@ function reactNativeDevAssetPlugin(options) {
|
|
|
50
17
|
__packager_asset: !0,
|
|
51
18
|
fileSystemLocation: path.dirname(id),
|
|
52
19
|
relativeFileSystemLocation: relativeAssetDir,
|
|
53
|
-
httpServerLocation: `/${ASSET_DEST_DIR}/${assetUrlPath.slice(
|
|
54
|
-
|
|
20
|
+
httpServerLocation: `/${options.mode === "dev" ? DEV_ASSET_DEST_PATH : ASSET_DEST_DIR}/${assetUrlPath.slice(
|
|
21
|
+
0,
|
|
22
|
+
-(assetBasename.length + 1)
|
|
23
|
+
/* removing the `/filename.ext` at the end */
|
|
24
|
+
)}`,
|
|
55
25
|
scales: [1],
|
|
56
26
|
// TODO
|
|
57
27
|
name: assetName,
|
|
@@ -61,9 +31,11 @@ function reactNativeDevAssetPlugin(options) {
|
|
|
61
31
|
return {
|
|
62
32
|
name: "vxrn:react-native-dev-asset",
|
|
63
33
|
enforce: "pre",
|
|
64
|
-
resolveId(source, importer,
|
|
65
|
-
|
|
66
|
-
|
|
34
|
+
// resolveId(source, importer, options) {
|
|
35
|
+
// if (!isNativeEnvironment(this.environment)) return
|
|
36
|
+
// if (!isAssetFile(source)) return
|
|
37
|
+
// // TODO: May need to handle platform specific extensions here.
|
|
38
|
+
// },
|
|
67
39
|
async load(id, _options) {
|
|
68
40
|
if (!isNativeEnvironment(this.environment) || !isAssetFile(id)) return;
|
|
69
41
|
const assetData = await getAssetData(id);
|
|
@@ -88,6 +60,22 @@ export default asset;
|
|
|
88
60
|
*/
|
|
89
61
|
configureServer(server) {
|
|
90
62
|
const { logger } = server.config, defaultLogOptions = { timestamp: !0 };
|
|
63
|
+
server.middlewares.use(async (req, res, next) => {
|
|
64
|
+
if (!req.url?.startsWith(`/${DEV_ASSET_DEST_PATH}/`))
|
|
65
|
+
return next();
|
|
66
|
+
const assetPath = "./" + new URL("http://example.com" + req.url).pathname.slice(`/${DEV_ASSET_DEST_PATH}/`.length).replace(/\.*$/, "");
|
|
67
|
+
try {
|
|
68
|
+
const asset = await FSExtra.readFile(assetPath);
|
|
69
|
+
res.setHeader("content-type", "image/png"), res.write(asset), res.end();
|
|
70
|
+
} catch (e) {
|
|
71
|
+
logger.error(
|
|
72
|
+
colors.red(
|
|
73
|
+
`[vxrn] Failed to serve asset: ${assetPath}: ${e instanceof Error ? e.message : "unknown error"}`
|
|
74
|
+
),
|
|
75
|
+
defaultLogOptions
|
|
76
|
+
), res.statusCode = e instanceof Error && e.code === "ENOENT" ? 404 : 500, res.end();
|
|
77
|
+
}
|
|
78
|
+
});
|
|
91
79
|
}
|
|
92
80
|
};
|
|
93
81
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/plugins/reactNativeDevAssetPlugin.ts"],
|
|
4
|
-
"mappings": "AAAA,OAAO,UAAU;AACjB,OAAO,aAAa;
|
|
5
|
-
"names": [
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
6
|
}
|
|
@@ -1,26 +1,15 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import FSExtra from "fs-extra";
|
|
3
|
+
import colors from "picocolors";
|
|
3
4
|
import { isNativeEnvironment } from "../utils/environmentUtils.mjs";
|
|
4
|
-
const
|
|
5
|
-
// Image formats
|
|
6
|
-
"bmp", "gif", "jpg", "jpeg", "png", "psd", "svg", "webp",
|
|
7
|
-
// Video formats
|
|
8
|
-
"m4v", "mov", "mp4", "mpeg", "mpg", "webm",
|
|
9
|
-
// Audio formats
|
|
10
|
-
"aac", "aiff", "caf", "m4a", "mp3", "wav",
|
|
11
|
-
// Document formats
|
|
12
|
-
"html", "pdf", "yaml", "yml",
|
|
13
|
-
// Font formats
|
|
14
|
-
"otf", "ttf",
|
|
15
|
-
// Archives (virtual files)
|
|
16
|
-
"zip"],
|
|
17
|
-
IMAGE_ASSET_EXTS = ["png", "jpg", "jpeg", "bmp", "gif", "webp", "psd", "svg", "tiff", "ktx"],
|
|
5
|
+
const IMAGE_ASSET_EXTS = ["png", "jpg", "jpeg", "bmp", "gif", "webp", "psd", "svg", "tiff", "ktx"],
|
|
18
6
|
IMAGE_ASSET_EXTS_SET = new Set(IMAGE_ASSET_EXTS),
|
|
19
|
-
ASSET_DEST_DIR = "assets"
|
|
7
|
+
ASSET_DEST_DIR = "assets",
|
|
8
|
+
DEV_ASSET_DEST_PATH = "__vxrn_dev_native_assets";
|
|
20
9
|
function reactNativeDevAssetPlugin(options) {
|
|
21
10
|
const {
|
|
22
11
|
projectRoot,
|
|
23
|
-
assetExts
|
|
12
|
+
assetExts
|
|
24
13
|
} = options,
|
|
25
14
|
assetExtsRegExp = new RegExp(`\\.(${assetExts.join("|")})$`),
|
|
26
15
|
isAssetFile = id => assetExtsRegExp.test(id);
|
|
@@ -36,8 +25,8 @@ function reactNativeDevAssetPlugin(options) {
|
|
|
36
25
|
__packager_asset: !0,
|
|
37
26
|
fileSystemLocation: path.dirname(id),
|
|
38
27
|
relativeFileSystemLocation: relativeAssetDir,
|
|
39
|
-
httpServerLocation: `/${ASSET_DEST_DIR}/${assetUrlPath.slice(0, -assetBasename.length)
|
|
40
|
-
|
|
28
|
+
httpServerLocation: `/${options.mode === "dev" ? DEV_ASSET_DEST_PATH : ASSET_DEST_DIR}/${assetUrlPath.slice(0, -(assetBasename.length + 1)
|
|
29
|
+
/* removing the `/filename.ext` at the end */)}`,
|
|
41
30
|
scales: [1],
|
|
42
31
|
// TODO
|
|
43
32
|
name: assetName,
|
|
@@ -47,9 +36,11 @@ function reactNativeDevAssetPlugin(options) {
|
|
|
47
36
|
return {
|
|
48
37
|
name: "vxrn:react-native-dev-asset",
|
|
49
38
|
enforce: "pre",
|
|
50
|
-
resolveId(source, importer,
|
|
51
|
-
|
|
52
|
-
|
|
39
|
+
// resolveId(source, importer, options) {
|
|
40
|
+
// if (!isNativeEnvironment(this.environment)) return
|
|
41
|
+
// if (!isAssetFile(source)) return
|
|
42
|
+
// // TODO: May need to handle platform specific extensions here.
|
|
43
|
+
// },
|
|
53
44
|
async load(id, _options) {
|
|
54
45
|
if (!isNativeEnvironment(this.environment) || !isAssetFile(id)) return;
|
|
55
46
|
const assetData = await getAssetData(id);
|
|
@@ -75,6 +66,16 @@ export default asset;
|
|
|
75
66
|
defaultLogOptions = {
|
|
76
67
|
timestamp: !0
|
|
77
68
|
};
|
|
69
|
+
server.middlewares.use(async (req, res, next) => {
|
|
70
|
+
if (!req.url?.startsWith(`/${DEV_ASSET_DEST_PATH}/`)) return next();
|
|
71
|
+
const assetPath = "./" + new URL("http://example.com" + req.url).pathname.slice(`/${DEV_ASSET_DEST_PATH}/`.length).replace(/\.*$/, "");
|
|
72
|
+
try {
|
|
73
|
+
const asset = await FSExtra.readFile(assetPath);
|
|
74
|
+
res.setHeader("content-type", "image/png"), res.write(asset), res.end();
|
|
75
|
+
} catch (e) {
|
|
76
|
+
logger.error(colors.red(`[vxrn] Failed to serve asset: ${assetPath}: ${e instanceof Error ? e.message : "unknown error"}`), defaultLogOptions), res.statusCode = e instanceof Error && e.code === "ENOENT" ? 404 : 500, res.end();
|
|
77
|
+
}
|
|
78
|
+
});
|
|
78
79
|
}
|
|
79
80
|
};
|
|
80
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["path","FSExtra","
|
|
1
|
+
{"version":3,"names":["path","FSExtra","colors","isNativeEnvironment","IMAGE_ASSET_EXTS","IMAGE_ASSET_EXTS_SET","Set","ASSET_DEST_DIR","DEV_ASSET_DEST_PATH","reactNativeDevAssetPlugin","options","projectRoot","assetExts","assetExtsRegExp","RegExp","join","isAssetFile","id","test","getAssetData","relativeAssetPath","relative","assetUrlPath","sep","replaceAll","relativeAssetDir","dirname","assetBasename","basename","assetExt","extname","slice","assetName","length","__packager_asset","fileSystemLocation","relativeFileSystemLocation","httpServerLocation","mode","scales","name","type","enforce","load","_options","environment","assetData","assetsDest","assetsDestDir","ensureDir","copyFile","JSON","stringify","configureServer","server","logger","config","defaultLogOptions","timestamp","middlewares","use","req","res","next","url","startsWith","assetPath","URL","pathname","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":[]}
|
|
@@ -1,26 +1,15 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import FSExtra from "fs-extra";
|
|
3
|
+
import colors from "picocolors";
|
|
3
4
|
import { isNativeEnvironment } from "../utils/environmentUtils.native.js";
|
|
4
|
-
var
|
|
5
|
-
// Image formats
|
|
6
|
-
"bmp", "gif", "jpg", "jpeg", "png", "psd", "svg", "webp",
|
|
7
|
-
// Video formats
|
|
8
|
-
"m4v", "mov", "mp4", "mpeg", "mpg", "webm",
|
|
9
|
-
// Audio formats
|
|
10
|
-
"aac", "aiff", "caf", "m4a", "mp3", "wav",
|
|
11
|
-
// Document formats
|
|
12
|
-
"html", "pdf", "yaml", "yml",
|
|
13
|
-
// Font formats
|
|
14
|
-
"otf", "ttf",
|
|
15
|
-
// Archives (virtual files)
|
|
16
|
-
"zip"],
|
|
17
|
-
IMAGE_ASSET_EXTS = ["png", "jpg", "jpeg", "bmp", "gif", "webp", "psd", "svg", "tiff", "ktx"],
|
|
5
|
+
var IMAGE_ASSET_EXTS = ["png", "jpg", "jpeg", "bmp", "gif", "webp", "psd", "svg", "tiff", "ktx"],
|
|
18
6
|
IMAGE_ASSET_EXTS_SET = new Set(IMAGE_ASSET_EXTS),
|
|
19
|
-
ASSET_DEST_DIR = "assets"
|
|
7
|
+
ASSET_DEST_DIR = "assets",
|
|
8
|
+
DEV_ASSET_DEST_PATH = "__vxrn_dev_native_assets";
|
|
20
9
|
function reactNativeDevAssetPlugin(options) {
|
|
21
10
|
var {
|
|
22
11
|
projectRoot,
|
|
23
|
-
assetExts
|
|
12
|
+
assetExts
|
|
24
13
|
} = options,
|
|
25
14
|
assetExtsRegExp = new RegExp(`\\.(${assetExts.join("|")})$`),
|
|
26
15
|
isAssetFile = function (id) {
|
|
@@ -38,8 +27,7 @@ function reactNativeDevAssetPlugin(options) {
|
|
|
38
27
|
__packager_asset: !0,
|
|
39
28
|
fileSystemLocation: path.dirname(id),
|
|
40
29
|
relativeFileSystemLocation: relativeAssetDir,
|
|
41
|
-
httpServerLocation: `/${ASSET_DEST_DIR}/${assetUrlPath.slice(0, -assetBasename.length)}`,
|
|
42
|
-
// TODO: `/assets` might be too common, consider using a unique prefix.
|
|
30
|
+
httpServerLocation: `/${options.mode === "dev" ? DEV_ASSET_DEST_PATH : ASSET_DEST_DIR}/${assetUrlPath.slice(0, -(assetBasename.length + 1))}`,
|
|
43
31
|
scales: [1],
|
|
44
32
|
// TODO
|
|
45
33
|
name: assetName,
|
|
@@ -50,10 +38,11 @@ function reactNativeDevAssetPlugin(options) {
|
|
|
50
38
|
return {
|
|
51
39
|
name: "vxrn:react-native-dev-asset",
|
|
52
40
|
enforce: "pre",
|
|
53
|
-
resolveId(source, importer,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
// TODO: May need to handle platform specific extensions here.
|
|
41
|
+
// resolveId(source, importer, options) {
|
|
42
|
+
// if (!isNativeEnvironment(this.environment)) return
|
|
43
|
+
// if (!isAssetFile(source)) return
|
|
44
|
+
// // TODO: May need to handle platform specific extensions here.
|
|
45
|
+
// },
|
|
57
46
|
async load(id, _options) {
|
|
58
47
|
if (isNativeEnvironment(this.environment) && isAssetFile(id)) {
|
|
59
48
|
var assetData = await getAssetData(id);
|
|
@@ -81,6 +70,19 @@ export default asset;
|
|
|
81
70
|
defaultLogOptions = {
|
|
82
71
|
timestamp: !0
|
|
83
72
|
};
|
|
73
|
+
server.middlewares.use(async function (req, res, next) {
|
|
74
|
+
var _req_url;
|
|
75
|
+
if (!(!((_req_url = req.url) === null || _req_url === void 0) && _req_url.startsWith(`/${DEV_ASSET_DEST_PATH}/`))) return next();
|
|
76
|
+
var url = new URL("http://example.com" + req.url),
|
|
77
|
+
pathname = url.pathname,
|
|
78
|
+
assetPath = "./" + pathname.slice(`/${DEV_ASSET_DEST_PATH}/`.length).replace(/\.*$/, "");
|
|
79
|
+
try {
|
|
80
|
+
var asset = await FSExtra.readFile(assetPath);
|
|
81
|
+
res.setHeader("content-type", "image/png"), res.write(asset), res.end();
|
|
82
|
+
} catch (e) {
|
|
83
|
+
logger.error(colors.red(`[vxrn] Failed to serve asset: ${assetPath}: ${e instanceof Error ? e.message : "unknown error"}`), defaultLogOptions), res.statusCode = e instanceof Error && e.code === "ENOENT" ? 404 : 500, res.end();
|
|
84
|
+
}
|
|
85
|
+
});
|
|
84
86
|
}
|
|
85
87
|
};
|
|
86
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["path","FSExtra","
|
|
1
|
+
{"version":3,"names":["path","FSExtra","colors","isNativeEnvironment","IMAGE_ASSET_EXTS","IMAGE_ASSET_EXTS_SET","Set","ASSET_DEST_DIR","DEV_ASSET_DEST_PATH","reactNativeDevAssetPlugin","options","projectRoot","assetExts","assetExtsRegExp","RegExp","join","isAssetFile","id","test","getAssetData","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","load","_options","environment","assetsDest","assetsDestDir","ensureDir","copyFile","assetModuleCode","JSON","stringify","configureServer","server","logger","config","defaultLogOptions","timestamp","middlewares","use","req","res","next","_req_url","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":[]}
|
|
@@ -8,8 +8,12 @@ import { isWithin } from "../utils/isWithin";
|
|
|
8
8
|
import { createIdResolver } from "vite";
|
|
9
9
|
import { conditions } from "./reactNativeCommonJsPlugin";
|
|
10
10
|
import { getReactNativeResolvedConfig } from "../utils/getReactNativeConfig";
|
|
11
|
-
function reactNativeHMRPlugin({
|
|
11
|
+
function reactNativeHMRPlugin({
|
|
12
|
+
root,
|
|
13
|
+
assetExts
|
|
14
|
+
}) {
|
|
12
15
|
let idResolver;
|
|
16
|
+
const assetExtsRegExp = new RegExp(`\\.(${assetExts.join("|")})$`), isAssetFile = (id) => assetExtsRegExp.test(id);
|
|
13
17
|
return {
|
|
14
18
|
name: "vxrn:native-hmr-transform",
|
|
15
19
|
// TODO see about moving to hotUpdate
|
|
@@ -31,7 +35,10 @@ function reactNativeHMRPlugin({ root }) {
|
|
|
31
35
|
return;
|
|
32
36
|
const [module] = modules;
|
|
33
37
|
if (!module) return;
|
|
34
|
-
const id = module?.url || file.replace(root, "")
|
|
38
|
+
const id = module?.url || file.replace(root, "");
|
|
39
|
+
if (isAssetFile(id))
|
|
40
|
+
return;
|
|
41
|
+
const code = await read();
|
|
35
42
|
if (code.startsWith("'use strict';") || !code)
|
|
36
43
|
return;
|
|
37
44
|
let source = code;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/plugins/reactNativeHMRPlugin.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,cAAc,yBAAyB;AAChD,SAAS,aAAa;AACtB,SAAS,8BAA8B;AAEvC,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AACzB,SAAS,wBAAqD;AAC9D,SAAS,kBAAkB;AAC3B,SAAS,oCAAoC;AAEtC,SAAS,qBAAqB,
|
|
4
|
+
"mappings": "AAAA,SAAS,cAAc,yBAAyB;AAChD,SAAS,aAAa;AACtB,SAAS,8BAA8B;AAEvC,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AACzB,SAAS,wBAAqD;AAC9D,SAAS,kBAAkB;AAC3B,SAAS,oCAAoC;AAEtC,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AACF,GAAgD;AAC9C,MAAI;AAEJ,QAAM,kBAAkB,IAAI,OAAO,OAAO,UAAU,KAAK,GAAG,CAAC,IAAI,GAC3D,cAAc,CAAC,OAAe,gBAAgB,KAAK,EAAE;AAE3D,SAAO;AAAA,IACL,MAAM;AAAA;AAAA;AAAA,IAIN,MAAM,gBAAgB,EAAE,MAAM,SAAS,MAAM,OAAO,GAAG;AACrD,UAAI,CAAC,YAAY;AACf,cAAM,WAAW,6BAA6B;AAC9C,YAAI,CAAC;AAEH;AAIF,cAAM,iBAAiB;AAAA,UACrB;AAAA,UACA,YAAY,SAAS,QAAQ;AAAA,UAC7B,YAAY,SAAS,QAAQ;AAAA,QAC/B;AACA,qBAAa,iBAAiB,UAAU,cAAc;AAAA,MACxD;AAEA,UAAI;AAIF,YAHI,CAAC,SAAS,MAAM,IAAI,KAGpB,CAAC;AACH;AAGF,cAAM,CAAC,MAAM,IAAI;AACjB,YAAI,CAAC,OAAQ;AAEb,cAAM,KAAK,QAAQ,OAAO,KAAK,QAAQ,MAAM,EAAE;AAC/C,YAAI,YAAY,EAAE;AAEhB;AAGF,cAAM,OAAO,MAAM,KAAK;AAOxB,YAJI,KAAK,WAAW,eAAe,KAI/B,CAAC;AACH;AAGF,YAAI,SAAS;AAGb,kBAAU,MAAM,kBAAkB,IAAI,MAAM,IAAI,QAAQ;AAExD,cAAM,aAAa,CAAC,GAId,CAAC,OAAO,IAAI,MAAM,MAAM;AAE9B,YAAI,yBAAyB;AAE7B,mBAAW,aAAa,SAAS;AAC/B,gBAAM,EAAE,GAAG,YAAY,GAAG,MAAM,IAAI;AAEpC,cAAI,YAAY;AACd,kBAAM,cAAc,OAAO,aAAa,KAGlC,WAAsB,WAAW,KAAK,MAAM,WAAW,GAOvDA,MAAK,MAAM,YAAY,WAAW,MAAM,YAAY,UANnB,OAAOA,KAAI,cAEzB,MAAM,YAAY,gBAAgB,UAAUA,KAAI,QAAQ,IACxD,EAG8D;AACvF,gBAAI,CAACA,KAAI;AACP,sBAAQ,KAAK,KAAK;AAClB;AAAA,YACF;AAEA,uBAAWA,GAAE,IAAIA,IAAG,QAAQ,cAAc,EAAE;AAG5C,kBAAM,MAAM,WAAW,QACjB,WAAWA,IAAG,SAAS;AAC7B,qBACE,OAAO,MAAM,GAAG,QAAQ,sBAAsB,IAC9CA,MACA,OAAO,MAAM,QAAQ,yBAAyB,GAAG,GACnD,0BAA0B;AAAA,UAC5B;AAAA,QACF;AAUA,YAPA,UAEI,MAAM,aAAa,IAAI,QAAQ;AAAA,UAC7B,MAAM;AAAA,QACR,CAAC,IACA,QAAQ,IAET,CAAC;AACH,gBAAM;AAGR,cAAM,kBAAkB;AAAA,2CACW,EAAE,MAAM,KAAK,UAAU,YAAY,MAAM,CAAC,CAAC;AAAA,YAC1E,OACC,QAAQ,oCAAoC,EAAE,EAE9C,WAAW,4BAA4B,yCAAyC,CAAC;AAAA;AAGtF,QAAI,QAAQ,IAAI,SACd,QAAQ,KAAK,sBAAsB,eAAe,GAGpD,eAAe,IAAI,IAAI,eAAe;AAAA,MACxC,SAAS,KAAK;AACZ,gBAAQ,MAAM,gCAAgC,GAAG;AAAA,MACnD;AAAA,IACF;AAAA,EACF;AACF;",
|
|
5
5
|
"names": ["id"]
|
|
6
6
|
}
|
|
@@ -9,9 +9,12 @@ import { createIdResolver } from "vite";
|
|
|
9
9
|
import { conditions } from "./reactNativeCommonJsPlugin.mjs";
|
|
10
10
|
import { getReactNativeResolvedConfig } from "../utils/getReactNativeConfig.mjs";
|
|
11
11
|
function reactNativeHMRPlugin({
|
|
12
|
-
root
|
|
12
|
+
root,
|
|
13
|
+
assetExts
|
|
13
14
|
}) {
|
|
14
15
|
let idResolver;
|
|
16
|
+
const assetExtsRegExp = new RegExp(`\\.(${assetExts.join("|")})$`),
|
|
17
|
+
isAssetFile = id => assetExtsRegExp.test(id);
|
|
15
18
|
return {
|
|
16
19
|
name: "vxrn:native-hmr-transform",
|
|
17
20
|
// TODO see about moving to hotUpdate
|
|
@@ -36,8 +39,9 @@ function reactNativeHMRPlugin({
|
|
|
36
39
|
if (!isWithin(root, file) || !connectedNativeClients) return;
|
|
37
40
|
const [module] = modules;
|
|
38
41
|
if (!module) return;
|
|
39
|
-
const id = module?.url || file.replace(root, "")
|
|
40
|
-
|
|
42
|
+
const id = module?.url || file.replace(root, "");
|
|
43
|
+
if (isAssetFile(id)) return;
|
|
44
|
+
const code = await read();
|
|
41
45
|
if (code.startsWith("'use strict';") || !code) return;
|
|
42
46
|
let source = code;
|
|
43
47
|
source = (await transformForBuild(id, source))?.code || "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["swcTransform","transformForBuild","parse","connectedNativeClients","entryRoot","getVitePath","hotUpdateCache","isWithin","createIdResolver","conditions","getReactNativeResolvedConfig","reactNativeHMRPlugin","root","idResolver","name","handleHotUpdate","read","modules","file","server","rnConfig","resolverConfig","mainFields","resolve","extensions","module","
|
|
1
|
+
{"version":3,"names":["swcTransform","transformForBuild","parse","connectedNativeClients","entryRoot","getVitePath","hotUpdateCache","isWithin","createIdResolver","conditions","getReactNativeResolvedConfig","reactNativeHMRPlugin","root","assetExts","idResolver","assetExtsRegExp","RegExp","join","isAssetFile","id","test","name","handleHotUpdate","read","modules","file","server","rnConfig","resolverConfig","mainFields","resolve","extensions","module","url","replace","code","startsWith","source","importsMap","imports","accumulatedSliceOffset","specifier","n","importName","s","start","environment","environments","ios","resolver","bind","id2","id3","importer","pluginContainer","resolveId","console","warn","len","length","extraLen","slice","mode","hotUpdateSource","JSON","stringify","replaceAll","process","env","DEBUG","info","set","err","error"],"sources":["../../src/plugins/reactNativeHMRPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -10,9 +10,14 @@ import { conditions } from "./reactNativeCommonJsPlugin.native.js";
|
|
|
10
10
|
import { getReactNativeResolvedConfig } from "../utils/getReactNativeConfig.native.js";
|
|
11
11
|
function reactNativeHMRPlugin(param) {
|
|
12
12
|
var {
|
|
13
|
-
root
|
|
13
|
+
root,
|
|
14
|
+
assetExts
|
|
14
15
|
} = param,
|
|
15
|
-
idResolver
|
|
16
|
+
idResolver,
|
|
17
|
+
assetExtsRegExp = new RegExp(`\\.(${assetExts.join("|")})$`),
|
|
18
|
+
isAssetFile = function (id) {
|
|
19
|
+
return assetExtsRegExp.test(id);
|
|
20
|
+
};
|
|
16
21
|
return {
|
|
17
22
|
name: "vxrn:native-hmr-transform",
|
|
18
23
|
// TODO see about moving to hotUpdate
|
|
@@ -39,8 +44,9 @@ function reactNativeHMRPlugin(param) {
|
|
|
39
44
|
if (!isWithin(root, file) || !connectedNativeClients) return;
|
|
40
45
|
var [module] = modules;
|
|
41
46
|
if (!module) return;
|
|
42
|
-
var id = module?.url || file.replace(root, "")
|
|
43
|
-
|
|
47
|
+
var id = module?.url || file.replace(root, "");
|
|
48
|
+
if (isAssetFile(id)) return;
|
|
49
|
+
var code = await read();
|
|
44
50
|
if (code.startsWith("'use strict';") || !code) return;
|
|
45
51
|
var source = code;
|
|
46
52
|
source = ((_this = await transformForBuild(id, source)) === null || _this === void 0 ? void 0 : _this.code) || "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["swcTransform","transformForBuild","parse","connectedNativeClients","entryRoot","getVitePath","hotUpdateCache","isWithin","createIdResolver","conditions","getReactNativeResolvedConfig","reactNativeHMRPlugin","param","root","idResolver","name","handleHotUpdate","param2","read","modules","file","server","rnConfig","resolverConfig","mainFields","resolve","extensions","_this","_this1","module","
|
|
1
|
+
{"version":3,"names":["swcTransform","transformForBuild","parse","connectedNativeClients","entryRoot","getVitePath","hotUpdateCache","isWithin","createIdResolver","conditions","getReactNativeResolvedConfig","reactNativeHMRPlugin","param","root","assetExts","idResolver","assetExtsRegExp","RegExp","join","isAssetFile","id","test","name","handleHotUpdate","param2","read","modules","file","server","rnConfig","resolverConfig","mainFields","resolve","extensions","_this","_this1","module","url","replace","code","startsWith","source","importsMap","imports","accumulatedSliceOffset","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_loop","specifier","_step","value","n","importName","s","start","environment","environments","ios","resolver","bind","resolverWithPlugins","id3","importer","resolvedIdData","pluginContainer","resolveId","id2","console","warn","len","length","extraLen","slice","_iterator","Symbol","iterator","next","done","err","return","mode"],"sources":["../../src/plugins/reactNativeHMRPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -14,6 +14,7 @@ import { swapPrebuiltReactModules } from "./swapPrebuiltReactModules";
|
|
|
14
14
|
import { getBabelReanimatedPlugin } from "../plugins/babelReanimated";
|
|
15
15
|
import { nativeClientInjectPlugin } from "../plugins/clientInjectPlugin";
|
|
16
16
|
import { reactNativeDevAssetPlugin } from "../plugins/reactNativeDevAssetPlugin";
|
|
17
|
+
import { DEFAULT_ASSET_EXTS } from "../constants/defaults";
|
|
17
18
|
const IGNORE_ROLLUP_LOGS_RE = /vite-native-client\/dist\/esm\/client\.native\.js|node_modules\/\.vxrn\/react-native\.js|react-native-prebuilt\/vendor|vxs\/dist/;
|
|
18
19
|
async function getReactNativeConfig(options, internal = { mode: "dev" }) {
|
|
19
20
|
const {
|
|
@@ -55,7 +56,8 @@ async function getReactNativeConfig(options, internal = { mode: "dev" }) {
|
|
|
55
56
|
reactNativeDevAssetPlugin({
|
|
56
57
|
projectRoot: options.root,
|
|
57
58
|
mode: internal.mode,
|
|
58
|
-
assetsDest: internal.assetsDest
|
|
59
|
+
assetsDest: internal.assetsDest,
|
|
60
|
+
assetExts: DEFAULT_ASSET_EXTS
|
|
59
61
|
}),
|
|
60
62
|
getBabelReanimatedPlugin(),
|
|
61
63
|
reactNativeCommonJsPlugin({
|