@ipp/cli
Version:
An image build orchestrator for the modern web
85 lines (84 loc) • 4.58 kB
JavaScript
;
/**
* Image Processing Pipeline - Copyright (c) Marcus Cemes
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Summary = void 0;
const figures_1 = __importDefault(require("figures"));
const ink_1 = require("ink");
const react_1 = __importStar(require("react"));
const state_1 = require("../../lib/state");
const constants_1 = require("./constants");
const Notice = ({ children }) => (react_1.default.createElement(ink_1.Box, { marginTop: 1 },
react_1.default.createElement(ink_1.Box, { marginRight: 1 },
react_1.default.createElement(ink_1.Text, { color: "whiteBright" }, figures_1.default.bullet)),
children));
const CompletionSummary = ({ completed, failed, }) => (react_1.default.createElement(ink_1.Box, { width: constants_1.TERMINAL_WIDTH, justifyContent: "center" },
react_1.default.createElement(ink_1.Box, { borderStyle: "single", paddingX: 2, flexDirection: "column" },
react_1.default.createElement(ink_1.Box, { marginBottom: 1, justifyContent: "center" },
react_1.default.createElement(ink_1.Text, { bold: true }, "\uD83C\uDF89 All done!")),
react_1.default.createElement(ink_1.Box, null,
react_1.default.createElement(ink_1.Box, null,
react_1.default.createElement(ink_1.Text, null,
react_1.default.createElement(ink_1.Text, { color: "green" }, figures_1.default.tick),
" ",
react_1.default.createElement(ink_1.Text, { bold: true }, completed),
" completed")),
!!failed && (react_1.default.createElement(ink_1.Box, { marginLeft: 4 },
react_1.default.createElement(ink_1.Text, null,
react_1.default.createElement(ink_1.Text, { color: "red", bold: true }, figures_1.default.cross),
" ",
react_1.default.createElement(ink_1.Text, { bold: true }, failed),
" failed")))))));
const Notices = ({ manifest, failed }) => (react_1.default.createElement(ink_1.Box, { paddingLeft: 4, width: constants_1.TERMINAL_WIDTH * 1.5, flexDirection: "column" },
manifest && (react_1.default.createElement(Notice, null,
react_1.default.createElement(ink_1.Text, null,
"A ",
react_1.default.createElement(ink_1.Text, { color: "whiteBright" }, "manifest.json"),
" file has been generated."))),
failed && (react_1.default.createElement(Notice, null,
react_1.default.createElement(ink_1.Text, null,
"Some images have failed, see ",
react_1.default.createElement(ink_1.Text, { color: "whiteBright" }, "errors.json"),
" for more information.")))));
const Summary = ({ state }) => {
const app = (0, ink_1.useApp)();
(0, react_1.useEffect)(() => {
app.exit();
}, []);
if (state.status === state_1.Status.ERROR)
return null;
return (react_1.default.createElement(react_1.default.Fragment, null,
react_1.default.createElement(CompletionSummary, { completed: state.images.completed, failed: state.images.failed }),
react_1.default.createElement(Notices, { manifest: !!state.manifest, failed: !!state.images.failed })));
};
exports.Summary = Summary;