UNPKG

@webfaas/webfaas-core

Version:

WebFaaS Framework - Core

99 lines 5.26 kB
"use strict"; 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