@expo/metro-runtime 0.0.1 → 1.0.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/build/HMRClient.d.ts +2 -2
- package/build/HMRClient.d.ts.map +1 -1
- package/build/HMRClient.js +26 -3
- package/build/HMRClient.js.map +1 -1
- package/build/async-require/buildAsyncRequire.d.ts +6 -7
- package/build/async-require/buildAsyncRequire.d.ts.map +1 -1
- package/build/async-require/buildAsyncRequire.js +22 -20
- package/build/async-require/buildAsyncRequire.js.map +1 -1
- package/build/async-require/buildUrlForBundle.d.ts.map +1 -1
- package/build/async-require/buildUrlForBundle.js +6 -0
- package/build/async-require/buildUrlForBundle.js.map +1 -1
- package/build/async-require/buildUrlForBundle.native.d.ts.map +1 -1
- package/build/async-require/buildUrlForBundle.native.js +6 -0
- package/build/async-require/buildUrlForBundle.native.js.map +1 -1
- package/build/async-require/fetchAsync.d.ts.map +1 -1
- package/build/async-require/fetchAsync.js +6 -0
- package/build/async-require/fetchAsync.js.map +1 -1
- package/build/async-require/fetchThenEval.d.ts.map +1 -1
- package/build/async-require/fetchThenEval.js +6 -0
- package/build/async-require/fetchThenEval.js.map +1 -1
- package/build/async-require/fetchThenEval.web.d.ts +6 -0
- package/build/async-require/fetchThenEval.web.d.ts.map +1 -1
- package/build/async-require/fetchThenEval.web.js +6 -1
- package/build/async-require/fetchThenEval.web.js.map +1 -1
- package/build/async-require/index.js +6 -0
- package/build/async-require/index.js.map +1 -1
- package/build/async-require/loadBundle.android.d.ts.map +1 -1
- package/build/async-require/loadBundle.android.js +6 -0
- package/build/async-require/loadBundle.android.js.map +1 -1
- package/build/async-require/loadBundle.d.ts +6 -0
- package/build/async-require/loadBundle.d.ts.map +1 -1
- package/build/async-require/loadBundle.js +6 -0
- package/build/async-require/loadBundle.js.map +1 -1
- package/build/async-require/loadBundlePolyfill.d.ts.map +1 -1
- package/build/async-require/loadBundlePolyfill.js +8 -2
- package/build/async-require/loadBundlePolyfill.js.map +1 -1
- package/build/error-overlay/Data/LogBoxData.d.ts +8 -8
- package/build/error-overlay/Data/LogBoxData.d.ts.map +1 -1
- package/build/error-overlay/Data/LogBoxData.js +2 -2
- package/build/error-overlay/Data/LogBoxData.js.map +1 -1
- package/build/error-overlay/Data/LogBoxLog.d.ts +4 -4
- package/build/error-overlay/Data/LogBoxLog.d.ts.map +1 -1
- package/build/error-overlay/Data/LogBoxSymbolication.d.ts +3 -3
- package/build/error-overlay/Data/LogBoxSymbolication.d.ts.map +1 -1
- package/build/error-overlay/Data/parseLogBoxLog.d.ts +6 -6
- package/build/error-overlay/Data/parseLogBoxLog.d.ts.map +1 -1
- package/build/error-overlay/Data/parseLogBoxLog.js.map +1 -1
- package/build/error-overlay/UI/LogBoxButton.d.ts +1 -1
- package/build/error-overlay/UI/LogBoxButton.d.ts.map +1 -1
- package/build/error-overlay/UI/LogBoxMessage.d.ts +1 -1
- package/build/error-overlay/UI/LogBoxMessage.d.ts.map +1 -1
- package/build/error-overlay/modules/ExceptionsManager/index.d.ts +1 -1
- package/build/error-overlay/modules/ExceptionsManager/index.d.ts.map +1 -1
- package/build/error-overlay/modules/symbolicateStackTrace/index.d.ts +2 -2
- package/build/error-overlay/modules/symbolicateStackTrace/index.d.ts.map +1 -1
- package/build/error-overlay/overlay/LogBoxInspectorCodeFrame.d.ts.map +1 -1
- package/build/error-overlay/overlay/LogBoxInspectorCodeFrame.js +1 -1
- package/build/error-overlay/overlay/LogBoxInspectorCodeFrame.js.map +1 -1
- package/build/error-overlay/overlay/LogBoxInspectorFooter.d.ts +1 -1
- package/build/error-overlay/overlay/LogBoxInspectorFooter.d.ts.map +1 -1
- package/build/error-overlay/overlay/LogBoxInspectorHeader.d.ts +1 -1
- package/build/error-overlay/overlay/LogBoxInspectorHeader.d.ts.map +1 -1
- package/build/error-overlay/overlay/LogBoxInspectorMessageHeader.d.ts +1 -1
- package/build/error-overlay/overlay/LogBoxInspectorMessageHeader.d.ts.map +1 -1
- package/build/error-overlay/overlay/LogBoxInspectorSection.d.ts +1 -1
- package/build/error-overlay/overlay/LogBoxInspectorSection.d.ts.map +1 -1
- package/build/error-overlay/overlay/LogBoxInspectorSourceMapStatus.d.ts +1 -1
- package/build/error-overlay/overlay/LogBoxInspectorSourceMapStatus.d.ts.map +1 -1
- package/build/error-overlay/overlay/LogBoxInspectorSourceMapStatus.js.map +1 -1
- package/build/error-overlay/overlay/LogBoxInspectorStackFrame.d.ts +1 -1
- package/build/error-overlay/overlay/LogBoxInspectorStackFrame.d.ts.map +1 -1
- package/build/error-overlay/overlay/LogBoxInspectorStackFrames.d.ts +1 -1
- package/build/error-overlay/overlay/LogBoxInspectorStackFrames.d.ts.map +1 -1
- package/build/error-overlay/overlay/LogBoxInspectorStackFrames.js +3 -3
- package/build/error-overlay/overlay/LogBoxInspectorStackFrames.js.map +1 -1
- package/build/error-overlay/toast/ErrorToast.d.ts +1 -1
- package/build/error-overlay/toast/ErrorToast.d.ts.map +1 -1
- package/build/error-overlay/toast/ErrorToast.js +1 -1
- package/build/error-overlay/toast/ErrorToast.js.map +1 -1
- package/build/error-overlay/toast/ErrorToastContainer.web.js +1 -1
- package/build/error-overlay/toast/ErrorToastContainer.web.js.map +1 -1
- package/build/setupHMR.js +23 -1
- package/build/setupHMR.js.map +1 -1
- package/package.json +4 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogBoxInspectorSourceMapStatus.js","sourceRoot":"","sources":["../../../src/error-overlay/overlay/LogBoxInspectorSourceMapStatus.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;GAMG;AACH,+CAAmD;AACnD,+CAMsB;AAEtB,qDAAkD;AAClD,+DAAiD;AAOjD,SAAgB,8BAA8B,CAAC,KAAY;IACzD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAG/B;QACD,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;YAC9B,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE;gBAC3B,MAAM,QAAQ,GAAG,IAAI,uBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvC,MAAM,SAAS,GAAG,uBAAQ,CAAC,IAAI,CAC7B,uBAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE;oBACxB,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,qBAAM,CAAC,MAAM;oBACrB,OAAO,EAAE,CAAC;oBACV,eAAe,EAAE,IAAI;iBACtB,CAAC,CACH,CAAC;gBACF,QAAQ,CAAC;oBACP,SAAS;oBACT,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC;wBAC3B,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;wBAClB,WAAW,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;qBAChC,CAAC;iBACH,CAAC,CAAC;gBACH,SAAS,CAAC,KAAK,EAAE,CAAC;aACnB;SACF;aAAM;YACL,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE;gBAC3B,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC;oBACP,SAAS,EAAE,IAAI;oBACf,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;aACJ;SACF;QAED,OAAO,GAAG,EAAE;YACV,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE;gBAC3B,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;aACxB;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAEpC,IAAI,KAAK,CAAC;IACV,IAAI,KAAK,CAAC;IACV,QAAQ,KAAK,CAAC,MAAM,EAAE;QACpB,KAAK,QAAQ;YACX,KAAK,GAAG,OAAO,CAAC,+CAA+C,CAAC,CAAC;YACjE,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM;QACR,KAAK,SAAS;YACZ,KAAK,GAAG,OAAO,CAAC,uCAAuC,CAAC,CAAC;YACzD,KAAK,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM;KACT;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,KAAK,IAAI,IAAI,EAAE;QAChD,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,8BAAC,2BAAY,IACX,eAAe,EAAE;YACf,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;SAC3C,EACD,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EACjD,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,KAAK,EAAE,MAAM,CAAC,IAAI;QAElB,8BAAC,uBAAQ,CAAC,KAAK,IACb,MAAM,EAAE,KAAK,EACb,KAAK,EAAE;gBACL,MAAM,CAAC,KAAK;gBACZ,EAAE,SAAS,EAAE,KAAK,EAAE;gBACpB,KAAK,CAAC,MAAM,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;oBAChD,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;aAC9C,GACD;QACF,8BAAC,mBAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,iBAAmB,CAC3C,CAChB,CAAC;AACJ,CAAC;AAvFD,wEAuFC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE;QACJ,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,EAAE;QAChB,aAAa,EAAE,KAAK;QACpB,MAAM,EAAE,EAAE;QACV,iBAAiB,EAAE,CAAC;KACrB;IACD,KAAK,EAAE;QACL,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC;KACzC;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,EAAE;QACZ,kBAAkB,EAAE,KAAK;QACzB,UAAU,EAAE,EAAE;KACf;CACF,CAAC,CAAC","sourcesContent":["/**\n * Copyright (c) Evan Bacon.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport React, { useEffect, useState } from \"react\";\nimport {\n Animated,\n Easing,\n GestureResponderEvent,\n StyleSheet,\n Text,\n} from \"react-native\";\n\nimport { LogBoxButton } from \"../UI/LogBoxButton\";\nimport * as LogBoxStyle from \"../UI/LogBoxStyle\";\n\ntype Props = {\n onPress?: ((event: GestureResponderEvent) => void) | null;\n status: \"COMPLETE\" | \"FAILED\" | \"NONE\" | \"PENDING\";\n};\n\nexport function LogBoxInspectorSourceMapStatus(props: Props) {\n const [state, setState] = useState<{\n animation: null | Animated.CompositeAnimation;\n rotate: null | Animated.AnimatedInterpolation
|
|
1
|
+
{"version":3,"file":"LogBoxInspectorSourceMapStatus.js","sourceRoot":"","sources":["../../../src/error-overlay/overlay/LogBoxInspectorSourceMapStatus.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Evan Bacon.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport React, { useEffect, useState } from \"react\";\nimport {\n Animated,\n Easing,\n GestureResponderEvent,\n StyleSheet,\n Text,\n} from \"react-native\";\n\nimport { LogBoxButton } from \"../UI/LogBoxButton\";\nimport * as LogBoxStyle from \"../UI/LogBoxStyle\";\n\ntype Props = {\n onPress?: ((event: GestureResponderEvent) => void) | null;\n status: \"COMPLETE\" | \"FAILED\" | \"NONE\" | \"PENDING\";\n};\n\nexport function LogBoxInspectorSourceMapStatus(props: Props) {\n const [state, setState] = useState<{\n animation: null | Animated.CompositeAnimation;\n rotate: null | Animated.AnimatedInterpolation<string>;\n }>({\n animation: null,\n rotate: null,\n });\n\n useEffect(() => {\n if (props.status === \"PENDING\") {\n if (state.animation == null) {\n const animated = new Animated.Value(0);\n const animation = Animated.loop(\n Animated.timing(animated, {\n duration: 2000,\n easing: Easing.linear,\n toValue: 1,\n useNativeDriver: true,\n })\n );\n setState({\n animation,\n rotate: animated.interpolate({\n inputRange: [0, 1],\n outputRange: [\"0deg\", \"360deg\"],\n }),\n });\n animation.start();\n }\n } else {\n if (state.animation != null) {\n state.animation.stop();\n setState({\n animation: null,\n rotate: null,\n });\n }\n }\n\n return () => {\n if (state.animation != null) {\n state.animation.stop();\n }\n };\n }, [props.status, state.animation]);\n\n let image;\n let color;\n switch (props.status) {\n case \"FAILED\":\n image = require(\"@expo/metro-runtime/assets/alert-triangle.png\");\n color = LogBoxStyle.getErrorColor(1);\n break;\n case \"PENDING\":\n image = require(\"@expo/metro-runtime/assets/loader.png\");\n color = LogBoxStyle.getWarningColor(1);\n break;\n }\n\n if (props.status === \"COMPLETE\" || image == null) {\n return null;\n }\n\n return (\n <LogBoxButton\n backgroundColor={{\n default: \"transparent\",\n pressed: LogBoxStyle.getBackgroundColor(1),\n }}\n hitSlop={{ bottom: 8, left: 8, right: 8, top: 8 }}\n onPress={props.onPress}\n style={styles.root}\n >\n <Animated.Image\n source={image}\n style={[\n styles.image,\n { tintColor: color },\n state.rotate == null || props.status !== \"PENDING\"\n ? null\n : { transform: [{ rotate: state.rotate }] },\n ]}\n />\n <Text style={[styles.text, { color }]}>Source Map</Text>\n </LogBoxButton>\n );\n}\n\nconst styles = StyleSheet.create({\n root: {\n alignItems: \"center\",\n borderRadius: 12,\n flexDirection: \"row\",\n height: 24,\n paddingHorizontal: 8,\n },\n image: {\n height: 14,\n width: 16,\n marginEnd: 4,\n tintColor: LogBoxStyle.getTextColor(0.4),\n },\n text: {\n fontSize: 12,\n includeFontPadding: false,\n lineHeight: 16,\n },\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogBoxInspectorStackFrame.d.ts","sourceRoot":"","sources":["../../../src/error-overlay/overlay/LogBoxInspectorStackFrame.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAA0B,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAO/C,
|
|
1
|
+
{"version":3,"file":"LogBoxInspectorStackFrame.d.ts","sourceRoot":"","sources":["../../../src/error-overlay/overlay/LogBoxInspectorStackFrame.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAA0B,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAO/C,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,UAAU,GAAG;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;CAClD,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,KAAK,eAiCrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogBoxInspectorStackFrames.d.ts","sourceRoot":"","sources":["../../../src/error-overlay/overlay/LogBoxInspectorStackFrames.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LogBoxInspectorStackFrames.d.ts","sourceRoot":"","sources":["../../../src/error-overlay/overlay/LogBoxInspectorStackFrames.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAMzD,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,KAAK,EAClB,SAAS,EAAE,OAAO,GACjB,MAAM,CA+BR;AAED,wBAAgB,0BAA0B,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,sBAgDlE"}
|
|
@@ -36,13 +36,13 @@ exports.LogBoxInspectorStackFrames = exports.getCollapseMessage = void 0;
|
|
|
36
36
|
*/
|
|
37
37
|
const react_1 = __importStar(require("react"));
|
|
38
38
|
const react_native_1 = require("react-native");
|
|
39
|
+
const LogBoxInspectorSection_1 = require("./LogBoxInspectorSection");
|
|
40
|
+
const LogBoxInspectorSourceMapStatus_1 = require("./LogBoxInspectorSourceMapStatus");
|
|
41
|
+
const LogBoxInspectorStackFrame_1 = require("./LogBoxInspectorStackFrame");
|
|
39
42
|
const LogContext_1 = require("../Data/LogContext");
|
|
40
43
|
const LogBoxButton_1 = require("../UI/LogBoxButton");
|
|
41
44
|
const LogBoxStyle = __importStar(require("../UI/LogBoxStyle"));
|
|
42
45
|
const openFileInEditor_1 = __importDefault(require("../modules/openFileInEditor"));
|
|
43
|
-
const LogBoxInspectorSection_1 = require("./LogBoxInspectorSection");
|
|
44
|
-
const LogBoxInspectorSourceMapStatus_1 = require("./LogBoxInspectorSourceMapStatus");
|
|
45
|
-
const LogBoxInspectorStackFrame_1 = require("./LogBoxInspectorStackFrame");
|
|
46
46
|
function getCollapseMessage(stackFrames, collapsed) {
|
|
47
47
|
if (stackFrames.length === 0) {
|
|
48
48
|
return "No frames to show";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogBoxInspectorStackFrames.js","sourceRoot":"","sources":["../../../src/error-overlay/overlay/LogBoxInspectorStackFrames.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Evan Bacon.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport React, { useState } from \"react\";\nimport { StyleSheet, Text, View } from \"react-native\";\n\nimport type { StackType } from \"../Data/LogBoxLog\";\nimport type { Stack } from \"../Data/LogBoxSymbolication\";\nimport { useSelectedLog } from \"../Data/LogContext\";\nimport { LogBoxButton } from \"../UI/LogBoxButton\";\nimport * as LogBoxStyle from \"../UI/LogBoxStyle\";\nimport openFileInEditor from \"../modules/openFileInEditor\";\nimport { LogBoxInspectorSection } from \"./LogBoxInspectorSection\";\nimport { LogBoxInspectorSourceMapStatus } from \"./LogBoxInspectorSourceMapStatus\";\nimport { LogBoxInspectorStackFrame } from \"./LogBoxInspectorStackFrame\";\n\ntype Props = {\n type: StackType;\n onRetry: () => void;\n};\n\nexport function getCollapseMessage(\n stackFrames: Stack,\n collapsed: boolean\n): string {\n if (stackFrames.length === 0) {\n return \"No frames to show\";\n }\n\n const collapsedCount = stackFrames.reduce((count, { collapse }) => {\n if (collapse === true) {\n return count + 1;\n }\n\n return count;\n }, 0);\n\n if (collapsedCount === 0) {\n return \"Showing all frames\";\n }\n\n const framePlural = `frame${collapsedCount > 1 ? \"s\" : \"\"}`;\n if (collapsedCount === stackFrames.length) {\n return collapsed\n ? `See${\n collapsedCount > 1 ? \" all \" : \" \"\n }${collapsedCount} collapsed ${framePlural}`\n : `Collapse${\n collapsedCount > 1 ? \" all \" : \" \"\n }${collapsedCount} ${framePlural}`;\n } else {\n return collapsed\n ? `See ${collapsedCount} more ${framePlural}`\n : `Collapse ${collapsedCount} ${framePlural}`;\n }\n}\n\nexport function LogBoxInspectorStackFrames({ onRetry, type }: Props) {\n const log = useSelectedLog();\n\n const [collapsed, setCollapsed] = useState(() => {\n // Only collapse frames initially if some frames are not collapsed.\n return log.getAvailableStack(type)?.some(({ collapse }) => !collapse);\n });\n\n function getStackList() {\n if (collapsed === true) {\n return log.getAvailableStack(type)?.filter(({ collapse }) => !collapse);\n } else {\n return log.getAvailableStack(type);\n }\n }\n\n if (log.getAvailableStack(type)?.length === 0) {\n return null;\n }\n\n return (\n <LogBoxInspectorSection\n heading={type === \"component\" ? \"Component Stack\" : \"Call Stack\"}\n action={\n <LogBoxInspectorSourceMapStatus\n onPress={log.symbolicated[type].status === \"FAILED\" ? onRetry : null}\n status={log.symbolicated[type].status}\n />\n }\n >\n {log.symbolicated[type].status !== \"COMPLETE\" && (\n <View style={stackStyles.hintBox}>\n <Text style={stackStyles.hintText}>\n This call stack is not symbolicated. Some features are unavailable\n such as viewing the function name or tapping to open files.\n </Text>\n </View>\n )}\n <StackFrameList\n list={getStackList()!}\n status={log.symbolicated[type].status}\n />\n <StackFrameFooter\n onPress={() => setCollapsed(!collapsed)}\n message={getCollapseMessage(log.getAvailableStack(type)!, !!collapsed)}\n />\n </LogBoxInspectorSection>\n );\n}\n\nfunction StackFrameList({\n list,\n status,\n}: {\n list: Stack;\n status: \"NONE\" | \"PENDING\" | \"COMPLETE\" | \"FAILED\";\n}): any {\n return list.map((frame, index) => {\n const { file, lineNumber } = frame;\n return (\n <LogBoxInspectorStackFrame\n key={index}\n frame={frame}\n onPress={\n status === \"COMPLETE\" && file != null && lineNumber != null\n ? () => openFileInEditor(file, lineNumber)\n : undefined\n }\n />\n );\n });\n}\n\nfunction StackFrameFooter({\n message,\n onPress,\n}: {\n message: string;\n onPress: () => void;\n}) {\n return (\n <View style={stackStyles.collapseContainer}>\n <LogBoxButton\n backgroundColor={{\n default: \"transparent\",\n pressed: LogBoxStyle.getBackgroundColor(1),\n }}\n onPress={onPress}\n style={stackStyles.collapseButton}\n >\n <Text style={stackStyles.collapse}>{message}</Text>\n </LogBoxButton>\n </View>\n );\n}\n\nconst stackStyles = StyleSheet.create({\n section: {\n marginTop: 15,\n },\n heading: {\n alignItems: \"center\",\n flexDirection: \"row\",\n paddingHorizontal: 12,\n marginBottom: 10,\n },\n headingText: {\n color: LogBoxStyle.getTextColor(1),\n flex: 1,\n fontSize: 20,\n fontWeight: \"600\",\n includeFontPadding: false,\n lineHeight: 20,\n },\n body: {\n paddingBottom: 10,\n },\n bodyText: {\n color: LogBoxStyle.getTextColor(1),\n fontSize: 14,\n includeFontPadding: false,\n lineHeight: 18,\n fontWeight: \"500\",\n paddingHorizontal: 27,\n },\n hintText: {\n color: LogBoxStyle.getTextColor(0.7),\n fontSize: 13,\n includeFontPadding: false,\n lineHeight: 18,\n fontWeight: \"400\",\n marginHorizontal: 10,\n },\n hintBox: {\n backgroundColor: LogBoxStyle.getBackgroundColor(),\n marginHorizontal: 10,\n paddingHorizontal: 5,\n paddingVertical: 10,\n borderRadius: 5,\n marginBottom: 5,\n },\n collapseContainer: {\n marginLeft: 15,\n flexDirection: \"row\",\n },\n collapseButton: {\n borderRadius: 5,\n },\n collapse: {\n color: LogBoxStyle.getTextColor(0.7),\n fontSize: 12,\n fontWeight: \"300\",\n lineHeight: 20,\n marginTop: 0,\n paddingHorizontal: 10,\n paddingVertical: 5,\n },\n});\n"]}
|
|
1
|
+
{"version":3,"file":"LogBoxInspectorStackFrames.js","sourceRoot":"","sources":["../../../src/error-overlay/overlay/LogBoxInspectorStackFrames.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Evan Bacon.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport React, { useState } from \"react\";\nimport { StyleSheet, Text, View } from \"react-native\";\n\nimport { LogBoxInspectorSection } from \"./LogBoxInspectorSection\";\nimport { LogBoxInspectorSourceMapStatus } from \"./LogBoxInspectorSourceMapStatus\";\nimport { LogBoxInspectorStackFrame } from \"./LogBoxInspectorStackFrame\";\nimport type { StackType } from \"../Data/LogBoxLog\";\nimport type { Stack } from \"../Data/LogBoxSymbolication\";\nimport { useSelectedLog } from \"../Data/LogContext\";\nimport { LogBoxButton } from \"../UI/LogBoxButton\";\nimport * as LogBoxStyle from \"../UI/LogBoxStyle\";\nimport openFileInEditor from \"../modules/openFileInEditor\";\n\ntype Props = {\n type: StackType;\n onRetry: () => void;\n};\n\nexport function getCollapseMessage(\n stackFrames: Stack,\n collapsed: boolean\n): string {\n if (stackFrames.length === 0) {\n return \"No frames to show\";\n }\n\n const collapsedCount = stackFrames.reduce((count, { collapse }) => {\n if (collapse === true) {\n return count + 1;\n }\n\n return count;\n }, 0);\n\n if (collapsedCount === 0) {\n return \"Showing all frames\";\n }\n\n const framePlural = `frame${collapsedCount > 1 ? \"s\" : \"\"}`;\n if (collapsedCount === stackFrames.length) {\n return collapsed\n ? `See${\n collapsedCount > 1 ? \" all \" : \" \"\n }${collapsedCount} collapsed ${framePlural}`\n : `Collapse${\n collapsedCount > 1 ? \" all \" : \" \"\n }${collapsedCount} ${framePlural}`;\n } else {\n return collapsed\n ? `See ${collapsedCount} more ${framePlural}`\n : `Collapse ${collapsedCount} ${framePlural}`;\n }\n}\n\nexport function LogBoxInspectorStackFrames({ onRetry, type }: Props) {\n const log = useSelectedLog();\n\n const [collapsed, setCollapsed] = useState(() => {\n // Only collapse frames initially if some frames are not collapsed.\n return log.getAvailableStack(type)?.some(({ collapse }) => !collapse);\n });\n\n function getStackList() {\n if (collapsed === true) {\n return log.getAvailableStack(type)?.filter(({ collapse }) => !collapse);\n } else {\n return log.getAvailableStack(type);\n }\n }\n\n if (log.getAvailableStack(type)?.length === 0) {\n return null;\n }\n\n return (\n <LogBoxInspectorSection\n heading={type === \"component\" ? \"Component Stack\" : \"Call Stack\"}\n action={\n <LogBoxInspectorSourceMapStatus\n onPress={log.symbolicated[type].status === \"FAILED\" ? onRetry : null}\n status={log.symbolicated[type].status}\n />\n }\n >\n {log.symbolicated[type].status !== \"COMPLETE\" && (\n <View style={stackStyles.hintBox}>\n <Text style={stackStyles.hintText}>\n This call stack is not symbolicated. Some features are unavailable\n such as viewing the function name or tapping to open files.\n </Text>\n </View>\n )}\n <StackFrameList\n list={getStackList()!}\n status={log.symbolicated[type].status}\n />\n <StackFrameFooter\n onPress={() => setCollapsed(!collapsed)}\n message={getCollapseMessage(log.getAvailableStack(type)!, !!collapsed)}\n />\n </LogBoxInspectorSection>\n );\n}\n\nfunction StackFrameList({\n list,\n status,\n}: {\n list: Stack;\n status: \"NONE\" | \"PENDING\" | \"COMPLETE\" | \"FAILED\";\n}): any {\n return list.map((frame, index) => {\n const { file, lineNumber } = frame;\n return (\n <LogBoxInspectorStackFrame\n key={index}\n frame={frame}\n onPress={\n status === \"COMPLETE\" && file != null && lineNumber != null\n ? () => openFileInEditor(file, lineNumber)\n : undefined\n }\n />\n );\n });\n}\n\nfunction StackFrameFooter({\n message,\n onPress,\n}: {\n message: string;\n onPress: () => void;\n}) {\n return (\n <View style={stackStyles.collapseContainer}>\n <LogBoxButton\n backgroundColor={{\n default: \"transparent\",\n pressed: LogBoxStyle.getBackgroundColor(1),\n }}\n onPress={onPress}\n style={stackStyles.collapseButton}\n >\n <Text style={stackStyles.collapse}>{message}</Text>\n </LogBoxButton>\n </View>\n );\n}\n\nconst stackStyles = StyleSheet.create({\n section: {\n marginTop: 15,\n },\n heading: {\n alignItems: \"center\",\n flexDirection: \"row\",\n paddingHorizontal: 12,\n marginBottom: 10,\n },\n headingText: {\n color: LogBoxStyle.getTextColor(1),\n flex: 1,\n fontSize: 20,\n fontWeight: \"600\",\n includeFontPadding: false,\n lineHeight: 20,\n },\n body: {\n paddingBottom: 10,\n },\n bodyText: {\n color: LogBoxStyle.getTextColor(1),\n fontSize: 14,\n includeFontPadding: false,\n lineHeight: 18,\n fontWeight: \"500\",\n paddingHorizontal: 27,\n },\n hintText: {\n color: LogBoxStyle.getTextColor(0.7),\n fontSize: 13,\n includeFontPadding: false,\n lineHeight: 18,\n fontWeight: \"400\",\n marginHorizontal: 10,\n },\n hintBox: {\n backgroundColor: LogBoxStyle.getBackgroundColor(),\n marginHorizontal: 10,\n paddingHorizontal: 5,\n paddingVertical: 10,\n borderRadius: 5,\n marginBottom: 5,\n },\n collapseContainer: {\n marginLeft: 15,\n flexDirection: \"row\",\n },\n collapseButton: {\n borderRadius: 5,\n },\n collapse: {\n color: LogBoxStyle.getTextColor(0.7),\n fontSize: 12,\n fontWeight: \"300\",\n lineHeight: 20,\n marginTop: 0,\n paddingHorizontal: 10,\n paddingVertical: 5,\n },\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorToast.d.ts","sourceRoot":"","sources":["../../../src/error-overlay/toast/ErrorToast.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ErrorToast.d.ts","sourceRoot":"","sources":["../../../src/error-overlay/toast/ErrorToast.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,SAAS,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B,CAAC;AAUF,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,eA8BtC"}
|
|
@@ -33,9 +33,9 @@ exports.ErrorToast = void 0;
|
|
|
33
33
|
*/
|
|
34
34
|
const react_views_1 = require("@bacons/react-views");
|
|
35
35
|
const react_1 = __importStar(require("react"));
|
|
36
|
+
const ErrorToastMessage_1 = require("./ErrorToastMessage");
|
|
36
37
|
const LogBoxData = __importStar(require("../Data/LogBoxData"));
|
|
37
38
|
const LogBoxStyle = __importStar(require("../UI/LogBoxStyle"));
|
|
38
|
-
const ErrorToastMessage_1 = require("./ErrorToastMessage");
|
|
39
39
|
function useSymbolicatedLog(log) {
|
|
40
40
|
// Eagerly symbolicate so the stack is available when pressing to inspect.
|
|
41
41
|
(0, react_1.useEffect)(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorToast.js","sourceRoot":"","sources":["../../../src/error-overlay/toast/ErrorToast.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;GAMG;AACH,qDAA+E;AAC/E,+CAAyC;AAEzC,+DAAiD;AAEjD,+DAAiD;
|
|
1
|
+
{"version":3,"file":"ErrorToast.js","sourceRoot":"","sources":["../../../src/error-overlay/toast/ErrorToast.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;GAMG;AACH,qDAA+E;AAC/E,+CAAyC;AAEzC,2DAAwD;AACxD,+DAAiD;AAEjD,+DAAiD;AAUjD,SAAS,kBAAkB,CAAC,GAAc;IACxC,0EAA0E;IAC1E,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,UAAU,CAAC,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC5C,UAAU,CAAC,kBAAkB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,SAAgB,UAAU,CAAC,KAAY;IACrC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAE5C,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAExB,OAAO,CACL,8BAAC,kBAAI,IAAC,KAAK,EAAE,WAAW,CAAC,SAAS;QAChC,8BAAC,uBAAS,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,IACtD,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CACzB,8BAAC,kBAAI,IACH,KAAK,EAAE;gBACL,WAAW,CAAC,KAAK;gBACjB;oBACE,kBAAkB,EAAE,OAAO;oBAC3B,eAAe,EAAE,OAAO;wBACtB,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,OAAO;4BACT,CAAC,CAAC,SAAS;4BACX,CAAC,CAAC,WAAW,CAAC,kBAAkB,EAAE;iBACrC;aACF;YAED,8BAAC,KAAK,IAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAI;YAC7C,8BAAC,qCAAiB,IAAC,OAAO,EAAE,GAAG,CAAC,OAAO,GAAI;YAC3C,8BAAC,OAAO,IAAC,OAAO,EAAE,KAAK,CAAC,cAAc,GAAI,CACrC,CACR,CACS,CACP,CACR,CAAC;AACJ,CAAC;AA9BD,gCA8BC;AAED,SAAS,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAA4C;IACvE,OAAO,CACL,8BAAC,kBAAI,IAAC,KAAK,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QACnD,8BAAC,kBAAI,IAAC,KAAK,EAAE,WAAW,CAAC,IAAI,IAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAQ,CAC3D,CACR,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,EAAE,OAAO,EAA2B;IACnD,OAAO,CACL,8BAAC,uBAAS,IACR,KAAK,EAAE;YACL,UAAU,EAAE,CAAC;SACd,EACD,OAAO,EAAE;YACP,GAAG,EAAE,EAAE;YACP,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,EAAE;SACT,EACD,OAAO,EAAE,OAAO,IAEf,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CACzB,8BAAC,kBAAI,IACH,KAAK,EAAE;YACL,aAAa,CAAC,KAAK;YACnB,OAAO,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE;YAC3B,OAAO,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE;SAC5B;QAED,8BAAC,mBAAK,IACJ,MAAM,EAAE,OAAO,CAAC,sCAAsC,CAAC,EACvD,KAAK,EAAE,aAAa,CAAC,KAAK,GAC1B,CACG,CACR,CACS,CACb,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,wBAAU,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE;QACJ,eAAe,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;KAChD;IACD,KAAK,EAAE;QACL,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;KAC9C;IACD,GAAG,EAAE;QACH,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;KAC5C;IACD,MAAM,EAAE;QACN,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,CAAC;QACd,iBAAiB,EAAE,CAAC;QACpB,YAAY,EAAE,EAAE;QAChB,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,QAAQ;KACrB;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QAClC,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,KAAK;QACjB,eAAe,EAAE,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC;QACpD,gBAAgB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QACzC,gBAAgB,EAAE,CAAC;KACpB;CACF,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,wBAAU,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE;QACL,eAAe,EAAE,SAAS;QAC1B,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;KACzB;IACD,KAAK,EAAE;QACL,MAAM,EAAE,CAAC;QACT,KAAK,EAAE,CAAC;KACT;CACF,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,wBAAU,CAAC,MAAM,CAAC;IACpC,SAAS,EAAE;QACT,MAAM,EAAE,EAAE;QACV,cAAc,EAAE,QAAQ;QACxB,YAAY,EAAE,CAAC;KAChB;IACD,KAAK,EAAE;QACL,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;QACf,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,SAAS;QACtB,eAAe,EAAE,WAAW,CAAC,kBAAkB,EAAE;QACjD,IAAI,EAAE,CAAC;QACP,iBAAiB,EAAE,EAAE;KACtB;CACF,CAAC,CAAC","sourcesContent":["/**\n * Copyright (c) Evan Bacon.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Image, Pressable, StyleSheet, Text, View } from \"@bacons/react-views\";\nimport React, { useEffect } from \"react\";\n\nimport { ErrorToastMessage } from \"./ErrorToastMessage\";\nimport * as LogBoxData from \"../Data/LogBoxData\";\nimport { LogBoxLog } from \"../Data/LogBoxLog\";\nimport * as LogBoxStyle from \"../UI/LogBoxStyle\";\n\ntype Props = {\n log: LogBoxLog;\n totalLogCount: number;\n level: \"warn\" | \"error\";\n onPressOpen: () => void;\n onPressDismiss: () => void;\n};\n\nfunction useSymbolicatedLog(log: LogBoxLog) {\n // Eagerly symbolicate so the stack is available when pressing to inspect.\n useEffect(() => {\n LogBoxData.symbolicateLogLazy(\"stack\", log);\n LogBoxData.symbolicateLogLazy(\"component\", log);\n }, [log]);\n}\n\nexport function ErrorToast(props: Props) {\n const { totalLogCount, level, log } = props;\n\n useSymbolicatedLog(log);\n\n return (\n <View style={toastStyles.container}>\n <Pressable style={{ flex: 1 }} onPress={props.onPressOpen}>\n {({ hovered, pressed }) => (\n <View\n style={[\n toastStyles.press,\n {\n transitionDuration: \"150ms\",\n backgroundColor: pressed\n ? \"#323232\"\n : hovered\n ? \"#111111\"\n : LogBoxStyle.getBackgroundColor(),\n },\n ]}\n >\n <Count count={totalLogCount} level={level} />\n <ErrorToastMessage message={log.message} />\n <Dismiss onPress={props.onPressDismiss} />\n </View>\n )}\n </Pressable>\n </View>\n );\n}\n\nfunction Count({ count, level }: { count: number; level: Props[\"level\"] }) {\n return (\n <View style={[countStyles.inside, countStyles[level]]}>\n <Text style={countStyles.text}>{count <= 1 ? \"!\" : count}</Text>\n </View>\n );\n}\n\nfunction Dismiss({ onPress }: { onPress: () => void }) {\n return (\n <Pressable\n style={{\n marginLeft: 5,\n }}\n hitSlop={{\n top: 12,\n right: 10,\n bottom: 12,\n left: 10,\n }}\n onPress={onPress}\n >\n {({ hovered, pressed }) => (\n <View\n style={[\n dismissStyles.press,\n hovered && { opacity: 0.8 },\n pressed && { opacity: 0.5 },\n ]}\n >\n <Image\n source={require(\"@expo/metro-runtime/assets/close.png\")}\n style={dismissStyles.image}\n />\n </View>\n )}\n </Pressable>\n );\n}\n\nconst countStyles = StyleSheet.create({\n warn: {\n backgroundColor: LogBoxStyle.getWarningColor(1),\n },\n error: {\n backgroundColor: LogBoxStyle.getErrorColor(1),\n },\n log: {\n backgroundColor: LogBoxStyle.getLogColor(1),\n },\n inside: {\n marginRight: 8,\n minWidth: 22,\n aspectRatio: 1,\n paddingHorizontal: 4,\n borderRadius: 11,\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n text: {\n color: LogBoxStyle.getTextColor(1),\n fontSize: 14,\n lineHeight: 18,\n textAlign: \"center\",\n fontWeight: \"600\",\n textShadowColor: LogBoxStyle.getBackgroundColor(0.8),\n textShadowOffset: { width: 0, height: 0 },\n textShadowRadius: 3,\n },\n});\n\nconst dismissStyles = StyleSheet.create({\n press: {\n backgroundColor: \"#323232\",\n height: 20,\n width: 20,\n borderRadius: 25,\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n image: {\n height: 8,\n width: 8,\n },\n});\n\nconst toastStyles = StyleSheet.create({\n container: {\n height: 48,\n justifyContent: \"center\",\n marginBottom: 4,\n },\n press: {\n borderWidth: 1,\n borderRadius: 8,\n overflow: \"hidden\",\n flexDirection: \"row\",\n alignItems: \"center\",\n borderColor: \"#323232\",\n backgroundColor: LogBoxStyle.getBackgroundColor(),\n flex: 1,\n paddingHorizontal: 12,\n },\n});\n"]}
|
|
@@ -33,10 +33,10 @@ exports.ErrorToastContainer = void 0;
|
|
|
33
33
|
*/
|
|
34
34
|
const react_1 = __importStar(require("react"));
|
|
35
35
|
const react_native_1 = require("react-native");
|
|
36
|
+
const ErrorToast_1 = require("./ErrorToast");
|
|
36
37
|
const LogBoxData = __importStar(require("../Data/LogBoxData"));
|
|
37
38
|
const LogContext_1 = require("../Data/LogContext");
|
|
38
39
|
const useRejectionHandler_1 = require("../useRejectionHandler");
|
|
39
|
-
const ErrorToast_1 = require("./ErrorToast");
|
|
40
40
|
function ErrorToastContainer() {
|
|
41
41
|
(0, useRejectionHandler_1.useRejectionHandler)();
|
|
42
42
|
const { logs, isDisabled } = (0, LogContext_1.useLogs)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorToastContainer.web.js","sourceRoot":"","sources":["../../../src/error-overlay/toast/ErrorToastContainer.web.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;GAMG;AACH,+CAAoD;AACpD,+CAAgD;AAEhD,+DAAiD;AAEjD,mDAA6C;AAC7C,gEAA6D;
|
|
1
|
+
{"version":3,"file":"ErrorToastContainer.web.js","sourceRoot":"","sources":["../../../src/error-overlay/toast/ErrorToastContainer.web.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Evan Bacon.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport React, { useCallback, useMemo } from \"react\";\nimport { StyleSheet, View } from \"react-native\";\n\nimport { ErrorToast } from \"./ErrorToast\";\nimport * as LogBoxData from \"../Data/LogBoxData\";\nimport { LogBoxLog } from \"../Data/LogBoxLog\";\nimport { useLogs } from \"../Data/LogContext\";\nimport { useRejectionHandler } from \"../useRejectionHandler\";\n\nexport function ErrorToastContainer() {\n useRejectionHandler();\n const { logs, isDisabled } = useLogs();\n if (!logs.length || isDisabled) {\n return null;\n }\n return <ErrorToastStack logs={logs} />;\n}\n\nfunction ErrorToastStack({ logs }: { logs: LogBoxLog[] }) {\n const onDismissWarns = useCallback(() => {\n LogBoxData.clearWarnings();\n }, []);\n\n const onDismissErrors = useCallback(() => {\n LogBoxData.clearErrors();\n }, []);\n\n const setSelectedLog = useCallback((index: number): void => {\n LogBoxData.setSelectedLog(index);\n }, []);\n\n function openLog(log: LogBoxLog) {\n let index = logs.length - 1;\n\n // Stop at zero because if we don't find any log, we'll open the first log.\n while (index > 0 && logs[index] !== log) {\n index -= 1;\n }\n setSelectedLog(index);\n }\n\n const warnings = useMemo(\n () => logs.filter((log) => log.level === \"warn\"),\n [logs]\n );\n\n const errors = useMemo(\n () => logs.filter((log) => log.level === \"error\" || log.level === \"fatal\"),\n [logs]\n );\n\n return (\n <View style={styles.list}>\n {warnings.length > 0 && (\n <ErrorToast\n log={warnings[warnings.length - 1]}\n level=\"warn\"\n totalLogCount={warnings.length}\n onPressOpen={() => openLog(warnings[warnings.length - 1])}\n onPressDismiss={onDismissWarns}\n />\n )}\n\n {errors.length > 0 && (\n <ErrorToast\n log={errors[errors.length - 1]}\n level=\"error\"\n totalLogCount={errors.length}\n onPressOpen={() => openLog(errors[errors.length - 1])}\n onPressDismiss={onDismissErrors}\n />\n )}\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n list: {\n bottom: 6,\n left: 10,\n right: 10,\n position: \"absolute\",\n maxWidth: 320,\n },\n});\n\nexport default LogBoxData.withSubscription(ErrorToastContainer);\n"]}
|
package/build/setupHMR.js
CHANGED
|
@@ -7,7 +7,29 @@ const react_native_1 = require("react-native");
|
|
|
7
7
|
const HMRClient_1 = __importDefault(require("./HMRClient"));
|
|
8
8
|
// Sets up developer tools for React Native web.
|
|
9
9
|
if (!react_native_1.Platform.isTesting) {
|
|
10
|
-
|
|
10
|
+
// We assume full control over the console and send JavaScript logs to Metro.
|
|
11
|
+
// [
|
|
12
|
+
// 'trace',
|
|
13
|
+
// 'info',
|
|
14
|
+
// 'warn',
|
|
15
|
+
// 'error',
|
|
16
|
+
// 'log',
|
|
17
|
+
// 'group',
|
|
18
|
+
// 'groupCollapsed',
|
|
19
|
+
// 'groupEnd',
|
|
20
|
+
// 'debug',
|
|
21
|
+
// ].forEach(level => {
|
|
22
|
+
// const originalFunction = console[level];
|
|
23
|
+
// console[level] = function (...args: readonly any[]) {
|
|
24
|
+
// HMRClient.log(
|
|
25
|
+
// // @ts-expect-error
|
|
26
|
+
// level, args);
|
|
27
|
+
// originalFunction.apply(console, args);
|
|
28
|
+
// };
|
|
29
|
+
// });
|
|
30
|
+
HMRClient_1.default.log("log", [
|
|
31
|
+
`[${react_native_1.Platform.OS}] Logs will appear in the browser console`,
|
|
32
|
+
]);
|
|
11
33
|
}
|
|
12
34
|
// This is called native on native platforms
|
|
13
35
|
HMRClient_1.default.setup({ isEnabled: true });
|
package/build/setupHMR.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupHMR.js","sourceRoot":"","sources":["../src/setupHMR.ts"],"names":[],"mappings":";;;;;AAAA,+CAAwC;AAExC,4DAAoC;AAEpC,gDAAgD;AAChD,IAAI,CAAC,uBAAQ,CAAC,SAAS,EAAE;IACvB,mBAAS,CAAC,GAAG,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"setupHMR.js","sourceRoot":"","sources":["../src/setupHMR.ts"],"names":[],"mappings":";;;;;AAAA,+CAAwC;AAExC,4DAAoC;AAEpC,gDAAgD;AAChD,IAAI,CAAC,uBAAQ,CAAC,SAAS,EAAE;IACvB,6EAA6E;IAC7E,IAAI;IACJ,aAAa;IACb,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,WAAW;IACX,aAAa;IACb,sBAAsB;IACtB,gBAAgB;IAChB,aAAa;IACb,uBAAuB;IACvB,6CAA6C;IAC7C,0DAA0D;IAC1D,qBAAqB;IACrB,4BAA4B;IAC5B,sBAAsB;IACtB,6CAA6C;IAC7C,OAAO;IACP,MAAM;IAEN,mBAAS,CAAC,GAAG,CAAC,KAAK,EAAE;QACnB,IAAI,uBAAQ,CAAC,EAAE,2CAA2C;KAC3D,CAAC,CAAC;CACJ;AAED,4CAA4C;AAC5C,mBAAS,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC","sourcesContent":["import { Platform } from \"react-native\";\n\nimport HMRClient from \"./HMRClient\";\n\n// Sets up developer tools for React Native web.\nif (!Platform.isTesting) {\n // We assume full control over the console and send JavaScript logs to Metro.\n // [\n // 'trace',\n // 'info',\n // 'warn',\n // 'error',\n // 'log',\n // 'group',\n // 'groupCollapsed',\n // 'groupEnd',\n // 'debug',\n // ].forEach(level => {\n // const originalFunction = console[level];\n // console[level] = function (...args: readonly any[]) {\n // HMRClient.log(\n // // @ts-expect-error\n // level, args);\n // originalFunction.apply(console, args);\n // };\n // });\n\n HMRClient.log(\"log\", [\n `[${Platform.OS}] Logs will appear in the browser console`,\n ]);\n}\n\n// This is called native on native platforms\nHMRClient.setup({ isEnabled: true });\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/metro-runtime",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Tools for making experimental Metro bundler features work",
|
|
5
5
|
"main": "build",
|
|
6
6
|
"files": [
|
|
@@ -38,5 +38,8 @@
|
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@bacons/react-views": "^1.1.3",
|
|
40
40
|
"qs": "^6.10.3"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@types/node": "^18.14.2"
|
|
41
44
|
}
|
|
42
45
|
}
|