UNPKG

gatsby-cli

Version:

Gatsby command-line interface for creating new sites and running Gatsby commands

43 lines (41 loc) 1.61 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.prematureEnd = exports.catchExitSignals = void 0; var _signalExit = _interopRequireDefault(require("signal-exit")); var _redux = require("./redux"); var _actions = require("./redux/actions"); var _constants = require("./constants"); var _reporter = require("./reporter"); /* * This module is used to catch if the user kills the gatsby process via cmd+c * When this happens, there is some clean up logic we need to fire offf */ const interruptActivities = () => { const { activities } = (0, _redux.getStore)().getState().logs; Object.keys(activities).forEach(activityId => { const activity = activities[activityId]; if (activity.status === _constants.ActivityStatuses.InProgress || activity.status === _constants.ActivityStatuses.NotStarted) { _reporter.reporter.completeActivity(activityId, _constants.ActivityStatuses.Interrupted); } }); }; const prematureEnd = () => { // hack so at least one activity is surely failed, so // we are guaranteed to generate FAILED status // if none of activity did explicitly fail (0, _actions.createPendingActivity)({ id: `panic`, status: _constants.ActivityStatuses.Failed }); interruptActivities(); }; exports.prematureEnd = prematureEnd; const catchExitSignals = () => { (0, _signalExit.default)((code, signal) => { if (code !== 0 && signal !== `SIGINT` && signal !== `SIGTERM`) prematureEnd();else interruptActivities(); }); }; exports.catchExitSignals = catchExitSignals;