zioinfo-mail/app/node_modules/metro-file-map/src/worker.js
DESKTOP-TKLFCPR\ython 11c670f2a0 refactor: 101.79.17.164 → zioinfo.co.kr 전체 도메인 변환 + Manager UI 배포
- 37개 파일 IP → zioinfo.co.kr 치환 (소스/매뉴얼/설정/하네스)
- Manager DrConsole/NetworkConsole/CsapConsole 빌드 + /var/www/manager/ 배포
- 테스트: Manager HTTP 200, ITSM 신규 API 7개 전체 200

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 10:09:17 +09:00

99 lines
2.6 KiB
JavaScript

"use strict";
const H = require("./constants");
const dependencyExtractor = require("./lib/dependencyExtractor");
const excludedExtensions = require("./workerExclusionList");
const { createHash } = require("crypto");
const { promises: fsPromises } = require("fs");
const fs = require("graceful-fs");
const path = require("path");
const PACKAGE_JSON = path.sep + "package.json";
let hasteImpl = null;
let hasteImplModulePath = null;
function getHasteImpl(requestedModulePath) {
if (hasteImpl) {
if (requestedModulePath !== hasteImplModulePath) {
throw new Error("metro-file-map: hasteImplModulePath changed");
}
return hasteImpl;
}
hasteImplModulePath = requestedModulePath;
hasteImpl = require(hasteImplModulePath);
return hasteImpl;
}
function sha1hex(content) {
return createHash("sha1").update(content).digest("hex");
}
async function worker(data) {
let content;
let dependencies;
let id;
let module;
let sha1;
let symlinkTarget;
const {
computeDependencies,
computeSha1,
enableHastePackages,
readLink,
rootDir,
filePath,
} = data;
const getContent = () => {
if (content == null) {
content = fs.readFileSync(filePath);
}
return content;
};
if (enableHastePackages && filePath.endsWith(PACKAGE_JSON)) {
try {
const fileData = JSON.parse(getContent().toString());
if (fileData.name) {
const relativeFilePath = path.relative(rootDir, filePath);
id = fileData.name;
module = [relativeFilePath, H.PACKAGE];
}
} catch (err) {
throw new Error(`Cannot parse ${filePath} as JSON: ${err.message}`);
}
} else if (
(data.hasteImplModulePath != null || computeDependencies) &&
!excludedExtensions.has(filePath.substr(filePath.lastIndexOf(".")))
) {
if (data.hasteImplModulePath != null) {
id = getHasteImpl(data.hasteImplModulePath).getHasteName(filePath);
if (id != null) {
const relativeFilePath = path.relative(rootDir, filePath);
module = [relativeFilePath, H.MODULE];
}
}
if (computeDependencies) {
dependencies = Array.from(
data.dependencyExtractor != null
? require(data.dependencyExtractor).extract(
getContent().toString(),
filePath,
dependencyExtractor.extract
)
: dependencyExtractor.extract(getContent().toString())
);
}
}
if (computeSha1) {
sha1 = sha1hex(getContent());
}
if (readLink) {
symlinkTarget = await fsPromises.readlink(filePath);
}
return {
dependencies,
id,
module,
sha1,
symlinkTarget,
};
}
module.exports = {
worker,
};