unbag
Version:
一个专门用来开发npm工具的包
101 lines (100 loc) • 2.78 kB
JavaScript
;
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;