UNPKG

esa-cli

Version:

A CLI for operating Alibaba Cloud ESA Functions and Pages.

82 lines (81 loc) 3.59 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import chalk from 'chalk'; import { Box, Text, useApp, useInput, render } from 'ink'; import React, { useEffect } from 'react'; import t from '../../i18n/index.js'; import logger from '../../libs/logger.js'; import { checkOS, Platforms } from '../../utils/checkOS.js'; import { getDevOpenBrowserUrl } from '../../utils/fileUtils/index.js'; import openInBrowser from '../../utils/openInBrowser.js'; const InteractionBox = ({ worker }) => { const { exit } = useApp(); const inspectLink = chalk.underline.blue('chrome://inspect/#devices'); const remoteTarget = chalk.blue('Remote Target'); const inspect = chalk.blue('inspect'); const OS = checkOS(); const useEw2 = OS === Platforms.AppleArm || Platforms.AppleIntel || Platforms.LinuxX86; /* eslint-disable no-unused-vars */ useInput((input) => __awaiter(void 0, void 0, void 0, function* () { switch (input.toLowerCase()) { case 'c': console.clear(); logger.block(); break; case 'b': { yield openInBrowser(getDevOpenBrowserUrl()); break; } case 'd': { if (useEw2) return; logger.log(t('dev_input_inspect_tip1', { inspectLink }).d(`👉 Please visit ${inspectLink} in the Chrome browser`)); logger.log(t('dev_input_inspect_tip2', { inspect, remoteTarget }).d(`👉 See your debugger under ${remoteTarget} and click the ${inspect} button`)); break; } case 'x': exit(); break; default: break; } })); useEffect(() => { return () => { if (worker) { worker.stop(); } }; }, []); return (React.createElement(React.Fragment, null, React.createElement(Box, { borderStyle: "classic", paddingLeft: 1, paddingRight: 1 }, React.createElement(Text, { bold: true }, "[b]"), React.createElement(Text, null, " open a browser, "), !useEw2 ? (React.createElement(React.Fragment, null, React.createElement(Text, { bold: true }, "[d]"), React.createElement(Text, null, " open Devtools, "))) : null, React.createElement(Text, { bold: true }, "[c]"), React.createElement(Text, null, " clear console, "), React.createElement(Text, { bold: true }, "[x]"), React.createElement(Text, null, " to exit")))); }; const doProcess = (worker) => { const devElement = render(React.createElement(InteractionBox, { worker: worker })); return { devElement, exit: () => { devElement.unmount(); setTimeout(() => { process.exit(0); }, 500); } }; }; export default doProcess;