ness
Version:
✪ No-effort static sites deployed to your AWS account.
101 lines • 13.4 kB
JavaScript
;
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==