UNPKG

zcatalyst-cli

Version:

Command Line Tool for CATALYST

74 lines (73 loc) 3.95 kB
'use strict'; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const path_1 = require("path"); const fn_utils_1 = require("../../../fn-utils"); const java_1 = require("../../../fn-utils/lib/java"); const runtime_store_1 = __importDefault(require("../../../runtime-store")); const constants_1 = require("../../../util_modules/constants"); const fs_1 = require("../../../util_modules/fs"); const throbber_1 = __importDefault(require("../../../throbber")); const error_1 = __importDefault(require("../../../error")); exports.default = (targets) => __awaiter(void 0, void 0, void 0, function* () { if (targets === undefined || targets.length === 0) { return; } const throbber = throbber_1.default.getInstance(); yield fn_utils_1.fnUtils.java.validate(targets, 0); const javaTargets = targets .filter((target) => { if (!target.valid) { throbber.remove('function_serve_' + target.name); } return target.valid; }) .map((target) => { fn_utils_1.fnUtils.common.generateUrlForTarget(target); return target; }); const projectRoot = runtime_store_1.default.get('project.root'); return Promise.all(javaTargets.map((target) => __awaiter(void 0, void 0, void 0, function* () { if (!target.valid) { return target; } const targetBuildPath = (0, path_1.join)(projectRoot, constants_1.FOLDERNAME.build, constants_1.FOLDERNAME.functions, target.name); if (yield fs_1.ASYNC.isPathExists(targetBuildPath)) { yield fs_1.ASYNC.emptyDir(targetBuildPath); } if (target.type === constants_1.FN_TYPE.advanced || target.type === constants_1.FN_TYPE.applogic || target.type === constants_1.FN_TYPE.browserLogic) { const javaServer = (0, path_1.join)(projectRoot, constants_1.FOLDERNAME.build, '.catalyst', target.stack, 'aioserver', 'JavaaioServer'); const javaInvoker = (0, path_1.join)(__dirname, '../../../serve/server/lib/java/aio_server/JavaaioServer.java'); (0, java_1.ensureJavaInvoker)(javaServer, javaInvoker, target); const serverFiles = yield fs_1.ASYNC.walk((0, path_1.dirname)(javaServer)); yield Promise.all(serverFiles.map((file) => __awaiter(void 0, void 0, void 0, function* () { try { return fs_1.ASYNC.copyFile(file.path, (0, path_1.join)(targetBuildPath, (0, path_1.relative)((0, path_1.dirname)(javaServer), file.path.replace('lib' + path_1.sep, ''))), false); } catch (e) { const err = error_1.default.getErrorInstance(e).original; if (err.code !== 'EEXIST') { throbber.remove('function_serve_' + target.name); throw err; } } }))); } yield fs_1.ASYNC.copyDir((0, path_1.join)(target.source, constants_1.FOLDERNAME.output), targetBuildPath); throbber.remove('function_serve_' + target.name); return target; }))); });