@webfaas/webfaas-core
Version:
WebFaaS Framework - Core
99 lines • 5.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ModuleManagerConvert = void 0;
const path = require("path");
const ModuleCompileManifestData_1 = require("../ModuleCompile/ModuleCompileManifestData");
const Core_1 = require("../Core");
/**
* manager Module
*/
class ModuleManagerConvert {
convertToPackageInfoTarget(name, version, moduleManagerRequireContextData, parentModuleCompileManifestData) {
let packageInfoTarget = {};
packageInfoTarget.nameParsedObj = Core_1.ModuleNameUtil.parse(name, "");
if (name.substring(0, 1) === ".") {
if (parentModuleCompileManifestData) {
//internal package
packageInfoTarget.packageName = moduleManagerRequireContextData.parentPackageStoreName;
packageInfoTarget.packageVersion = moduleManagerRequireContextData.parentPackageStoreVersion;
packageInfoTarget.itemKey = path.resolve("/" + parentModuleCompileManifestData.mainFileDirName, name).substring(1);
}
else {
packageInfoTarget.packageName = "";
packageInfoTarget.packageVersion = "";
packageInfoTarget.itemKey = "";
}
}
else {
//external package
packageInfoTarget.packageName = packageInfoTarget.nameParsedObj.fullName;
packageInfoTarget.packageVersion = version;
packageInfoTarget.itemKey = "";
}
return packageInfoTarget;
}
convertToCodeBufferResponse(cacheRootPackageStore, packageInfoTarget, moduleManagerRequireContextData) {
if (packageInfoTarget.itemKey) {
//
//require internal package
//
let parentPackageStore = cacheRootPackageStore.getPackageStore(packageInfoTarget.packageName, packageInfoTarget.packageVersion);
if (parentPackageStore) {
let packageStoreItemBufferResponse = parentPackageStore.getItemBuffer(packageInfoTarget.itemKey);
if (packageStoreItemBufferResponse) {
let codeBufferFromPackageStoreCacheSync = {};
codeBufferFromPackageStoreCacheSync.manifest = parentPackageStore.getManifest();
codeBufferFromPackageStoreCacheSync.packageStoreItemBufferResponse = packageStoreItemBufferResponse;
codeBufferFromPackageStoreCacheSync.moduleCompileManifestData = new ModuleCompileManifestData_1.ModuleCompileManifestData(parentPackageStore.getName(), parentPackageStore.getVersion(), packageInfoTarget.itemKey);
return codeBufferFromPackageStoreCacheSync;
}
else {
return null;
}
}
else {
return null;
}
}
else {
//
//require external package
//
//if not version exist, seek version in parent package.json
if (packageInfoTarget.packageVersion === "" && moduleManagerRequireContextData.parentPackageStoreName) {
let parentPackageStore = cacheRootPackageStore.getPackageStore(moduleManagerRequireContextData.parentPackageStoreName, moduleManagerRequireContextData.parentPackageStoreVersion);
if (parentPackageStore) {
let parentPackageManifest = parentPackageStore.getManifest();
if (parentPackageManifest && parentPackageManifest.dependencies) {
packageInfoTarget.packageVersion = parentPackageManifest.dependencies[packageInfoTarget.nameParsedObj.moduleName] || "";
}
}
}
let packageStore = cacheRootPackageStore.getPackageStore(packageInfoTarget.nameParsedObj.moduleName, packageInfoTarget.packageVersion);
if (packageStore) {
let packageStoreItemBufferResponse;
if (packageInfoTarget.nameParsedObj.fileName) {
packageStoreItemBufferResponse = packageStore.getItemBuffer(packageInfoTarget.nameParsedObj.fileName);
}
else {
packageStoreItemBufferResponse = packageStore.getMainBuffer();
}
if (packageStoreItemBufferResponse) {
let codeBufferFromPackageStoreCacheSync = {};
codeBufferFromPackageStoreCacheSync.manifest = packageStore.getManifest();
codeBufferFromPackageStoreCacheSync.packageStoreItemBufferResponse = packageStoreItemBufferResponse;
codeBufferFromPackageStoreCacheSync.moduleCompileManifestData = new ModuleCompileManifestData_1.ModuleCompileManifestData(packageStore.getName(), packageStore.getVersion(), packageInfoTarget.nameParsedObj.fileName || packageStore.getMainFileFullPath());
return codeBufferFromPackageStoreCacheSync;
}
else {
return null;
}
}
else {
return null;
}
}
}
}
exports.ModuleManagerConvert = ModuleManagerConvert;
//# sourceMappingURL=ModuleManagerConvert.js.map