UNPKG

ness

Version:

✪ No-effort static sites deployed to your AWS account.

101 lines 13.4 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (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.Task = exports.TaskState = void 0; const react_1 = __importStar(require("react")); const ink_1 = require("ink"); const utils_1 = require("../utils"); const ink_spinner_1 = __importDefault(require("ink-spinner")); var TaskState; (function (TaskState) { TaskState[TaskState["Pending"] = 0] = "Pending"; TaskState[TaskState["Success"] = 1] = "Success"; TaskState[TaskState["Failure"] = 2] = "Failure"; TaskState[TaskState["Skipped"] = 3] = "Skipped"; })(TaskState = exports.TaskState || (exports.TaskState = {})); const Task = ({ children, ...props }) => { var _a, _b, _c, _d, _e; const [visible, setVisible] = (0, react_1.useState)(true); const [state, setState] = (0, react_1.useState)(TaskState.Pending); const [text, setText] = (0, react_1.useState)(props.name); const persist = (_a = props.persist) !== null && _a !== void 0 ? _a : true; const duration = (_b = props.minimumDuration) !== null && _b !== void 0 ? _b : 750; const spinnerColor = (_c = props.spinnerColor) !== null && _c !== void 0 ? _c : 'green'; const { note } = props; let display; switch (state) { case TaskState.Success: display = (_d = props.success) !== null && _d !== void 0 ? _d : text; break; case TaskState.Failure: display = (_e = props.failure) !== null && _e !== void 0 ? _e : text; break; default: display = text; } (0, react_1.useEffect)(() => { const run = async (action) => { const started = Date.now(); let resultingState = TaskState.Pending; try { resultingState = await action(); const elapsed = Date.now() - started; const remaining = duration - elapsed; if (remaining > 0) await (0, utils_1.delay)(remaining); setState(resultingState); } catch (e) { setState(TaskState.Failure); if (e instanceof Error) { setText(e.message); } } finally { if (!persist) setVisible(false); if (props.onComplete) props.onComplete(resultingState); } }; run(props.action); }, []); return (react_1.default.createElement(ink_1.Box, { flexDirection: 'column' }, visible && (react_1.default.createElement(ink_1.Text, null, state === TaskState.Pending && (react_1.default.createElement(ink_1.Text, { color: spinnerColor }, react_1.default.createElement(ink_spinner_1.default, { type: 'dots' }))), state === TaskState.Success && react_1.default.createElement(ink_1.Text, { color: 'green' }, "\u2714"), state === TaskState.Failure && react_1.default.createElement(ink_1.Text, { color: 'red' }, "\u2718"), state === TaskState.Skipped && react_1.default.createElement(ink_1.Text, { color: 'gray' }, "-"), react_1.default.createElement(ink_1.Text, null, " "), display, state === TaskState.Pending && note && react_1.default.createElement(ink_1.Text, { color: 'gray' }, " (", note, ")"), state === TaskState.Skipped && react_1.default.createElement(ink_1.Text, { color: 'gray' }, " (skipped)"))), react_1.default.createElement(ink_1.Box, { marginLeft: 1 }, children))); }; exports.Task = Task; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL1Rhc2sudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBZ0Q7QUFDaEQsNkJBQTZCO0FBQzdCLG9DQUE4QjtBQUM5Qiw4REFBaUM7QUFFakMsSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25CLCtDQUFPLENBQUE7SUFDUCwrQ0FBTyxDQUFBO0lBQ1AsK0NBQU8sQ0FBQTtJQUNQLCtDQUFPLENBQUE7QUFDVCxDQUFDLEVBTFcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFLcEI7QUE0RE0sTUFBTSxJQUFJLEdBQXVDLENBQUMsRUFDdkQsUUFBUSxFQUNSLEdBQUcsS0FBSyxFQUMyQixFQUFFLEVBQUU7O0lBQ3ZDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEdBQUcsSUFBQSxnQkFBUSxFQUFDLElBQUksQ0FBQyxDQUFBO0lBQzVDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEdBQUcsSUFBQSxnQkFBUSxFQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNyRCxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFBOEIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRXpFLE1BQU0sT0FBTyxHQUFHLE1BQUEsS0FBSyxDQUFDLE9BQU8sbUNBQUksSUFBSSxDQUFBO0lBQ3JDLE1BQU0sUUFBUSxHQUFHLE1BQUEsS0FBSyxDQUFDLGVBQWUsbUNBQUksR0FBRyxDQUFBO0lBQzdDLE1BQU0sWUFBWSxHQUFHLE1BQUEsS0FBSyxDQUFDLFlBQVksbUNBQUksT0FBTyxDQUFBO0lBQ2xELE1BQU0sRUFBQyxJQUFJLEVBQUMsR0FBRyxLQUFLLENBQUE7SUFFcEIsSUFBSSxPQUFvQyxDQUFBO0lBQ3hDLFFBQVEsS0FBSyxFQUFFO1FBQ2IsS0FBSyxTQUFTLENBQUMsT0FBTztZQUNwQixPQUFPLEdBQUcsTUFBQSxLQUFLLENBQUMsT0FBTyxtQ0FBSSxJQUFJLENBQUE7WUFDL0IsTUFBSztRQUNQLEtBQUssU0FBUyxDQUFDLE9BQU87WUFDcEIsT0FBTyxHQUFHLE1BQUEsS0FBSyxDQUFDLE9BQU8sbUNBQUksSUFBSSxDQUFBO1lBQy9CLE1BQUs7UUFFUDtZQUNFLE9BQU8sR0FBRyxJQUFJLENBQUE7S0FDakI7SUFFRCxJQUFBLGlCQUFTLEVBQUMsR0FBRyxFQUFFO1FBQ2IsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLE1BQWdDLEVBQUUsRUFBRTtZQUNyRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUE7WUFFMUIsSUFBSSxjQUFjLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQTtZQUV0QyxJQUFJO2dCQUNGLGNBQWMsR0FBRyxNQUFNLE1BQU0sRUFBRSxDQUFBO2dCQUMvQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFBO2dCQUNwQyxNQUFNLFNBQVMsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFBO2dCQUNwQyxJQUFJLFNBQVMsR0FBRyxDQUFDO29CQUFFLE1BQU0sSUFBQSxhQUFLLEVBQUMsU0FBUyxDQUFDLENBQUE7Z0JBQ3pDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQTthQUN6QjtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBQzNCLElBQUksQ0FBQyxZQUFZLEtBQUssRUFBRTtvQkFDdEIsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtpQkFDbkI7YUFDRjtvQkFBUztnQkFDUixJQUFJLENBQUMsT0FBTztvQkFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQy9CLElBQUksS0FBSyxDQUFDLFVBQVU7b0JBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQTthQUN2RDtRQUNILENBQUMsQ0FBQTtRQUVELEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbkIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRU4sT0FBTyxDQUNMLDhCQUFDLFNBQUcsSUFBQyxhQUFhLEVBQUMsUUFBUTtRQUN4QixPQUFPLElBQUksQ0FDViw4QkFBQyxVQUFJO1lBQ0YsS0FBSyxLQUFLLFNBQVMsQ0FBQyxPQUFPLElBQUksQ0FDOUIsOEJBQUMsVUFBSSxJQUFDLEtBQUssRUFBRSxZQUFZO2dCQUN2Qiw4QkFBQyxxQkFBTyxJQUFDLElBQUksRUFBQyxNQUFNLEdBQUcsQ0FDbEIsQ0FDUjtZQUNBLEtBQUssS0FBSyxTQUFTLENBQUMsT0FBTyxJQUFJLDhCQUFDLFVBQUksSUFBQyxLQUFLLEVBQUMsT0FBTyxhQUFTO1lBQzNELEtBQUssS0FBSyxTQUFTLENBQUMsT0FBTyxJQUFJLDhCQUFDLFVBQUksSUFBQyxLQUFLLEVBQUMsS0FBSyxhQUFTO1lBQ3pELEtBQUssS0FBSyxTQUFTLENBQUMsT0FBTyxJQUFJLDhCQUFDLFVBQUksSUFBQyxLQUFLLEVBQUMsTUFBTSxRQUFTO1lBQzNELDhCQUFDLFVBQUksWUFBUztZQUNiLE9BQU87WUFDUCxLQUFLLEtBQUssU0FBUyxDQUFDLE9BQU8sSUFBSSxJQUFJLElBQUksOEJBQUMsVUFBSSxJQUFDLEtBQUssRUFBQyxNQUFNOztnQkFBSSxJQUFJO29CQUFTO1lBQzFFLEtBQUssS0FBSyxTQUFTLENBQUMsT0FBTyxJQUFJLDhCQUFDLFVBQUksSUFBQyxLQUFLLEVBQUMsTUFBTSxpQkFBa0IsQ0FDL0QsQ0FDUjtRQUNELDhCQUFDLFNBQUcsSUFBQyxVQUFVLEVBQUUsQ0FBQyxJQUFHLFFBQVEsQ0FBTyxDQUNoQyxDQUNQLENBQUE7QUFDSCxDQUFDLENBQUE7QUF6RVksUUFBQSxJQUFJLFFBeUVoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZVN0YXRlLCB1c2VFZmZlY3R9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtUZXh0LCBCb3h9IGZyb20gJ2luaydcbmltcG9ydCB7ZGVsYXl9IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IFNwaW5uZXIgZnJvbSAnaW5rLXNwaW5uZXInXG5cbmV4cG9ydCBlbnVtIFRhc2tTdGF0ZSB7XG4gIFBlbmRpbmcsXG4gIFN1Y2Nlc3MsXG4gIEZhaWx1cmUsXG4gIFNraXBwZWQsXG59XG5cbmV4cG9ydCB0eXBlIFRhc2tQcm9wcyA9IHtcbiAgLyoqXG4gICAqIFRleHQgdG8gYmUgZGlzcGxheWVkIHdoaWxlIHRoZSBhY3Rpb24gaXMgcnVubmluZy5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IFJlYWN0LlJlYWN0RWxlbWVudCB8IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBUZXh0IHRvIGJlIGRpc3BsYXllZCBiZXNpZGUgdGhlIG5hbWUgaW4gZ3JheS5cbiAgICovXG4gIHJlYWRvbmx5IG5vdGU/OiBzdHJpbmdcblxuICAvKipcbiAgICogVGhlIGFjdGlvbiB0byBwZXJmb3JtLiBJZiBub3QgYWN0aW9uIGlzIHByb3ZpZGVkLCB0aGUgdGFzayB3aWxsIGF3YWl0IGFueSBjaGlsZHJlbiBUYXNrcy5cbiAgICovXG4gIHJlYWRvbmx5IGFjdGlvbjogKCkgPT4gUHJvbWlzZTxUYXNrU3RhdGU+XG5cbiAgLyoqXG4gICAqIEEgY2FsbGJhY2sgdGhhdCdzIGZpcmVkIHdoZW4gdGhlIGFjdGlvbiBpcyBjb21wbGV0ZS5cbiAgICovXG4gIHJlYWRvbmx5IG9uQ29tcGxldGU/OiAoc3RhdGU6IFRhc2tTdGF0ZSkgPT4gdm9pZFxuXG4gIC8qKlxuICAgKiBUZXh0IHRvIGJlIGRpc3BsYXllZCBvbiBzdWNjZXNzLiBJZiB0aGlzIGlzbid0IHNwZWNpZmllZCwgYHRleHRgIHdpbGwgcmVtYWluIHVuY2hhbmdlZC5cbiAgICovXG4gIHJlYWRvbmx5IHN1Y2Nlc3M/OiBSZWFjdC5SZWFjdEVsZW1lbnQgfCBzdHJpbmdcblxuICAvKipcbiAgICogVGV4dCB0byBiZSBkaXNwbGF5ZWQgb24gZmFpbHVyZS4gSWYgdGhpcyBpc24ndCBzcGVjaWZpZWQsIGB0ZXh0YCB3aWxsIHJlbWFpbiB1bmNoYW5nZWQuXG4gICAqL1xuICByZWFkb25seSBmYWlsdXJlPzogUmVhY3QuUmVhY3RFbGVtZW50IHwgc3RyaW5nXG5cbiAgLyoqXG4gICAqIFRleHQgdG8gYmUgZGlzcGxheWVkIHdoZW4gdGhlIHRhc2sgaXMgc2tpcHBlZC4gSWYgdGhpcyBpc24ndCBzcGVjaWZpZWQsIGB0ZXh0YCB3aWxsIHJlbWFpbiB1bmNoYW5nZWQuXG4gICAqL1xuICByZWFkb25seSBza2lwcGVkPzogUmVhY3QuUmVhY3RFbGVtZW50IHwgc3RyaW5nXG5cbiAgLyoqXG4gICAqIFRydWUgaWYgdGhlIHRhc2sgc2hvdWxkIHJlbWFpbiB2aXNpYmxlIGFmdGVyIGNvbXBsZXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHBlcnNpc3Q/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIE1pbmltdW0gZHVyYXRpb24gaW4gbWlsaXNlY29uZHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IDc1MFxuICAgKi9cbiAgcmVhZG9ubHkgbWluaW11bUR1cmF0aW9uPzogbnVtYmVyXG5cbiAgLyoqXG4gICAqIENvbG9yIG9mIHRoZSBsb2FkaW5nIHNwaW5uZXIuIEFueSBjaGFsayBzdXBwb3J0ZWQgY29sb3JzIGFyZSB2YWxpZC5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2dyZWVuJ1xuICAgKi9cbiAgcmVhZG9ubHkgc3Bpbm5lckNvbG9yPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCBUYXNrOiBSZWFjdC5GdW5jdGlvbkNvbXBvbmVudDxUYXNrUHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnByb3BzXG59OiBSZWFjdC5Qcm9wc1dpdGhDaGlsZHJlbjxUYXNrUHJvcHM+KSA9PiB7XG4gIGNvbnN0IFt2aXNpYmxlLCBzZXRWaXNpYmxlXSA9IHVzZVN0YXRlKHRydWUpXG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVdID0gdXNlU3RhdGUoVGFza1N0YXRlLlBlbmRpbmcpXG4gIGNvbnN0IFt0ZXh0LCBzZXRUZXh0XSA9IHVzZVN0YXRlPFJlYWN0LlJlYWN0RWxlbWVudCB8IHN0cmluZz4ocHJvcHMubmFtZSlcblxuICBjb25zdCBwZXJzaXN0ID0gcHJvcHMucGVyc2lzdCA/PyB0cnVlXG4gIGNvbnN0IGR1cmF0aW9uID0gcHJvcHMubWluaW11bUR1cmF0aW9uID8/IDc1MFxuICBjb25zdCBzcGlubmVyQ29sb3IgPSBwcm9wcy5zcGlubmVyQ29sb3IgPz8gJ2dyZWVuJ1xuICBjb25zdCB7bm90ZX0gPSBwcm9wc1xuXG4gIGxldCBkaXNwbGF5OiBSZWFjdC5SZWFjdEVsZW1lbnQgfCBzdHJpbmdcbiAgc3dpdGNoIChzdGF0ZSkge1xuICAgIGNhc2UgVGFza1N0YXRlLlN1Y2Nlc3M6XG4gICAgICBkaXNwbGF5ID0gcHJvcHMuc3VjY2VzcyA/PyB0ZXh0XG4gICAgICBicmVha1xuICAgIGNhc2UgVGFza1N0YXRlLkZhaWx1cmU6XG4gICAgICBkaXNwbGF5ID0gcHJvcHMuZmFpbHVyZSA/PyB0ZXh0XG4gICAgICBicmVha1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIGRpc3BsYXkgPSB0ZXh0XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHJ1biA9IGFzeW5jIChhY3Rpb246ICgpID0+IFByb21pc2U8VGFza1N0YXRlPikgPT4ge1xuICAgICAgY29uc3Qgc3RhcnRlZCA9IERhdGUubm93KClcblxuICAgICAgbGV0IHJlc3VsdGluZ1N0YXRlID0gVGFza1N0YXRlLlBlbmRpbmdcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmVzdWx0aW5nU3RhdGUgPSBhd2FpdCBhY3Rpb24oKVxuICAgICAgICBjb25zdCBlbGFwc2VkID0gRGF0ZS5ub3coKSAtIHN0YXJ0ZWRcbiAgICAgICAgY29uc3QgcmVtYWluaW5nID0gZHVyYXRpb24gLSBlbGFwc2VkXG4gICAgICAgIGlmIChyZW1haW5pbmcgPiAwKSBhd2FpdCBkZWxheShyZW1haW5pbmcpXG4gICAgICAgIHNldFN0YXRlKHJlc3VsdGluZ1N0YXRlKVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBzZXRTdGF0ZShUYXNrU3RhdGUuRmFpbHVyZSlcbiAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgIHNldFRleHQoZS5tZXNzYWdlKVxuICAgICAgICB9XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpZiAoIXBlcnNpc3QpIHNldFZpc2libGUoZmFsc2UpXG4gICAgICAgIGlmIChwcm9wcy5vbkNvbXBsZXRlKSBwcm9wcy5vbkNvbXBsZXRlKHJlc3VsdGluZ1N0YXRlKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJ1bihwcm9wcy5hY3Rpb24pXG4gIH0sIFtdKVxuXG4gIHJldHVybiAoXG4gICAgPEJveCBmbGV4RGlyZWN0aW9uPSdjb2x1bW4nPlxuICAgICAge3Zpc2libGUgJiYgKFxuICAgICAgICA8VGV4dD5cbiAgICAgICAgICB7c3RhdGUgPT09IFRhc2tTdGF0ZS5QZW5kaW5nICYmIChcbiAgICAgICAgICAgIDxUZXh0IGNvbG9yPXtzcGlubmVyQ29sb3J9PlxuICAgICAgICAgICAgICA8U3Bpbm5lciB0eXBlPSdkb3RzJyAvPlxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICl9XG4gICAgICAgICAge3N0YXRlID09PSBUYXNrU3RhdGUuU3VjY2VzcyAmJiA8VGV4dCBjb2xvcj0nZ3JlZW4nPuKclDwvVGV4dD59XG4gICAgICAgICAge3N0YXRlID09PSBUYXNrU3RhdGUuRmFpbHVyZSAmJiA8VGV4dCBjb2xvcj0ncmVkJz7inJg8L1RleHQ+fVxuICAgICAgICAgIHtzdGF0ZSA9PT0gVGFza1N0YXRlLlNraXBwZWQgJiYgPFRleHQgY29sb3I9J2dyYXknPi08L1RleHQ+fVxuICAgICAgICAgIDxUZXh0PiA8L1RleHQ+XG4gICAgICAgICAge2Rpc3BsYXl9XG4gICAgICAgICAge3N0YXRlID09PSBUYXNrU3RhdGUuUGVuZGluZyAmJiBub3RlICYmIDxUZXh0IGNvbG9yPSdncmF5Jz4gKHtub3RlfSk8L1RleHQ+fVxuICAgICAgICAgIHtzdGF0ZSA9PT0gVGFza1N0YXRlLlNraXBwZWQgJiYgPFRleHQgY29sb3I9J2dyYXknPiAoc2tpcHBlZCk8L1RleHQ+fVxuICAgICAgICA8L1RleHQ+XG4gICAgICApfVxuICAgICAgPEJveCBtYXJnaW5MZWZ0PXsxfT57Y2hpbGRyZW59PC9Cb3g+XG4gICAgPC9Cb3g+XG4gIClcbn1cbiJdfQ==