UNPKG

@zkochan/pnpm

Version:

Fast, disk space efficient package manager

43 lines 2.28 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const logger_1 = require("@pnpm/logger"); const server_1 = require("@pnpm/server"); const store_path_1 = require("@pnpm/store-path"); const delay_1 = require("delay"); const path = require("path"); const processExists = require("process-exists"); const killcb = require("tree-kill"); const promisify = require("util.promisify"); const createStoreController_1 = require("../../createStoreController"); const serverConnectionInfoDir_1 = require("../../serverConnectionInfoDir"); const kill = promisify(killcb); exports.default = (opts) => __awaiter(this, void 0, void 0, function* () { const store = yield store_path_1.default(opts.prefix, opts.store); const connectionInfoDir = serverConnectionInfoDir_1.default(store); const serverJson = yield createStoreController_1.tryLoadServerJson({ serverJsonPath: path.join(connectionInfoDir, 'server.json'), shouldRetryOnNoent: false, }); if (serverJson === null) { logger_1.storeLogger.info(`Nothing to stop. No server is running for the store at ${store}`); return; } const storeController = yield server_1.connectStoreController(serverJson.connectionOptions); yield storeController.stop(); if (!(yield processExists(serverJson.pid)) || (yield delay_1.default(5000)) && !(yield processExists(serverJson.pid))) { logger_1.storeLogger.info('Server gracefully stopped'); return; } logger_1.storeLogger.warn('Graceful shutdown failed'); yield kill(serverJson.pid, 'SIGINT'); logger_1.storeLogger.info('Server process terminated'); }); //# sourceMappingURL=stop.js.map