UNPKG

unbag

Version:

一个专门用来开发npm工具的包

101 lines (100 loc) 2.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useTransformActionProcessMap = exports.TransformActionProcessUid = void 0; var _log = require("./../../../utils/log.cjs"); var _index = require("./../../../utils/message/index.cjs"); var _uuid = require("uuid"); var _utils = require("../utils.cjs"); var _dayjs = _interopRequireDefault(require("dayjs")); var _fs = require("./../../../utils/fs.cjs"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } class TransformActionProcessUid { #content; constructor() { this.#content = (0, _uuid.v4)(); } get content() { return this.#content; } } exports.TransformActionProcessUid = TransformActionProcessUid; const useTransformActionProcessMap = params => { const { finalUserConfig } = params; const log = (0, _log.useLog)({ finalUserConfig }); const message = (0, _index.useMessage)({ locale: finalUserConfig.locale }); const transformTempDir = (0, _utils.useTransformTempDir)({ finalUserConfig }); const processMap = /* @__PURE__ */new Map(); const getProcess = params2 => { const { uid } = params2; const process = processMap.get(uid); if (!process) { throw new Error(message.transform.action.processParentNotFound({ uid: uid.content })); } return { ...process }; }; const createProcess = async params2 => { const { name, task } = params2; const fs = (0, _fs.useFs)(); const uid = new TransformActionProcessUid(); const fileName = name.replaceAll("/", "@"); const tempDir = transformTempDir.resolve({ next: `./${fileName}-${uid.content}` }); processMap.set(uid, { tempDir, name }); const startTime = Date.now(); log.info(message.transform.action.taskProcessing({ name, startTime: (0, _dayjs.default)(startTime).format("HH:mm:ss") })); await fs.ensureDir(tempDir.content); try { await task({ tempDir }); const endTime = Date.now(); const interval = Number(((endTime - startTime) / 1e3).toFixed(2)); log.info(message.transform.action.taskEnd({ name, interval, endTime: (0, _dayjs.default)(endTime).format("HH:mm:ss") })); } catch (error) { const endTime = Date.now(); const interval = Number(((endTime - startTime) / 1e3).toFixed(2)); log.info(message.transform.action.taskFail({ name, interval, endTime: (0, _dayjs.default)(endTime).format("HH:mm:ss") })); log.error(error); } return uid; }; return { createProcess, getProcess }; }; exports.useTransformActionProcessMap = useTransformActionProcessMap;