UNPKG

@x-ray/core

Version:
70 lines (54 loc) 1.84 kB
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.xRay = void 0; var _path = _interopRequireDefault(require("path")); var _web = require("@rebox/web"); var _prettyMs = _interopRequireDefault(require("pretty-ms")); var _rsolve = require("rsolve"); var _constants = require("./constants"); var _run = require("./server/run"); const xRay = plugin => async files => { const startTime = Date.now(); const status = { ok: 0, new: 0, diff: 0, deleted: 0 }; const totalResults = await plugin.getResults(files); for (const result of totalResults.values()) { status.ok += result.status.ok; status.new += result.status.new; status.diff += result.status.diff; status.deleted += result.status.deleted; } console.log(`ok: ${status.ok}`); console.log(`new: ${status.new}`); console.log(`diff: ${status.diff}`); console.log(`deleted: ${status.deleted}`); console.log(`done in ${(0, _prettyMs.default)(Date.now() - startTime)}`); if (status.new === 0 && status.diff === 0 && status.deleted === 0) { return; } const savePromise = await (0, _run.runServer)({ results: totalResults, pluginName: plugin.name, encoding: plugin.encoding }); const entryPointPath = await (0, _rsolve.rsolve)('@x-ray/ui', 'browser'); const htmlTemplatePath = _path.default.join(_path.default.dirname(entryPointPath), 'index.html'); const closeRebox = await (0, _web.runWebApp)({ htmlTemplatePath, entryPointPath: plugin.appEntryPointPath, isQuiet: true }); console.log(`open http://${_constants.UI_HOST}:${_constants.UI_PORT}/ to approve or discard changes`); try { await savePromise(); } finally { await closeRebox(); } }; exports.xRay = xRay;