@vxrn/vite-native-hmr 0.0.3
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/LICENSE +21 -0
- package/dist/cjs/devServerClient.js +132 -0
- package/dist/cjs/devServerClient.js.map +6 -0
- package/dist/cjs/devServerClient.native.js +132 -0
- package/dist/cjs/devServerClient.native.js.map +6 -0
- package/dist/cjs/getDevServerLocation.js +49 -0
- package/dist/cjs/getDevServerLocation.js.map +6 -0
- package/dist/cjs/getDevServerLocation.native.js +50 -0
- package/dist/cjs/getDevServerLocation.native.js.map +6 -0
- package/dist/cjs/hmr-client.js +130 -0
- package/dist/cjs/hmr-client.js.map +6 -0
- package/dist/cjs/hmr-client.native.js +129 -0
- package/dist/cjs/hmr-client.native.js.map +6 -0
- package/dist/cjs/index.js +19 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/index.native.js +20 -0
- package/dist/cjs/index.native.js.map +6 -0
- package/dist/esm/devServerClient.js +101 -0
- package/dist/esm/devServerClient.js.map +6 -0
- package/dist/esm/devServerClient.native.js +100 -0
- package/dist/esm/devServerClient.native.js.map +6 -0
- package/dist/esm/getDevServerLocation.js +21 -0
- package/dist/esm/getDevServerLocation.js.map +6 -0
- package/dist/esm/getDevServerLocation.native.js +21 -0
- package/dist/esm/getDevServerLocation.native.js.map +6 -0
- package/dist/esm/hmr-client.js +100 -0
- package/dist/esm/hmr-client.js.map +6 -0
- package/dist/esm/hmr-client.native.js +98 -0
- package/dist/esm/hmr-client.native.js.map +6 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/index.native.js +2 -0
- package/dist/esm/index.native.js.map +6 -0
- package/package.json +49 -0
- package/src/devServerClient.ts +132 -0
- package/src/getDevServerLocation.ts +33 -0
- package/src/globals.d.ts +33 -0
- package/src/hmr-client.ts +206 -0
- package/src/index.ts +1 -0
- package/types/devServerClient.d.ts +6 -0
- package/types/devServerClient.d.ts.map +1 -0
- package/types/getDevServerLocation.d.ts +11 -0
- package/types/getDevServerLocation.d.ts.map +1 -0
- package/types/hmr-client.d.ts +24 -0
- package/types/hmr-client.d.ts.map +1 -0
- package/types/index.d.ts +2 -0
- package/types/index.d.ts.map +1 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
9
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
+
return to;
|
|
14
|
+
};
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
16
|
+
var hmr_client_exports = {};
|
|
17
|
+
__export(hmr_client_exports, {
|
|
18
|
+
loadHMRClient: () => loadHMRClient
|
|
19
|
+
});
|
|
20
|
+
module.exports = __toCommonJS(hmr_client_exports);
|
|
21
|
+
var import_getDevServerLocation = require("./getDevServerLocation");
|
|
22
|
+
class HMRClient {
|
|
23
|
+
constructor(app) {
|
|
24
|
+
this.app = app;
|
|
25
|
+
this.lastHash = "";
|
|
26
|
+
this.url = `ws://${(0, import_getDevServerLocation.getDevServerLocation)().hostname}:${process.env.REACT_NATIVE_SERVER_PUBLIC_PORT}/__hmr?platform=${process.env.REACT_NATIVE_PLATFORM || "ios"}`, this.socket = new WebSocket(this.url), console.log("[HMRClient] Connecting..."), this.socket.onopen = () => {
|
|
27
|
+
console.log("[HMRClient] Connected");
|
|
28
|
+
}, this.socket.onclose = () => {
|
|
29
|
+
console.log(`[HMRClient] Disconnected ${this.url}`);
|
|
30
|
+
}, this.socket.onerror = (event) => {
|
|
31
|
+
console.log("[HMRClient] Error", event);
|
|
32
|
+
}, this.socket.onmessage = (event) => {
|
|
33
|
+
try {
|
|
34
|
+
const data = JSON.parse(event.data.toString());
|
|
35
|
+
this.processMessage(data);
|
|
36
|
+
} catch (error) {
|
|
37
|
+
console.warn("[HMRClient] Invalid HMR message", error);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
upToDate(hash) {
|
|
42
|
+
return hash && (this.lastHash = hash), this.lastHash === __webpack_hash__;
|
|
43
|
+
}
|
|
44
|
+
processMessage(message) {
|
|
45
|
+
var _a, _b, _c, _d, _e;
|
|
46
|
+
switch (message.action) {
|
|
47
|
+
case "building":
|
|
48
|
+
this.app.LoadingView.showMessage("Rebuilding...", "refresh"), console.log("[HMRClient] Bundle rebuilding", {
|
|
49
|
+
name: (_a = message.body) == null ? void 0 : _a.name
|
|
50
|
+
});
|
|
51
|
+
break;
|
|
52
|
+
case "built":
|
|
53
|
+
console.log("[HMRClient] Bundle rebuilt", {
|
|
54
|
+
name: (_b = message.body) == null ? void 0 : _b.name,
|
|
55
|
+
time: (_c = message.body) == null ? void 0 : _c.time
|
|
56
|
+
});
|
|
57
|
+
case "sync":
|
|
58
|
+
if (!message.body) {
|
|
59
|
+
console.warn("[HMRClient] HMR message body is empty");
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if ((_d = message.body.errors) != null && _d.length) {
|
|
63
|
+
message.body.errors.forEach((error) => {
|
|
64
|
+
console.error("Cannot apply update due to error:", error);
|
|
65
|
+
}), this.app.LoadingView.hide();
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
(_e = message.body.warnings) != null && _e.length && message.body.warnings.forEach((warning) => {
|
|
69
|
+
console.warn("[HMRClient] Bundle contains warnings:", warning);
|
|
70
|
+
}), this.applyUpdate(message.body);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
applyUpdate(update) {
|
|
74
|
+
if (!module.hot)
|
|
75
|
+
throw new Error("[HMRClient] Hot Module Replacement is disabled.");
|
|
76
|
+
!this.upToDate(update.hash) && module.hot.status() === "idle" && (console.log("[HMRClient] Checking for updates on the server..."), this.checkUpdates(update));
|
|
77
|
+
}
|
|
78
|
+
async checkUpdates(update) {
|
|
79
|
+
var _a, _b, _c, _d;
|
|
80
|
+
try {
|
|
81
|
+
this.app.LoadingView.showMessage("Refreshing...", "refresh");
|
|
82
|
+
const updatedModules = await ((_a = module.hot) == null ? void 0 : _a.check(!1));
|
|
83
|
+
if (!updatedModules) {
|
|
84
|
+
console.warn("[HMRClient] Cannot find update - full reload needed"), this.app.reload();
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const renewedModules = await ((_b = module.hot) == null ? void 0 : _b.apply({
|
|
88
|
+
ignoreDeclined: !0,
|
|
89
|
+
ignoreUnaccepted: !1,
|
|
90
|
+
ignoreErrored: !1,
|
|
91
|
+
onDeclined: (data) => {
|
|
92
|
+
console.warn("[HMRClient] Ignored an update due to declined module", {
|
|
93
|
+
chain: data.chain
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}));
|
|
97
|
+
this.upToDate() || this.checkUpdates(update);
|
|
98
|
+
const unacceptedModules = updatedModules.filter((moduleId) => renewedModules && renewedModules.indexOf(moduleId) < 0);
|
|
99
|
+
unacceptedModules.length ? (console.warn("[HMRClient] Not every module was accepted - full reload needed", {
|
|
100
|
+
unacceptedModules
|
|
101
|
+
}), this.app.reload()) : (console.log("[HMRClient] Renewed modules - app is up to date", {
|
|
102
|
+
renewedModules
|
|
103
|
+
}), this.app.dismissErrors());
|
|
104
|
+
} catch (error) {
|
|
105
|
+
((_c = module.hot) == null ? void 0 : _c.status()) === "fail" || ((_d = module.hot) == null ? void 0 : _d.status()) === "abort" ? (console.warn("[HMRClient] Cannot check for update - full reload needed"), console.warn("[HMRClient]", error), this.app.reload()) : console.warn("[HMRClient] Update check failed", { error });
|
|
106
|
+
} finally {
|
|
107
|
+
this.app.LoadingView.hide();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
const loadHMRClient = () => {
|
|
112
|
+
const { DevSettings, Platform } = require("react-native"), LoadingView = require("react-native/Libraries/Utilities/LoadingView"), reload = () => DevSettings.reload(), dismissErrors = () => {
|
|
113
|
+
var _a;
|
|
114
|
+
if (Platform.OS === "ios") {
|
|
115
|
+
const NativeRedBox = require("react-native/Libraries/NativeModules/specs/NativeRedBox").default;
|
|
116
|
+
(_a = NativeRedBox == null ? void 0 : NativeRedBox.dismiss) == null || _a.call(NativeRedBox);
|
|
117
|
+
} else {
|
|
118
|
+
const NativeExceptionsManager = require("react-native/Libraries/Core/NativeExceptionsManager").default;
|
|
119
|
+
NativeExceptionsManager == null || NativeExceptionsManager.dismissRedbox();
|
|
120
|
+
}
|
|
121
|
+
require("react-native/Libraries/LogBox/Data/LogBoxData").clear();
|
|
122
|
+
};
|
|
123
|
+
new HMRClient({ reload, dismissErrors, LoadingView });
|
|
124
|
+
};
|
|
125
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
126
|
+
0 && (module.exports = {
|
|
127
|
+
loadHMRClient
|
|
128
|
+
});
|
|
129
|
+
//# sourceMappingURL=hmr-client.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/hmr-client.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __copyProps = (to, from, except, desc) => {
|
|
6
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
7
|
+
for (let key of __getOwnPropNames(from))
|
|
8
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
9
|
+
return to;
|
|
10
|
+
}, __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
11
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
12
|
+
var src_exports = {};
|
|
13
|
+
module.exports = __toCommonJS(src_exports);
|
|
14
|
+
__reExport(src_exports, require("./devServerClient"), module.exports);
|
|
15
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
16
|
+
0 && (module.exports = {
|
|
17
|
+
...require("./devServerClient")
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
+
return to;
|
|
11
|
+
}, __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
12
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
13
|
+
var src_exports = {};
|
|
14
|
+
module.exports = __toCommonJS(src_exports);
|
|
15
|
+
__reExport(src_exports, require("./devServerClient"), module.exports);
|
|
16
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
17
|
+
0 && (module.exports = {
|
|
18
|
+
...require("./devServerClient")
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import prettyFormat from "pretty-format";
|
|
2
|
+
import { getDevServerLocation } from "./getDevServerLocation";
|
|
3
|
+
import { loadHMRClient } from "./hmr-client";
|
|
4
|
+
loadHMRClient();
|
|
5
|
+
class DevServerClient {
|
|
6
|
+
socket;
|
|
7
|
+
buffer = [];
|
|
8
|
+
constructor() {
|
|
9
|
+
const initSocket = () => {
|
|
10
|
+
const address = `ws://${getDevServerLocation().host}/__client`;
|
|
11
|
+
this.socket = new WebSocket(address);
|
|
12
|
+
const onClose = (event) => {
|
|
13
|
+
console.warn(
|
|
14
|
+
"Disconnected from the Dev Server:",
|
|
15
|
+
event.message
|
|
16
|
+
), this.socket = void 0;
|
|
17
|
+
};
|
|
18
|
+
this.socket.onclose = onClose, this.socket.onerror = onClose, this.socket.onopen = () => {
|
|
19
|
+
this.flushBuffer();
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
process.env.NODE_ENV === "development" && initSocket();
|
|
23
|
+
}
|
|
24
|
+
send(level, data) {
|
|
25
|
+
try {
|
|
26
|
+
this.socket?.send(
|
|
27
|
+
JSON.stringify({
|
|
28
|
+
type: "client-log",
|
|
29
|
+
level,
|
|
30
|
+
data: data.map(
|
|
31
|
+
(item) => typeof item == "string" ? item : prettyFormat(item, {
|
|
32
|
+
escapeString: !0,
|
|
33
|
+
highlight: !0,
|
|
34
|
+
maxDepth: 3,
|
|
35
|
+
min: !0,
|
|
36
|
+
plugins: [
|
|
37
|
+
// @ts-expect-error
|
|
38
|
+
prettyFormat.plugins.ReactElement
|
|
39
|
+
]
|
|
40
|
+
})
|
|
41
|
+
)
|
|
42
|
+
})
|
|
43
|
+
);
|
|
44
|
+
} catch {
|
|
45
|
+
try {
|
|
46
|
+
this.socket?.send(
|
|
47
|
+
JSON.stringify({
|
|
48
|
+
type: "client-log",
|
|
49
|
+
level,
|
|
50
|
+
data: data.map(
|
|
51
|
+
(item) => typeof item == "string" ? item : JSON.stringify(item)
|
|
52
|
+
)
|
|
53
|
+
})
|
|
54
|
+
);
|
|
55
|
+
} catch (err) {
|
|
56
|
+
try {
|
|
57
|
+
this.socket?.send(
|
|
58
|
+
JSON.stringify({
|
|
59
|
+
type: "client-log",
|
|
60
|
+
level: "error",
|
|
61
|
+
data: ["error sending client log: " + err]
|
|
62
|
+
})
|
|
63
|
+
);
|
|
64
|
+
} catch {
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
flushBuffer() {
|
|
70
|
+
console._tmpLogs && (console._tmpLogs.forEach(({ level, data }) => {
|
|
71
|
+
this.buffer.push({ level, data });
|
|
72
|
+
}), delete console._tmpLogs);
|
|
73
|
+
for (const { level, data } of this.buffer)
|
|
74
|
+
this.send(level, data);
|
|
75
|
+
this.buffer = [];
|
|
76
|
+
}
|
|
77
|
+
log(level, data) {
|
|
78
|
+
if (this.socket && this.socket.readyState === WebSocket.OPEN)
|
|
79
|
+
this.flushBuffer(), this.send(level, data);
|
|
80
|
+
else {
|
|
81
|
+
if (console._tmpLogs)
|
|
82
|
+
return;
|
|
83
|
+
this.buffer.push({ level, data });
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
const client = new DevServerClient(), setup = () => {
|
|
88
|
+
}, enable = () => {
|
|
89
|
+
}, disable = () => {
|
|
90
|
+
}, registerBundle = () => {
|
|
91
|
+
}, log = (level, data) => {
|
|
92
|
+
client.log(level, data);
|
|
93
|
+
};
|
|
94
|
+
export {
|
|
95
|
+
disable,
|
|
96
|
+
enable,
|
|
97
|
+
log,
|
|
98
|
+
registerBundle,
|
|
99
|
+
setup
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=devServerClient.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/devServerClient.ts"],
|
|
4
|
+
"mappings": "AAAA,OAAO,kBAAkB;AAEzB,SAAS,4BAA4B;AACrC,SAAS,qBAAqB;AAG9B,cAAc;AAad,MAAM,gBAAgB;AAAA,EACpB;AAAA,EACA,SAAgD,CAAC;AAAA,EAEjD,cAAc;AACZ,UAAM,aAAa,MAAM;AACvB,YAAM,UAAU,QAAQ,qBAAqB,EAAE,IAAI;AACnD,WAAK,SAAS,IAAI,UAAU,OAAO;AAEnC,YAAM,UAAU,CAAC,UAAiB;AAChC,gBAAQ;AAAA,UACN;AAAA,UACC,MAAgD;AAAA,QACnD,GACA,KAAK,SAAS;AAAA,MAChB;AAEA,WAAK,OAAO,UAAU,SACtB,KAAK,OAAO,UAAU,SACtB,KAAK,OAAO,SAAS,MAAM;AACzB,aAAK,YAAY;AAAA,MACnB;AAAA,IACF;AAEA,IAAI,QAAQ,IAAI,aAAa,iBAC3B,WAAW;AAAA,EAEf;AAAA,EAEA,KAAK,OAAe,MAAa;AAC/B,QAAI;AACF,WAAK,QAAQ;AAAA,QACX,KAAK,UAAU;AAAA,UACb,MAAM;AAAA,UACN;AAAA,UACA,MAAM,KAAK;AAAA,YAAI,CAAC,SACd,OAAO,QAAS,WACZ,OACA,aAAa,MAAM;AAAA,cACjB,cAAc;AAAA,cACd,WAAW;AAAA,cACX,UAAU;AAAA,cACV,KAAK;AAAA,cACL,SAAS;AAAA;AAAA,gBAEP,aAAa,QAAQ;AAAA,cACvB;AAAA,YACF,CAAC;AAAA,UACP;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF,QAAQ;AACN,UAAI;AACF,aAAK,QAAQ;AAAA,UACX,KAAK,UAAU;AAAA,YACb,MAAM;AAAA,YACN;AAAA,YACA,MAAM,KAAK;AAAA,cAAI,CAAC,SACd,OAAO,QAAS,WAAW,OAAO,KAAK,UAAU,IAAI;AAAA,YACvD;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF,SAAS,KAAK;AACZ,YAAI;AACF,eAAK,QAAQ;AAAA,YACX,KAAK,UAAU;AAAA,cACb,MAAM;AAAA,cACN,OAAO;AAAA,cACP,MAAM,CAAC,+BAA+B,GAAG;AAAA,YAC3C,CAAC;AAAA,UACH;AAAA,QACF,QAAQ;AAAA,QAER;AAAA,MACF;AAAA,IAEF;AAAA,EACF;AAAA,EAEA,cAAc;AACZ,IAAI,QAAQ,aACV,QAAQ,SAAY,QAAQ,CAAC,EAAE,OAAO,KAAK,MAAM;AAC/C,WAAK,OAAO,KAAK,EAAE,OAAO,KAAK,CAAC;AAAA,IAClC,CAAC,GACD,OAAO,QAAQ;AAGjB,eAAW,EAAE,OAAO,KAAK,KAAK,KAAK;AACjC,WAAK,KAAK,OAAO,IAAI;AAEvB,SAAK,SAAS,CAAC;AAAA,EACjB;AAAA,EAEA,IAAI,OAAe,MAAa;AAC9B,QAAI,KAAK,UAAU,KAAK,OAAO,eAAe,UAAU;AACtD,WAAK,YAAY,GACjB,KAAK,KAAK,OAAO,IAAI;AAAA,SAChB;AACL,UAAI,QAAQ;AAAa;AACzB,WAAK,OAAO,KAAK,EAAE,OAAO,KAAK,CAAC;AAAA,IAClC;AAAA,EACF;AACF;AAEA,MAAM,SAAS,IAAI,gBAAgB,GAEtB,QAAQ,MAAM;AAAC,GACf,SAAS,MAAM;AAAC,GAChB,UAAU,MAAM;AAAC,GACjB,iBAAiB,MAAM;AAAC,GACxB,MAAM,CAAC,OAAe,SAAgB;AACjD,SAAO,IAAI,OAAO,IAAI;AACxB;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import prettyFormat from "pretty-format";
|
|
2
|
+
import { getDevServerLocation } from "./getDevServerLocation";
|
|
3
|
+
import { loadHMRClient } from "./hmr-client";
|
|
4
|
+
loadHMRClient();
|
|
5
|
+
class DevServerClient {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.buffer = [];
|
|
8
|
+
const initSocket = () => {
|
|
9
|
+
const address = `ws://${getDevServerLocation().host}/__client`;
|
|
10
|
+
this.socket = new WebSocket(address);
|
|
11
|
+
const onClose = (event) => {
|
|
12
|
+
console.warn(
|
|
13
|
+
"Disconnected from the Dev Server:",
|
|
14
|
+
event.message
|
|
15
|
+
), this.socket = void 0;
|
|
16
|
+
};
|
|
17
|
+
this.socket.onclose = onClose, this.socket.onerror = onClose, this.socket.onopen = () => {
|
|
18
|
+
this.flushBuffer();
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
process.env.NODE_ENV === "development" && initSocket();
|
|
22
|
+
}
|
|
23
|
+
send(level, data) {
|
|
24
|
+
try {
|
|
25
|
+
this.socket?.send(
|
|
26
|
+
JSON.stringify({
|
|
27
|
+
type: "client-log",
|
|
28
|
+
level,
|
|
29
|
+
data: data.map(
|
|
30
|
+
(item) => typeof item == "string" ? item : prettyFormat(item, {
|
|
31
|
+
escapeString: !0,
|
|
32
|
+
highlight: !0,
|
|
33
|
+
maxDepth: 3,
|
|
34
|
+
min: !0,
|
|
35
|
+
plugins: [
|
|
36
|
+
// @ts-expect-error
|
|
37
|
+
prettyFormat.plugins.ReactElement
|
|
38
|
+
]
|
|
39
|
+
})
|
|
40
|
+
)
|
|
41
|
+
})
|
|
42
|
+
);
|
|
43
|
+
} catch {
|
|
44
|
+
try {
|
|
45
|
+
this.socket?.send(
|
|
46
|
+
JSON.stringify({
|
|
47
|
+
type: "client-log",
|
|
48
|
+
level,
|
|
49
|
+
data: data.map(
|
|
50
|
+
(item) => typeof item == "string" ? item : JSON.stringify(item)
|
|
51
|
+
)
|
|
52
|
+
})
|
|
53
|
+
);
|
|
54
|
+
} catch (err) {
|
|
55
|
+
try {
|
|
56
|
+
this.socket?.send(
|
|
57
|
+
JSON.stringify({
|
|
58
|
+
type: "client-log",
|
|
59
|
+
level: "error",
|
|
60
|
+
data: ["error sending client log: " + err]
|
|
61
|
+
})
|
|
62
|
+
);
|
|
63
|
+
} catch {
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
flushBuffer() {
|
|
69
|
+
console._tmpLogs && (console._tmpLogs.forEach(({ level, data }) => {
|
|
70
|
+
this.buffer.push({ level, data });
|
|
71
|
+
}), delete console._tmpLogs);
|
|
72
|
+
for (const { level, data } of this.buffer)
|
|
73
|
+
this.send(level, data);
|
|
74
|
+
this.buffer = [];
|
|
75
|
+
}
|
|
76
|
+
log(level, data) {
|
|
77
|
+
if (this.socket && this.socket.readyState === WebSocket.OPEN)
|
|
78
|
+
this.flushBuffer(), this.send(level, data);
|
|
79
|
+
else {
|
|
80
|
+
if (console._tmpLogs)
|
|
81
|
+
return;
|
|
82
|
+
this.buffer.push({ level, data });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
const client = new DevServerClient(), setup = () => {
|
|
87
|
+
}, enable = () => {
|
|
88
|
+
}, disable = () => {
|
|
89
|
+
}, registerBundle = () => {
|
|
90
|
+
}, log = (level, data) => {
|
|
91
|
+
client.log(level, data);
|
|
92
|
+
};
|
|
93
|
+
export {
|
|
94
|
+
disable,
|
|
95
|
+
enable,
|
|
96
|
+
log,
|
|
97
|
+
registerBundle,
|
|
98
|
+
setup
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=devServerClient.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/devServerClient.ts"],
|
|
4
|
+
"mappings": "AAAA,OAAO,kBAAkB;AAEzB,SAAS,4BAA4B;AACrC,SAAS,qBAAqB;AAG9B,cAAc;AAad,MAAM,gBAAgB;AAAA,EAIpB,cAAc;AAFd,kBAAgD,CAAC;AAG/C,UAAM,aAAa,MAAM;AACvB,YAAM,UAAU,QAAQ,qBAAqB,EAAE,IAAI;AACnD,WAAK,SAAS,IAAI,UAAU,OAAO;AAEnC,YAAM,UAAU,CAAC,UAAiB;AAChC,gBAAQ;AAAA,UACN;AAAA,UACC,MAAgD;AAAA,QACnD,GACA,KAAK,SAAS;AAAA,MAChB;AAEA,WAAK,OAAO,UAAU,SACtB,KAAK,OAAO,UAAU,SACtB,KAAK,OAAO,SAAS,MAAM;AACzB,aAAK,YAAY;AAAA,MACnB;AAAA,IACF;AAEA,IAAI,QAAQ,IAAI,aAAa,iBAC3B,WAAW;AAAA,EAEf;AAAA,EAEA,KAAK,OAAe,MAAa;AAC/B,QAAI;AACF,WAAK,QAAQ;AAAA,QACX,KAAK,UAAU;AAAA,UACb,MAAM;AAAA,UACN;AAAA,UACA,MAAM,KAAK;AAAA,YAAI,CAAC,SACd,OAAO,QAAS,WACZ,OACA,aAAa,MAAM;AAAA,cACjB,cAAc;AAAA,cACd,WAAW;AAAA,cACX,UAAU;AAAA,cACV,KAAK;AAAA,cACL,SAAS;AAAA;AAAA,gBAEP,aAAa,QAAQ;AAAA,cACvB;AAAA,YACF,CAAC;AAAA,UACP;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF,QAAQ;AACN,UAAI;AACF,aAAK,QAAQ;AAAA,UACX,KAAK,UAAU;AAAA,YACb,MAAM;AAAA,YACN;AAAA,YACA,MAAM,KAAK;AAAA,cAAI,CAAC,SACd,OAAO,QAAS,WAAW,OAAO,KAAK,UAAU,IAAI;AAAA,YACvD;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF,SAAS,KAAK;AACZ,YAAI;AACF,eAAK,QAAQ;AAAA,YACX,KAAK,UAAU;AAAA,cACb,MAAM;AAAA,cACN,OAAO;AAAA,cACP,MAAM,CAAC,+BAA+B,GAAG;AAAA,YAC3C,CAAC;AAAA,UACH;AAAA,QACF,QAAQ;AAAA,QAER;AAAA,MACF;AAAA,IAEF;AAAA,EACF;AAAA,EAEA,cAAc;AACZ,IAAI,QAAQ,aACV,QAAQ,SAAY,QAAQ,CAAC,EAAE,OAAO,KAAK,MAAM;AAC/C,WAAK,OAAO,KAAK,EAAE,OAAO,KAAK,CAAC;AAAA,IAClC,CAAC,GACD,OAAO,QAAQ;AAGjB,eAAW,EAAE,OAAO,KAAK,KAAK,KAAK;AACjC,WAAK,KAAK,OAAO,IAAI;AAEvB,SAAK,SAAS,CAAC;AAAA,EACjB;AAAA,EAEA,IAAI,OAAe,MAAa;AAC9B,QAAI,KAAK,UAAU,KAAK,OAAO,eAAe,UAAU;AACtD,WAAK,YAAY,GACjB,KAAK,KAAK,OAAO,IAAI;AAAA,SAChB;AACL,UAAI,QAAQ;AAAa;AACzB,WAAK,OAAO,KAAK,EAAE,OAAO,KAAK,CAAC;AAAA,IAClC;AAAA,EACF;AACF;AAEA,MAAM,SAAS,IAAI,gBAAgB,GAEtB,QAAQ,MAAM;AAAC,GACf,SAAS,MAAM;AAAC,GAChB,UAAU,MAAM;AAAC,GACjB,iBAAiB,MAAM;AAAC,GACxB,MAAM,CAAC,OAAe,SAAgB;AACjD,SAAO,IAAI,OAAO,IAAI;AACxB;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import getDevServer from "react-native/Libraries/Core/Devtools/getDevServer";
|
|
2
|
+
let location;
|
|
3
|
+
function getDevServerLocation() {
|
|
4
|
+
if (!location) {
|
|
5
|
+
const { url } = getDevServer(), origin = url.replace(/\/$/, ""), host = origin.replace(/https?:\/\//, "");
|
|
6
|
+
location = {
|
|
7
|
+
host,
|
|
8
|
+
hostname: host.split(":")[0],
|
|
9
|
+
href: url,
|
|
10
|
+
origin,
|
|
11
|
+
pathname: url.split(host)[1],
|
|
12
|
+
port: host.split(":")[1],
|
|
13
|
+
protocol: (url.match(/^([a-z])+:\/\//) || [void 0, void 0])[1]
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
return location;
|
|
17
|
+
}
|
|
18
|
+
export {
|
|
19
|
+
getDevServerLocation
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=getDevServerLocation.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/getDevServerLocation.ts"],
|
|
4
|
+
"mappings": "AACA,OAAO,kBAAkB;AAYzB,IAAI;AAEG,SAAS,uBAA0C;AACxD,MAAI,CAAC,UAAU;AACb,UAAM,EAAE,IAAI,IAAI,aAAa,GACvB,SAAS,IAAI,QAAQ,OAAO,EAAE,GAC9B,OAAO,OAAO,QAAQ,eAAe,EAAE;AAC7C,eAAW;AAAA,MACT;AAAA,MACA,UAAU,KAAK,MAAM,GAAG,EAAE,CAAC;AAAA,MAC3B,MAAM;AAAA,MACN;AAAA,MACA,UAAU,IAAI,MAAM,IAAI,EAAE,CAAC;AAAA,MAC3B,MAAM,KAAK,MAAM,GAAG,EAAE,CAAC;AAAA,MACvB,WAAW,IAAI,MAAM,gBAAgB,KAAK,CAAC,QAAW,MAAS,GAAG,CAAC;AAAA,IACrE;AAAA,EACF;AAEA,SAAO;AACT;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import getDevServer from "react-native/Libraries/Core/Devtools/getDevServer";
|
|
2
|
+
let location;
|
|
3
|
+
function getDevServerLocation() {
|
|
4
|
+
if (!location) {
|
|
5
|
+
const { url } = getDevServer(), origin = url.replace(/\/$/, ""), host = origin.replace(/https?:\/\//, "");
|
|
6
|
+
location = {
|
|
7
|
+
host,
|
|
8
|
+
hostname: host.split(":")[0],
|
|
9
|
+
href: url,
|
|
10
|
+
origin,
|
|
11
|
+
pathname: url.split(host)[1],
|
|
12
|
+
port: host.split(":")[1],
|
|
13
|
+
protocol: (url.match(/^([a-z])+:\/\//) || [void 0, void 0])[1]
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
return location;
|
|
17
|
+
}
|
|
18
|
+
export {
|
|
19
|
+
getDevServerLocation
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=getDevServerLocation.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/getDevServerLocation.ts"],
|
|
4
|
+
"mappings": "AACA,OAAO,kBAAkB;AAYzB,IAAI;AAEG,SAAS,uBAA0C;AACxD,MAAI,CAAC,UAAU;AACb,UAAM,EAAE,IAAI,IAAI,aAAa,GACvB,SAAS,IAAI,QAAQ,OAAO,EAAE,GAC9B,OAAO,OAAO,QAAQ,eAAe,EAAE;AAC7C,eAAW;AAAA,MACT;AAAA,MACA,UAAU,KAAK,MAAM,GAAG,EAAE,CAAC;AAAA,MAC3B,MAAM;AAAA,MACN;AAAA,MACA,UAAU,IAAI,MAAM,IAAI,EAAE,CAAC;AAAA,MAC3B,MAAM,KAAK,MAAM,GAAG,EAAE,CAAC;AAAA,MACvB,WAAW,IAAI,MAAM,gBAAgB,KAAK,CAAC,QAAW,MAAS,GAAG,CAAC;AAAA,IACrE;AAAA,EACF;AAEA,SAAO;AACT;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { getDevServerLocation } from "./getDevServerLocation";
|
|
2
|
+
class HMRClient {
|
|
3
|
+
constructor(app) {
|
|
4
|
+
this.app = app;
|
|
5
|
+
this.url = `ws://${getDevServerLocation().hostname}:${process.env.REACT_NATIVE_SERVER_PUBLIC_PORT}/__hmr?platform=${process.env.REACT_NATIVE_PLATFORM || "ios"}`, this.socket = new WebSocket(this.url), console.log("[HMRClient] Connecting..."), this.socket.onopen = () => {
|
|
6
|
+
console.log("[HMRClient] Connected");
|
|
7
|
+
}, this.socket.onclose = () => {
|
|
8
|
+
console.log(`[HMRClient] Disconnected ${this.url}`);
|
|
9
|
+
}, this.socket.onerror = (event) => {
|
|
10
|
+
console.log("[HMRClient] Error", event);
|
|
11
|
+
}, this.socket.onmessage = (event) => {
|
|
12
|
+
try {
|
|
13
|
+
const data = JSON.parse(event.data.toString());
|
|
14
|
+
this.processMessage(data);
|
|
15
|
+
} catch (error) {
|
|
16
|
+
console.warn("[HMRClient] Invalid HMR message", error);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
url;
|
|
21
|
+
socket;
|
|
22
|
+
lastHash = "";
|
|
23
|
+
upToDate(hash) {
|
|
24
|
+
return hash && (this.lastHash = hash), this.lastHash === __webpack_hash__;
|
|
25
|
+
}
|
|
26
|
+
processMessage(message) {
|
|
27
|
+
switch (message.action) {
|
|
28
|
+
case "building":
|
|
29
|
+
this.app.LoadingView.showMessage("Rebuilding...", "refresh"), console.log("[HMRClient] Bundle rebuilding", {
|
|
30
|
+
name: message.body?.name
|
|
31
|
+
});
|
|
32
|
+
break;
|
|
33
|
+
case "built":
|
|
34
|
+
console.log("[HMRClient] Bundle rebuilt", {
|
|
35
|
+
name: message.body?.name,
|
|
36
|
+
time: message.body?.time
|
|
37
|
+
});
|
|
38
|
+
case "sync":
|
|
39
|
+
if (!message.body) {
|
|
40
|
+
console.warn("[HMRClient] HMR message body is empty");
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (message.body.errors?.length) {
|
|
44
|
+
message.body.errors.forEach((error) => {
|
|
45
|
+
console.error("Cannot apply update due to error:", error);
|
|
46
|
+
}), this.app.LoadingView.hide();
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
message.body.warnings?.length && message.body.warnings.forEach((warning) => {
|
|
50
|
+
console.warn("[HMRClient] Bundle contains warnings:", warning);
|
|
51
|
+
}), this.applyUpdate(message.body);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
applyUpdate(update) {
|
|
55
|
+
if (!module.hot)
|
|
56
|
+
throw new Error("[HMRClient] Hot Module Replacement is disabled.");
|
|
57
|
+
!this.upToDate(update.hash) && module.hot.status() === "idle" && (console.log("[HMRClient] Checking for updates on the server..."), this.checkUpdates(update));
|
|
58
|
+
}
|
|
59
|
+
async checkUpdates(update) {
|
|
60
|
+
try {
|
|
61
|
+
this.app.LoadingView.showMessage("Refreshing...", "refresh");
|
|
62
|
+
const updatedModules = await module.hot?.check(!1);
|
|
63
|
+
if (!updatedModules) {
|
|
64
|
+
console.warn("[HMRClient] Cannot find update - full reload needed"), this.app.reload();
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const renewedModules = await module.hot?.apply({
|
|
68
|
+
ignoreDeclined: !0,
|
|
69
|
+
ignoreUnaccepted: !1,
|
|
70
|
+
ignoreErrored: !1,
|
|
71
|
+
onDeclined: (data) => {
|
|
72
|
+
console.warn("[HMRClient] Ignored an update due to declined module", {
|
|
73
|
+
chain: data.chain
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
this.upToDate() || this.checkUpdates(update);
|
|
78
|
+
const unacceptedModules = updatedModules.filter((moduleId) => renewedModules && renewedModules.indexOf(moduleId) < 0);
|
|
79
|
+
unacceptedModules.length ? (console.warn("[HMRClient] Not every module was accepted - full reload needed", {
|
|
80
|
+
unacceptedModules
|
|
81
|
+
}), this.app.reload()) : (console.log("[HMRClient] Renewed modules - app is up to date", {
|
|
82
|
+
renewedModules
|
|
83
|
+
}), this.app.dismissErrors());
|
|
84
|
+
} catch (error) {
|
|
85
|
+
module.hot?.status() === "fail" || module.hot?.status() === "abort" ? (console.warn("[HMRClient] Cannot check for update - full reload needed"), console.warn("[HMRClient]", error), this.app.reload()) : console.warn("[HMRClient] Update check failed", { error });
|
|
86
|
+
} finally {
|
|
87
|
+
this.app.LoadingView.hide();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const loadHMRClient = () => {
|
|
92
|
+
const { DevSettings, Platform } = require("react-native"), LoadingView = require("react-native/Libraries/Utilities/LoadingView"), reload = () => DevSettings.reload(), dismissErrors = () => {
|
|
93
|
+
Platform.OS === "ios" ? require("react-native/Libraries/NativeModules/specs/NativeRedBox").default?.dismiss?.() : require("react-native/Libraries/Core/NativeExceptionsManager").default?.dismissRedbox(), require("react-native/Libraries/LogBox/Data/LogBoxData").clear();
|
|
94
|
+
};
|
|
95
|
+
new HMRClient({ reload, dismissErrors, LoadingView });
|
|
96
|
+
};
|
|
97
|
+
export {
|
|
98
|
+
loadHMRClient
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=hmr-client.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/hmr-client.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|